Задать вопрос
  • Как правильно генерировать псевдослучайные числа?

    kumaxim
    @kumaxim
    Web-программист
    Судя по Вашему комментарию к ответу Ivan Sokolov Вы несколько не понимайте суть своего же вопроса.

    Любое, повторюсь, абсолютно любое, псевдослучайное число будет находиться в какой-то последовательности, причем сама последовательность будет строиться по какой-то формуле.

    Я очень глубоко сомневаюсь что вообще кто-либо когда-либо сможет получить абсолютно случайное число, т.к. любая случайность это непознанная закономерность!

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

    Возьмем, например, функцию rand() из любого языка программирования. Она будет генерировать псевдослучайное число основываясь на метки времени в unixtime. На сколько она предсказуема? Хм, думаю не менее чем на 100%. Хорошо, получается что зная приблизительное время запуска функции rand(), скажем, с точностью до 1 минуты, мы можем получить точно такое же псевдослучайное число. Отлично, т.е. вот от этого нужно и копать.

    Давайте предположим, что мы вытянули список компаний из ЕГРЮЛ по Москве и взяли их ОРГН. Далее, наша функция генерирует unixtime и из него мы вычитаем этот самый ОГРН, причем последние две цифтры в unixtime и ОГРН должны совпадать(к примеру, условие выбора ОГРН может быть любое). Чего мы добились? Зная время работы функции rand() мы не можем сгенерировать второе точно такое же псевдослучайное число. Вы мне можете сейчас возразить, что давайте возьмем тот же ОГРН и повторим процедуру. На этом месте я хочу задать Вам вопрос: а от кого мы вообще строим защиту? Злоумышленник является создателем системы и знает о ней 100%? Я думаю любая защита в этом случае просто бессмысленна.

    Вы должны внести в свою формулу генерации некое неожиданное поведение, которые будет отличаться от того, что есть в стандартной реализации. Будет это какой-то ОГРН, дни рождения Ваших коллег, ID юзеров в ВК и т.п. Внешнему атакующему эта особенность не известна.

    Будет ли при этом Ваш ряд псевдослучайных числем более или менее случайным? Хм... Большой вопрос... На этом месте опять вспоминаем что такое случайность.
    Позволит ли это повысить защищенность системы? Думаю от части может, потому что злоумышленнику неизвестен алгоритм генерации, хотя это в определенной степени и плохо.

    Резюмируя все выше сказанное - чтобы сделать Ваш ряд псевдослучайных чисел более случайным, нужно в формулу его генерации добавить число из другого ряда чего-то псевдослучайного. Также сильно рекомендую получившиеся псевдослучайное число проверять на простоту, если Вы его собирайтесь использовать как значение в генерации секретного ключа для ГОСТ или RSA
    Ответ написан
    2 комментария
  • Разные стили в wordpress для разных страниц?

    kumaxim
    @kumaxim
    Web-программист
    Для начала подключайте свои стили через хук wp_enqueue_script в function.php
    Используя условные теги типа is_singular() и т.д. можно частично решить Вашу задачу.
    Ответ написан
    Комментировать
  • Как удалить кучу известных ссылок в wordpress?

    kumaxim
    @kumaxim
    Web-программист
    Лично я считаю, что здесь в корне неверный подход.

    Первое - лучше забыть в function.php. Сделайте простенький плагин. В плагине регистрируйте задачу на wp_schedule_event.

    Далее, через WP_Query получайте все посты, которые соответствуют Вашим критериям(тип, категория, мета-данные и т.д.). Одно условие - не более 25 штук за раз(число взято с потолка). Из этих 25 штук вырезайте ссылки по Вашим критериями. Лично я бы резал используя DomDocument, но через регулярки тоже можно.

    На данный момент мы получаем, что за один проход мы обрабатываем 25 записей в Вашем блоге. Далее, если обработка происходит верно, мы ставим эту задачу на CRON(поищите инструкции как в WP запретить внутрениий крон и использовать CRON из ОС) и лоимся спать. На утро проверяем результат.

    Теперь два важный момента:
    1)Используйте реальный CRON, не встроенный в WP. Встроенный работает тогда, когда на сайт заходит юзер. Нет визита юзера - нет отработавшей задачи.
    2)Почему я говорю про порции в 25 записей? Вы можете упереться в Max execution time. По умолчанию в PHP это 30 секунд. Можете поставить 50, можете 150. Моя логика такая: 1000 / 25 = 40 проходов = 40 минут(запуск крона 1 раз в минуту).

    Готового кода под эту задачу у меня нет.
    Ответ написан
    Комментировать
  • Как сэкономить ресурсы оперативной памяти при кодинге в Ubuntu?

    kumaxim
    @kumaxim
    Web-программист
    Корень Ваших проблем это SWAP - это не решение проблемы, это такой костыль.
    Как только система начинает туда лезть, так начинаются жесткие тормоза...

    От себя могу рекомендовать следующее:
    1)Gulp и все что с ним связано в Docker контейнер. Контейнеру лимит на ОЗУ.
    2)В playOnLimux можно лимит на ОЗУ постаить? Да, ставьте.
    3)В Хроме смотрите есть ли лишние расширения.
    4)Выключайте swap

    Насчет расширений в Хроме.
    Есть расширение Extension Automation. Допустим, Ваше девелоперское окружение работает только тогда, когда Вы открывайте домен host.my-dev. Также Вы имейте 2 расширения, которые Вам нужны исключительно при работе с ним. Настраиваете Extension Automation так: если у меня открыт сайт host.my-dev, тогда активировать такие-то расширения. По умолчанию они, разумеется, отключены в настройках самого хрома.
    Аналогично, если есть какие-то расширения, которые Вы никогда не используйте при работе с Gulp и все что с ним связано.

    Также Хром очень любит кушать память, если он хранит слишком большую историю.
    Способ решения быстрый: "More tools => Clear browser data => Older than 1 week"
    Способ автоматический: качаем расширение Limit History Lifetime, которое само сносит все данные старше N дней.
    Ответ написан
    Комментировать
  • Какая биржа фриланса сейчас самая массовая?

    kumaxim
    @kumaxim
    Web-программист
    Пишите в теле задачи примерно следующее: "Если Вы не бот и действительно прочитали мое задание, пожалуйста начните Ваше предложение со слова "Я фрилансер".

    Это очень хорошо позволяет фильтровать автоматические ответы от разного рода агенств, которые работают со скриптами автопостинга.
    Ответ написан
    Комментировать
  • Что PayPal делает с отрицательным балансом?

    kumaxim
    @kumaxim
    Web-программист
    Можно ли как-то оспорить эти комиссии за воздух?

    Все комиссии взымаются на основе договора-оферты или какого-нибудь доп.соглашения к нему, которое Вы, скорей всего каким-то образом акцептировали. Если там написано, что за 1 кубический метр переработанного воздуха Вы платите PayPal 10$ то ничего они просто сошлются на него и ничего Вам возвращать на станут.
    Гипотетически можно попробовать подать на них в суд с формулировкой "незаконное обогощение". При платежах в 3 бакса и комиссии в 10 может что-то получиться, хотя, там слишком много нюансов, по которым я Вас не проконсультирую. Ищите проф.юриста или гуглите по указанной выше фразе.

    По понятным причинам, отвязать счет теперь не выходит.

    Звоните в банк, говорите мол потерял карту. Заблокируйте ее пожалуйста.
    Перевыпуск, обычно, 20 баксов. С заблокировнной банком карты деньги точно никто и никак списать не сможет. Если потенциальные убытки больше платы за перевыпуск, то я думаю что это может быть решением.
    Ответ написан
    8 комментариев
  • Возможно ли запустить сайт за неделю, если ничего не знаешь?

    kumaxim
    @kumaxim
    Web-программист
    Вам нужно описать, что именно Вы хотите от сайта и какие конкретно изменения Вы планируйте туда вносить. После этого идете на тот же fl.ru и создаете проект на разработку сайта. В Вашем случае это самый быстрый способ запустить именно сайт, а не очередной кусок г****...
    Ответ написан
    Комментировать
  • Хостинг почты для домена?

    kumaxim
    @kumaxim
    Web-программист
    Посмотрите предложение от Namecheap
    Ответ написан
    Комментировать
  • Есть ли база Локализации ( Страна, язык, коды)?

    kumaxim
    @kumaxim
    Web-программист
    Geonames смотрели?
    Ответ написан
    Комментировать
  • Как платить фрилансерам в белую (субподряд)?

    kumaxim
    @kumaxim
    Web-программист
    Пример №1
    Вы являйтесь ИП в юрисдикции РФ. Ваш подрядчик тоже ИП в РФ.
    Что делать: подписывайте договор на оказание услуги, например, Вы платите 5 т.р. за разработку дизайна.
    Расходы: пересылка конверта с документами в адрес Вашего подрядчика, который будет рисовать дизайн
    Налоги: нет

    Пример №2
    Вы являйтесь ИП в юрисдикции РФ. Ваш подрядчик физическое лицо в РФ.
    Что делать: подписывается гражданко-правовой договор(часто Вы можете встретить сокращение ГПХ - гражданско-правового характера). Он будет точно таким же как договор между ИП, только в качестве исполнителя в нем указано физ.лицо.
    Первое что необходимо помнить при оформлении договора подряда с физ.лицом - коные договора должен быть четко определен, например, "...Исполнитель обязазуется нарисовать Заказчику дизайн-макет сайта кулинарной тематики и предоставить его до 25.10.2016". Ни в коем случае не должно быть указано выполнение какие-либо переодических действий, например, "...Исполнитель обязуется выполнять работы по разработке дизайн-макетов сайтов, в течении 10 дней с момента поступления запроса от Заказчика..." Это уже будет являться трудовым договором, а это уже отдельная тема.
    Расходы: пересылка договора подрядчику + пересылка отчетов в ФНС и ПФР
    Условие: Пусть 5 000 рублей это сумма, за которую работает Ваш подрядчик.
    Налоги:
    1. 13% - налог на доходы физ.лиц
    2. 22% - взнос в Пенсионный фонд
    3. 5,1% - взнос в фонд Обязательного мед.страхования

    Расчет:
    1. 5 000 - 13% = 4350 - столько получит на карточку Ваш исполнитель
    2. 5 000 - 87% = 650 - это 13% НДФЛ
    3. 5 000 + 22% = 1100 - в Пенсионный фонд
    4. 5 000 + 5.1% = 255 - на медицину
    Итог: Ваш подрядчик получает 4350 рублей. Бюджет РФ получает с этого 1975 рублей. Суммарно Вы заплатите 6325 рублей
    Отчеты: в Пенсионный фонд(если не ошибаюсь форма РСВ-1) и в ФНС. В ПФР отчет должен быть отправлен в конце месяца, хотя могу ошибаться. Для наемных сотрудников на трудовом договоре РСВ-1 точно ежемесячно предоставляется. Для людей на договорах подряда точно не скажу, спрашивайте в своем ПФР. В ФНС отчет раз в год до 01.04 должен быть предоставлен.

    Пример №3
    Вы являйтесь ИП в юрисдикции РФ. Ваш подрядчик физическое лицо вне юрисдикции РФ
    Что делать: ежайте в эту самую другую юрисдикцию, открывайте там филиал/представительство и работаете по законам той страны. Деньги сначала со своего ИП кидайте на представительство, а потом с него уже Вашим наемным людям. И да, еще Вас ждет с распростертыми объятиями валютный контроль банка и ФНС внешние операцияии с аффилированными иностранными компаниями любит под микроскопом рассматривать.
    Налоги: не знаю, сильно зависит от страны назначения.

    Пример №4
    Вы являйтесь ИП в юрисдикции РФ. Ваш подрядчик ИП/юр.лицо вне юрисдикции РФ
    Что делать: идти в банк и узнавать что такое валютный контроль, что надо заполнять, сколько это идет и т.д. Точно нужен будет счет в иностранной валюте. Вроде бы, но могу ошибаться, еще нужно будет регистрироваться на таможне, даже если Вы физически через границу ничего перемещать не собирайтесь(тут могу ошибаться).

    Вывод.

    Оцените объем работы, которую Вы хотите сами аутсорсить и либо найдите веб-студию, которой будите аутсорсить и получать от них все документы либо возьмите себе в штат человека, который будет все это делать.
    Ответ написан
    1 комментарий
  • Photoshop, notepad++ и бочка кофе в придачу, что ещё поможет верстать сайты быстрее и с меньшими затратами нервов?

    kumaxim
    @kumaxim
    Web-программист
    А почему никто Browsersync не вспомнил? Штука цепляется к Gulp и при каждом обновлении CSS / HTML автоматически без перезагрузки отображает изменения на странице. Если нужно перезагрузка, то Browsersync сам ее и выполняет. На loftblog еще видео было как его вместе с Gulp

    Если сможете настроить свой роутер, то можно обновления сразу цеплять еще на смартфоне и планшете, которые в Вашей локалке.
    Ответ написан
    1 комментарий
  • Как удержать статус Rising Star на Upwork?

    kumaxim
    @kumaxim
    Web-программист
    Для того, чтобы быть Rising Talent необходимо:
    1. Постоянно поддерживать обратную связь и историю работ с клиентами
    2. Отправлять вменяемые предложения(proposal), а не copy-past из проекта в проект
    3. Иметь полностью заполненный профиль
    4. Держать в актуальном состоянии "Статус доступности"
    5. Не иметь недавних блокировок аккаунта

    Замечания:
    • Не уверен что первый пункт перевел корректно. В оригинале: "Consistent strong feedback and work history with your clients"
    • Про статус доступности читаем по этой ссылке
    • О недавних блокировках можно почитать вот здесь
    Ответ написан
    Комментировать
  • У сайта avito.ru есть своё API для разработчиков?

    kumaxim
    @kumaxim
    Web-программист
    Именно API у них нет, однако, загрузка объявлений доступна через XML. Описание формата.

    Логика работы такая:
    1. На своей стороне ты формируешь XML со всей информацией об объявлении
    2. Этот XML должен быть доступен по http:/domain.com/avito.xml
    3. Эту ссылку ты отдаешь Avito для работы
    4. С какой-то переодичность Avito проверяет твой XML и добавляет/изменяет/удаляет объявления

    Отчет о загрузке/обновлении/удалении обявлений доступен в личном кабинете и, вроде бы, еще на мыло отсылается.

    Также могу рекомендовать сервис afy.ru, однако, он работает только с недвижкой. Почему я его упомянул? Через него можно настроить автоматическую выгрузку объявлений сразу на кучу досок: Авито, Яндекс.Недвижимость, Майл,Недвижимость, ИРР и т.д. Смотри тут полный список.
    Ответ написан
    Комментировать
  • Почему при импорте Wordpress ничего не получается?

    kumaxim
    @kumaxim
    Web-программист
    Добавить в wp-config.php строчку <?php define('WP_DEBUG', true) ?> и сможешь увидеть больше информации об ошибке.
    Для общего развития можешь почитать "Отладка в Wordpress"
    Ответ написан
    Комментировать
  • Как пользоваться плагином для wordpress Divi Builder?

    kumaxim
    @kumaxim
    Web-программист
    Gantry и Genesis из той же оперы, если верить только сайту Divi Builder'а
    В целом - стандартные шаблоны делаются быстрее, однако, с ростом посещаемости любой билдер начинает стрелять в ногу. Требуется перевестать шаблон уже без него.
    Ответ написан
    3 комментария
  • Как импортировать записи из не стандартного WP XML в WordPress?

    kumaxim
    @kumaxim
    Web-программист
    Вариант написать(сам/нанять кого-либо) конвертер из Вашего формата в формат Wordpress'а Вы не рассматривайте?
    Ответ написан
    Комментировать
  • Как лучше кэшировать данные?

    kumaxim
    @kumaxim
    Web-программист
    Если данные, которые нужно кэшировать одни для 100-500-1000 юзеров, т.е. твой PHP скрипт отработал, получил результат и он должен отдаваться N раз, тогда смотри в сторону серверного кэша(файлы, redis/mem_cached). Если генерируемая пара уникальна для каждого юзера, см. ответ DevMan
    Ответ написан
    Комментировать
  • Как получить данные от БД в Wordpress?

    kumaxim
    @kumaxim
    Web-программист
    Открываем файл wp-config.php и видим там что-то в духе:
    define('DB_NAME', 'wordpress');
    Как же получить значение переменной в PHP, зная ее имя? Разве не очевидно
    echo DB_NAME; // Отобразит wordpress
    Собственно вместо echo подставляй все что тебе нужно и твоя задача решена.
    Ответ написан
    Комментировать
  • Как оптимизировать "огромный" список, чтоб не зависало?

    kumaxim
    @kumaxim
    Web-программист
    А динамическую подгрузку новых элементов при скроле страницы делать не вариант?
    Ответ написан
    Комментировать
  • Синхронизация Denwer и удаленного сервера при помощи Dreamweaver?

    kumaxim
    @kumaxim
    Web-программист
    Могу я сказать что Вы динозавр? Я денвер с дримвьювером последний раз лет 6-7 назад открывал... Сейчас работаю в связке docker + phpStorm и Вам советую посмотреть туда же.

    К вопросу как синхронизироваться: поставьте на свой сервер Open SSH и синхронизируйтесь по sFTP. Для phpStorm такая возможность из коробки за 1 минуту настраивается.
    Ответ написан
    1 комментарий