Задать вопрос
  • Есть ли в PHPStorm инструмент для просмотра того, какие файлы инклюдят друг друга?

    Adamos
    @Adamos
    Теоретически в Шторме есть пункт контекстного меню Find Usages в дереве файлов проекта.
    Но РНР позволяет заинклюдить файл через такие хитрые задницы, что IDE тут бессильна.
    Если же вы предпочитаете не мудрить и сохранять суровую простоту и порядок - выше про PSR уже сказали.
    Ответ написан
    Комментировать
  • C чего начать аудит и переход на AD?

    Adamos
    @Adamos
    Если планировать и расписывать графики все-таки некому, можно использовать метод тыка.
    1. Берете какой-нибудь старый системник (но с приличным - и по размеру, и по скорости - винтом) и ставите на него, например, Debian.
    2. Копируете с машины пользователя его шару на примерно одноименную на сервере, закрываете ее и объявляете всем (в том числе этому пользователю), что его файлы теперь лежат вот на этой шаре сервера.
    3. Повторяете с другими пользователями до полного уничтожения персональных шар.
    4. Выясняете, есть ли необходимость ограничить каким-то пользователям доступ к каким-то данным. Если она есть - это уже повод заводить Windows-сервер, AD и т.п. Если ничего такого не вскрылось - осталось настроить бэкап сервера (возможно, просто взяв еще один старый системник...).
    Ответ написан
    Комментировать
  • Какой сервер собрать для офиса в 15пк?Какое ПО использовать для резервирования?

    Adamos
    @Adamos
    Соглашусь с коллегами, идея больше смахивает на создание единой точки отказа всего и сразу без особой на то необходимости.
    Тем более, что бэкап самого сервера, вполне возможно, будет нужнее, чем бэкап пользовательских машин (особенно если сделать грамотно - то есть ничего на них не хранить). Делать бэкап на тот же самый сервер - не слишком разумно.
    Я бы советовал:
    1. Приличный роутер, который закроет вопрос с интернетом и файрволлом - а при выходе из строя просто заменяется свежекупленным. При желании бесперебойной работы можно просто держать под рукой второй такой же.
    2. Достаточно серьезную машинку под файл-сервер. RAID и прочие ништяки по вкусу. Хотя я, признаться, не представляю, как у вас на 15 человек по сети раздается файловая 1С - и в этом еще можно работать. Или все-таки не файловая?
    3. И небольшой дешевый неттоп с большим винтом, единственной задачей которого будет тихо-мирно автоматически делать бэкапы. С несколькими копиями, конечно (шифровальщики нынче в моде, а бэкап, в котором файлы автоматически перезаписались зашифрованными, бесполезен). С доступом извне только на чтение.

    При чем здесь ОЕМ-лицензии - вообще не понял, признаться. Вы собираетесь хранить в бэкапе развернутые образы со всех машин? Неужели их приходится постоянно "чинить" таким образом?
    Ответ написан
  • Имеет ли юридическую силу запрет на парсинг сайта?

    Adamos
    @Adamos
    Информация на вашем сайте и так принадлежит вам (авторское право), никто другой не может ее использовать для получения прибыли без вашего согласия.
    Вопрос в том, готовы ли вы доказать эти два факта: что это ваша информация и что она была использована для получения прибыли. А что там было написано у вас на сайте (исключая разрешение кому угодно использовать информацию как угодно) роли, по большому счету. не играет.
    Запрет, о котором вы говорите - всего лишь напоминание об авторских правах и предупреждение, что автор готов связываться с судами, если что.
    Ответ написан
    Комментировать
  • Как вы работате с гитом?

    Adamos
    @Adamos
    Контроль версий - это ведь не отчет о проделанной работе, это просто удобный способ вспомнить, как что-то менялось, и сравнить то, что было до, с тем, что стало после.
    Коммитить на уровне "написал новую функцию", "добавил новый класс" и, тем более, "создал десять объектов" - по большому счету, бессмысленно.
    Вам нужно будет откатываться или хотя бы сравнивать только тогда, когда вы что-то меняете. И когда понадобится сравнить, вам нужно будет знать, что вы поменяли и зачем. Первое вам скажет git, второе - только ваш комментарий к коммиту. И именно в этом его важность, да и важность раздельных коммитов вообще.

    В частности, это означает, что если вы занимаетесь каким-то новым классом и поэтому решили исправить API старого - вам желательно вынести исправление старого класса в один коммит (с уточнением, ради чего было исправление), а создание нового класса - в другой. Который вам понадобится когда-нибудь только как отправная точка в списке правок этого класса.

    В общем, на git нужно смотреть не снизу (от кода), а сверху - с точки зрения собственных интересов через год-два, когда к этому коммиту придется вернуться. И все станет проще.
    Ответ написан
    Комментировать
  • Си это основополагающий язык или просто популярный?

    Adamos
    @Adamos
    Особенность С среди языков программирования - в том, что в стандарте языка есть только то, что компьютер может выполнить без лишних накладных расходов. Поэтому его хорошо знать - просто для понимания идеалов оптимизации, но без закапывания вглубь архитектуры, как в ассемблере.

    Большинство языков пишутся для того, чтобы решать некие проблемы - ну, и как-то исполнить результат. В машинном коде он будет исполняться, в коде для виртуальной машины или вовсе дерганьем какого-то API - это совсем второй вопрос. У высокоуровневых языков может быть несколько вариантов на вкус.
    Ответ написан
    2 комментария
  • Почему в C++ нужно строить всю программу на ООП (длинный вопрос)?

    Adamos
    @Adamos
    Право, может быть, вы даже "Идеальный код" не читали?
    ООП - это уникальная возможность разделить код на уровни абстракции. Реализовать все скучное, но необходимое, внутри методов класса - и забыть о нем все, кроме его интерфейса. В результате программа пишется на более высоком уровне и читается на нем же. Детали требуется изучать только тогда, когда это действительно требуется.
    Километровые простыни функций, которые может вызвать кто попало где попало с неизвестно как подготовленными входными данными и столь же неизвестными ожиданиями на выходе - ну, это может нравиться... если у вас много свободного времени или вы полжизни изучали именно этот хаос.
    Ответ написан
    Комментировать
  • Bootstrap - Почему модальное окно кликабельная "пустышка"?

    Adamos
    @Adamos
    Напутствие: jQuery. Bootstrap его все равно использует.
    И портянки превращаются...
    Ответ написан
    Комментировать
  • Как открыть pdf по кнопке?

    Adamos
    @Adamos
    Во-первых, нужен не ajax-запрос, а простая ссылка на файл.
    Во-вторых, не вижу в коде заголовков.
    header("Content-Type: application/pdf");
    header("Content-Disposition:inline;filename=\"имя_файла.pdf\"");
    header("Content-Transfer-Encoding: binary");
    Ответ написан
  • Какие перспективы, состояние рынка ПО и как начать продавать своё ПО?

    Adamos
    @Adamos
    Если вы нацеливаетесь на мелкий-средний бизнес, то, подозреваю, рекламные кампании и презентации - не совсем то, что вы готовы делать.
    Найдите хоть один реальный бизнес, который готов заморачиваться хотя бы с бесплатным внедрением вашего ПО в обмен на фидбек, позволяющий вам действительно приспособить софт к реальности (обычно ПО, написанное программистом без деятельного участия бизнеса, просто ни к черту не годится).
    Если там взлетит - продать ваше ПО второму бизнесу будет уже куда реальнее.
    Ответ написан
    Комментировать
  • Свой сервис PDF-конвертер, есть решения?

    Adamos
    @Adamos
    В общем случае формат PDF для обратной конвертации непригоден.
    Текст из него еще можно попытаться вытащить - есть, например, открытый pdftotext - но это будет только текст, и то не факт, что не порванный в клочья.

    Чтобы собрать этот хаос обратно в том виде, каким он был до превращения в PDF, придется применять чисто эмпирические хаки. ABBYY, ориентируясь на клиентов, может себе позволить копаться в этом мусоре. Искать же свободные и/или бесплатные аналоги бесполезно.
    Ответ написан
    1 комментарий
  • Какой linux самый быстрый?

    Adamos
    @Adamos
    Бессмысленно подбирать легкое DE, если браузер все равно сожрет все ресурсы и начнет тормозить после первой же вкладки.
    Даже если вы поставите голый Дебиан с запуском Якобы.Браузера вместо DE, тормоза неизбежны.

    JustForFun, конечно, можно и Хромоось попробовать. Терять-то, собственно, нечего.
    Ответ написан
    Комментировать
  • Можно ли узнать какие шрифты используются в PDF-файле с помощью PHP?

    Adamos
    @Adamos
    pdffonts - утилита под Линукс, делающая именно то, что вам нужно
    Ответ написан
    Комментировать
  • Почему не работает функция flush()?

    Adamos
    @Adamos
    > Я рассчитываю, что каждую секунду в окно браузера будут последовательно выводиться числа

    Имхо, это дурь с самого начала. В смысле - ожидание от PHP интерактива. Хотите, чтобы на странице что-то менялось - AJAX к вашим услугам. А задача РНР - сформировать вывод как можно быстрее и закончить работу. Потому что дальше - неизвестные задержки по дороге к пользователю, неизвестно что у него в браузере и прочая неизвестность. В которую впутывать серверные скрипты совершенно незачем.
    Ответ написан
    4 комментария
  • Как ускорить работу LIKE в mysql?

    Adamos
    @Adamos
    select `id`, `title`, `slug`, `label`, `price`, `old_price`, `category_id`, `picture_id`, `brand_id` 
    from `products` where 
    `brand_id` IN (select id from `brands` where `title` like '%лампа%' or `tags` like '%лампа%') 
    OR `title` like '%лампа%'
    group by `products`.`id`
    order by `products`.`sales` desc, `products`.`views` desc 
    limit 18
    Ответ написан
    Комментировать
  • Насколько легко трудоустроиться программисту в 40+, 50+ итд лет?

    Adamos
    @Adamos
    Возможен такой нюанс.
    Почему человек в 40+ вообще ищет работу? Как и где он работал до этого?
    Если это разорилась организация, тянувшая легаси до последнего - мы имеем специалиста по легаси. Многим он нужен?
    Если же организация продолжает работать, но без него - с чего бы ей увольнять приличного специалиста?
    Ну, а если человек к 40+ не поработал где-то достаточно долго - это говорит не только о его ценности как специалиста, но и, возможно, о прочих качествах...
    Ответ написан
    5 комментариев
  • Можно ли организовать бэкап файлов на удаленный сервер, не архивируя их на рабочем сервере?

    Adamos
    @Adamos
    У вас объем больше 20 гиг - и вы все это гоняете на FTP?!
    Cron + mysqldump + rsync = у меня постоянно под рукой еженощно обновляемая локальная копия Битрикс-сайта на внутреннем Debian-сервере. Можно с ним баловаться, обкатывая решения, можно из копии баз восстановить основной, если что пойдет не так. На хрена какие-то там "встроенные средства" и прочие костыли?
    Ответ написан
    Комментировать
  • Зашифрует ли файлы вирус-шифровальщик файлы на самба сервере под Linux?

    Adamos
    @Adamos
    Если у виндов есть какой бы то ни было доступ на запись к определенному ресурсу - этот ресурс можно считать рискованным в любом случае.
    Нужно бэкапить содержимое такого ресурса в место, из виндов не доступное. Во всяком случае, на запись. Если бэкап автоматический - иметь несколько копий разной степени свежести. Просто чтобы бэкап не был перезаписан зашифрованными файлами.
    Ответ написан
    3 комментария
  • Что значит выражение "в общем случае" в математике?

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

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

    Adamos
    @Adamos
    Если нужно всего лишь собрать единички и двойки в группы с суммой 4, то:
    0. Подсчитываем количество единиц и двоек.
    1. Все двойки собираем в пары.
    2. Если одна осталась - присобачиваем к ней две единицы, если они есть.
    3. Все оставшиеся единицы собираем по четыре.
    Все. Никаких вложенных циклов, рекурсий и прочего тут тупо не нужно.
    Ответ написан