Задать вопрос
  • Чистый код: блоки try/catch. Стоит ли так делать?

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

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

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

    Adamos
    @Adamos
    Во-первых, "грузит ЦП до сотни" не система, а браузер, антивирус и прочая шняга.
    Во-вторых, вы не хотите разбираться в Линуксе - значит, ставить вам его противопоказано. Дистрибутивы не разрабатываются специально под лентяев со старым железом, и тормоза на любом популярном и не требующем лишних знаний дистрибутиве у вас будут не меньше, чем под Окошками. А проблем, скорее всего, будет больше.
    В-третьих, если вам нужно всего лишь заполнять клиентскую базу через браузер и редактировать текст хоть через wordpad - найдите себе слабенький-древний-но-не-прожорливый браузер и запустите таки Wordpad. Потому что если вы собираетесь запускать на этом слабом железе тот же современный Хром - он точно так же сожрет всю память и пошлет любую систему в своп. Никаких реальных преимуществ Линукс здесь не даст.
    Так что, в-четвёртых, я бы не советовал решать проблему, которой нет, методами, которые ее только усугубят.
    Ответ написан
    Комментировать
  • Принцип работы VeraCrypt?

    Adamos
    @Adamos
    Принцип работы VeraCrypt - взять оставленный разработчиком TrueCrypt, напихать туда своей криво реализованной дряни и выдавать это добро за инновации.
    Ответ написан
    7 комментариев
  • Паблик это коммерческое использование?

    Adamos
    @Adamos
    С юридической точки зрения "коммерческое использование" - это использование в каком угодно виде в каких бы то ни было действиях, которые приносят вам какую бы то ни было прибыль.
    Некоммерческим использование будет только тогда, когда не приносит вам никакой прибыли или не играет никакой роли в получении вами прибыли.

    Например, вы можете заворачивать шаурму в распечатки романов Акунина, и это таки будет некоммерческое использование. Но если вы будете заворачивать шаурму в распечатки романов Акунина и подавать это покупателям как эксклюзив "и пожрешь, и почитаешь" - извольте откидываться автору за споспешествование вашему бизнесу.
    Ответ написан
    2 комментария
  • Как оперативно протестировать PC на работоспособность?

    Adamos
    @Adamos
    www.system-rescue-cd.org
    Memtest там был, whdd для проверки винта - тоже.
    Но вообще-то работоспособность железа совершенно не означает, что винда на нем в адеквате и будет работать...
    Ответ написан
    Комментировать
  • Что почитать и на чем потренироваться, не могу перейти от процедурного к ооп?

    Adamos
    @Adamos
    Практика. Решайте задачи, не давая себе писать ни строчки вне объектов. Теория суха...
    Ответ написан
    3 комментария
  • Есть ли в 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, конечно, можно и Хромоось попробовать. Терять-то, собственно, нечего.
    Ответ написан
    Комментировать