Задать вопрос
  • Какой язык программирования выбрать для данного проекта?

    Adamos
    @Adamos
    Для стартапа с ничем не гарантированным будущим - тот, на котором вы готовы быстрее и дешевле всего сделать MVP.
    Ни в коем случае не тратя средств и времени на проработку масштабирования и прочих проблем роста.
    Потому что именно решение проблем роста до того, как они появились, лишает стартап всяких шансов начать этот рост.
    Ответ написан
    Комментировать
  • Существует ли десктопный клиент под Windows для Bitrix?

    Adamos
    @Adamos
    Можно, но не нужно. Разберитесь лучше, как конкретному пользователю дать права только на работу с новостями, или напишите страничку, где такая возможность будет реализована с использованием API Битрикса.
    Делать специальную программу под винды, чтобы работать с Битриксом - идиотизм. Для винды есть достаточно браузеров, а доступ к сайту все равно понадобится.
    Ответ написан
    8 комментариев
  • Насколько повысит безопасность сайта принцип хранить картинки на другом сервере?

    Adamos
    @Adamos
    Картинки могут использовать три вида уязвимостей:
    1. В настройках вашего сервера. Если у вас можно загрузить картинку и обратиться к ней, и она останется неизменной и может оказаться не картинкой, а скриптом, который выполнится на сервере. Искореняется проверкой MIME и отдачей статики без обработки.
    2. В библиотеках пользователя (старые версии libpng, например). В дикой природе практически не встречается, но если угодно, можно перекодировать файлы, используя ImageMagick.
    3. И вот тут всплывает третий вариант: атака самого IM всякими форматами, в которых поддерживаются внешние ссылки. Искореняется ограничением того, что вообще можно загрузить и обработать, PNG и JPG, и последующей обработкой их IM.
    На практике получаем, что проверка MIME и перекодирование IM решает все ваши проблемы. Заодно и еще одну - вам не навалят файлы такого размера, что внезапно кончится место на хостинге.
    А вынос на другой сервер - вообще ни о чем. Только лаги увеличивать. Так делают для очень высоконагруженных проектов... но там и таких вопросов не задают ;)
    Ответ написан
    3 комментария
  • Как с помощью PHP проверить существует ли номер телефона в месседжерах Viber или Telegram?

    Adamos
    @Adamos
    Вы оперируете неверными представлениями об этом API.
    Вам никто не позволит посылать сообщения произвольным пользователям.
    Только тем, кто подписался на ваш аккаунт.
    Их ID можно получить списком в get_account_info.
    И вам все-таки стоит обратиться к людям, которые умеют.
    Просто потому, что я, например, увидел это API 10 минут назад... а вы с ним без подсказок разобраться не смогли.
    Ответ написан
    5 комментариев
  • GIT-хостинг - удобный, простой, тупой - есть ли?

    Adamos
    @Adamos
    Вы, простите, свой код пишете - в чем? Введите в гугле это название + GitLab - увидите, что маетесь дурью, ища возможности заливать код "бразуером".
    Ответ написан
  • Можно ли вести разработку под iOS в VirtualBox?

    Adamos
    @Adamos
    XCode сам по себе сделан альтернативными людьми для альтернативных программистов, а в виртуалке он еще и адски тормозит. Элементарно неудобно.
    Но если вам удастся поднять Хакинтош, других препятствий не будет.
    Мне вот XCode нужен только для сборки приложения (оно на cocos2d-x С++, основная разработка и отладка идет под Андроид) - для этого вполне хватает виртуалки.
    Ответ написан
    2 комментария
  • Как сделать выполнение команды каждую секунду?

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

    Adamos
    @Adamos
    "Мама, смотри, я еду без рук!
    Мама, смотри, я еду без зуба!"
    Примерно поэтому. Риск напортачить выше, при этом 90% того, что вы делаете после ввода sudo, на самом деле прав суперпользователя не требует.
    Плюс все созданные рутом файлы принадлежат руту, а это часто не то, что вы имели в виду. Вместо шаманства с chmod/chown проще войти под тем пользователем, который будет с ними работать.

    Собственно, рекомендация "не работать под рутом" означает "не путай работу с администрированием, рут - только для второго".
    Ответ написан
    7 комментариев
  • Почему PNG отображается а SVG нет?

    Adamos
    @Adamos
    То, что вы назвали "ответом" - это не ответ.
    У вас, судя по всему, перед Апачем стоит Нджинкс.
    И у него прописано, что PNG - это статика, которую можно отдавать сразу по запросу.
    А SVG вы с такой настройкой отдаете Апачем, хотя и не перенаправляете в пых.
    Вам нужно все-таки указать Нджинксу, что SVG - тоже статика и ее можно просто сразу отдать, не напрягая бэк-сервер. А заодно посмотреть, что там с JS и CSS.
    Или вовсе выкинуть Апач и нормально настроить один сервер...
    Ответ написан
    Комментировать
  • Будет ли иметь силу произвольная pdf-лицензия на использование логотипа заказчиком, есть ли стандартные лицензии по типу CC, Apache, или шаблоны?

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

    И уж конечно, никакой клиент не будет заключать с вами договор на дизайн, по которому вы можете его доить после сдачи работы. Даже если вы Лично Сам Татьяныч.

    Делает дизайнер логотипы по стандартной цене в $100. По идее, должна быть какая-то разница, создаётся логотип для тётеньки, которая через инстаграм букеты продаёт, или для приложения, которое внезапно станет популярным, и твоё лого будет тиражироваться все платформы и десятки тысяч устройств.

    Разница в том, достаточно ли вы крутой дизайнер, чтобы за вами стояла очередь из Фейсбуков, или вы никто и можете рассчитывать только на 100 баксов от цветочного магазина. Каким бы ни оказался крутым ваш заказчик - вы тут в роли мебельщика, который продал Цукербергу стул, на котором он раскачивался, пока раскручивался.
    Ответ написан
  • Bitrix CMS важен ли модуль "проактивная защита"?

    Adamos
    @Adamos
    Эта защита фильтрует то, что прилетает в стандартные же модули "Веб-формы", "Форум" и "Блог". Если вы не собираетесь ими пользоваться - козе баян.
    Ответ написан
    Комментировать
  • В чем отличие полиморфизма от реализации интерфейса?

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

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

    Adamos
    @Adamos
    Сравнить колонки в таблице и в частых запросах в ней. Оставить в таблице только то, по чему могут быть запросы, скорость которых критична. Желательно оставить только поля фиксированной длины. Остальное - во вспомогательную таблицу, выборка из которой будет редкой либо только по id.
    Ответ написан
    Комментировать
  • Как правильно работать с мультибайтовыми строками в php7 и чем плох func_overload?

    Adamos
    @Adamos
    Для внутреннего понимания: strpos в РНР - это тупая обертка над С-функцией, принимающей в качестве аргументов два char* и выдающая в ответе количество байт, через которое второй массив байт совпал с первым.
    Она знать ничего не знает ни о каких кодировках, и это хорошо, но не то, что вам нужно.
    func_overload - это костыль для легаси-кода, в котором люди, не думающие о будущем, обрабатывают строки так, как будто они всегда будут однобайтными. Воцарение UTF-8 нарушило эту идиллию, а переписывать тонны кода зачастую просто некому - вот и подперли проблему настройкой, которая подсовывает mb_-функции вместо архаичных.
    Если вы пишете новый код и он работает со строками, а не с потоками байт - вам следует забыть об этих функциях и никогда не использовать ничего, кроме mb_*, в коде.
    Ответ написан
    6 комментариев
  • Что значит такое выражение if(0 !== 0): в php?

    Adamos
    @Adamos
    Этот блок заблокирует скрипт при условии, что он пройдет через интерпретатор РНР.
    А вот если он почему-либо обрабатывается браузером в "сыром" виде - выполнится скрипт.

    А еще в этом коде очень легко заменить один из нулей на О - и незаметно для читающего условие начнет выполняться. С предупреждением, конечно, но на проде они часто отключены...
    Ответ написан
    1 комментарий
  • SQL "Help" INSERT INTO при добавление ID с AUTO_INCREMENT?

    Adamos
    @Adamos
    INSERT INTO users(names_list) VALUES
    Иначе SQL считает, что данные даны для всех столбцов, а 'gfhjkl' в id не лезет.
    Ответ написан
    Комментировать
  • Существенная ли разница между php.ini настройками и ini_set() в начале каждого скрипта, каждой страницы?

    Adamos
    @Adamos
    Не все настройки могут быть заданы в скрипте.
    Например, короткие теги - до того, как пойдет на выполнение ваша донастройка, пых уже вывалит ошибку в файле...
    Ну, а настройки, которые будут "в каждом скрипте, на каждой странице" - и вовсе ядерные грабли, положенные себе же на самой дороге.
    Ответ написан
    2 комментария
  • Как можно добавить класс на последние 8 строк таблицы?

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

    Adamos
    @Adamos
    Перечисленные вами четыре языка - сильно разные. Ваши успехи с Питоном вскружили вам голову, но Питон из них - простейший. Чтобы ваши знания трех остальных хоть чего-то стоили, в них нужно всерьез погрузиться. Ни в коем случае не смешивая друг с другом, пока у вас не накопится несколько лет опыта решения проблем именно на выбранном языке. Знание синтаксиса С/С++/С#/Java - это примерно 5% багажа, необходимого для того, чтобы считаться хотя бы джуном, то есть иметь хоть какую-то ценность для работодателя.
    А про указатели лучше всего для начала - забыть. Используйте только ссылки и STL. Лучше помучиться сейчас и разбираться с работой с памятью, имея хоть небольшой опыт, чем сразу научиться говнокодить и потом мучиться с плохими привычками. На современном С++ вполне можно писать, не используя указатели вовсе.
    А вообще после Питона лучше бы вы за Java взялись, и только если она не отпугнет - лезли глубже.
    Ответ написан
    6 комментариев