• Почему не проходит сериализация?

    TommyV888
    @TommyV888 Куратор тега PHP
    -
    Потому что у вас public_key private. Приватные свойства и методы не наследуются, замените на protected
    Ответ написан
    Комментировать
  • Авто-декремент mysql+php(автоматически)?

    megafax
    @megafax
    web-программист
    Вам не нужен декремент, его роль будет выполнять дельта = текущее время - время окончания (которые Вы вносите в базу). А тикер можете делать хоть каждые пол секунды для показа информации. В базе ничего не надо менять, только показывать дельту.
    Ответ написан
    2 комментария
  • Как считать вклад в проект при долевой собственности?

    Maksclub
    @Maksclub
    maksfedorov.ru
    Долю вынести на определенные этапы -- пересчеты доли:
    • стартовый пересчет доли,
    • привлечение новых финансов,
    • уход долевика -- его долю раскидать на всех

    Текущие вклады (не долевые) принимать как обмен работы на деньги (не дивиденды, а именно затраты). Соответственно кто сколько тратит времени, сил и какая эффективность часа -- все отражается в зарплате.

    Просто доля -- очень скользкий момент и его вплетать во все аспекты нельзя, лопнет логика почти сразу

    Если что, можно на старте выделить некий ничейный пулл из стартовой доли, который будет тратиться на "вознаграждение долей" в процессе работы. Можно придумать правила его распределения и лимиты по времени -- ну к примеру через год все нужно дораспределить.
    Этот пункт гибкий тем, что на входе у всех и есть доля и при этом не большая и походу жизни проекта можно донакинуть тем, кто делает большой вклад.

    В целом -- справедливости не добиться, но можно добиться прозрачных правил
    Ответ написан
    2 комментария
  • Могу ли я отказаться от авторства и отдать свой проект в общественное достояние?

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

    Передать "городу и миру" исходные тексты программ и право на модификацию - не проблема. Но это никак не отменит Вашего авторства на то, что написали Вы.

    Судя по фразе "доступ к персональным данным (которые я не сохраняю, но теперь должен сохранять и передавать им)" - у Вас там не столько программа, сколько работающий сервис. Опыта общения с людьми в погонах у меня нет, советовать не буду, но перечислю варианты:
    1) Потребовать от них письменно передать их требования, потребовать написать ТЗ, потребовать оплатить работу по внедрению нужных им функций.
    2) Закрыть проект, отключить сервис, удалить данные.
    3) Отдать им пароль от сервиса, и пусть делают что хотят.
    4) Отказаться сотрудничать, сохраняя сервис - при этом учитывать, что у них длинные руки.

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

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Пока запущены, держат соединение с сервером. Когда закрыты, принимают новые сообщение через FCM.
    Ответ написан
    5 комментариев
  • В чем отличие процедурного от функционального программирования?

    daruvayc0
    @daruvayc0
    В декларативном программировании, Вы разъясняете: я хочу, чтобы факториал n был n раз факториалом n-1(как в определении факториала в математике). 061936c90772779b902414ec897902cc4b61ca06Декларативное - это что.
    const factorial = (n) => {
      return (n === 0) ? 1 : n * factorial(n-1);
    }


    В императивном, Вы приказываете четко передвигаться по шагам - умножать это на это, пока идет отсчет и запоминаются какие-то числа.
    const factorial = (n) => {
      const iter = (counter, acc) => {
        return (counter === 0) ? acc : iter(counter - 1, counter * acc);
      }
      return iter (n, 1);
    }

    Императивное - это как.
    Ответ написан
    Комментировать
  • Уехал в Москву, но не тяну по сложности, стоит ли возвращаться домой?

    qlkvg
    @qlkvg
    python backend developer
    Был в похожей ситуации года 3 назад, только без обрубания концов и релокации. Совсем не тянул, спрашивал мелочи у коллег и стыдился, ничего не понимал. Хотелось все бросить и вернуться на прошлое место работы, где можно было спать до обеда. В итоге через 3 месяца ада, ощущения собственной ничтожности и штудирования книг в любой удобный момент, что-то начало получаться. В итоге дорос до человека, у которого джуны спрашивают мелочи.
    Сейчас понимаю, что первые несколько месяцев нужно было просто пережить. Это нормально для зеленого новичка в индустрии. Если вы не устроились на позицию сеньер фул-стека, адекватный работодатель не будет от вас требовать мгновенного результата. Если переживаете, честно поговорите с непосредственным начальником, что не вывозите, нужно время на раскрутиться
    Ответ написан
    4 комментария
  • Какая в Emmet используется аббревиатура для комментариев кода?

    tendkuh
    @tendkuh
    PHP sucks, it's very important to remember, folks
    |c

    div>div#page>p.title+p|c

    https://docs.emmet.io/filters/
    Ответ написан
    Комментировать
  • Какому языку, в какой среде начинать учить ребенка программированию 10 лет?

    10 лет это 3 класс

    Отстаньте лучше от ребёнка. Ему всего лишь 10 лет - какое программирование? Пусть он сначала насладится детством. А уже после - сам начнёт ковыряться в том, что ему понравится
    Ответ написан
    7 комментариев
  • Лучший учебник английского на каждый день (разделенный на уроки)?

    Zoominger
    @Zoominger
    System Integrator
    Вы не поверите, но почти все книги разделены на уроки.
    Ответ написан
    Комментировать
  • Библиотека, которая поможет понять, что "ответы" и "OtBETЫ" - это одно и тоже?

    samodum
    @samodum
    Какой вопрос - такой и ответ
    "одно и то же" и "одно и тоже" - не одно и то же.

    Моя древняя статейка на эту тему
    https://m.habr.com/ru/post/86303/
    Ответ написан
    Комментировать
  • Как правильно сделать пагинацию?

    AnatolTh
    @AnatolTh
    Full Stack Developer
    Берём Pagination и правим стили. Вывод троеточия реализуем на js/php.
    Ответ написан
    Комментировать
  • Как закомментировать код с частью самого кода?

    EYPPNM
    @EYPPNM Автор вопроса
    I'm not gonna tell you about anything, here
    1. Выделить одно двоеточие после первого свойства
    2. Выделить все остальные двоеточия многократным нажатием Ctrl + D
    3. Нажать стрелку влево для смещения мульти-курсора левее от двоеточия
    4. Нажать Shift + Home чтобы веделить все свойства от конца до начала каждой строки
    5. Нажать Ctrl + C чтобы скопировать все свойства в буфер обмена
    6. Нажать Ctrl + Enter чтобы добавить пробел между каждой строкой
    7. Нажать Ctrl + . чтобы создать новый комментарий
    8. Написать текст
    9. Нажать Ctrl + V что-бы вставить из буфера строки
    5cc71287bc945801991573.gif
    Ответ написан
    Комментировать
  • Как разбить строку на массив?

    DevMan
    @DevMan
    Ответ написан
    Комментировать
  • В чем смысл быть гуру тостера?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    1. Работа над личным брендом: Высокая репутация в профессиональных сообществах повышает привлекательность для нанимателей.
    2. Улучшение существующих знаний: Хочешь что-то понять, объясни другому.
    3. Приобретение новых знаний: Специализация замыкает в узком спектре задач и проблем, а Q&A-сервисы - это источник задач и проблем из самых разных областей и иногда под самыми неожиданными углами.
    4. Альтруизм: Большинству из нас кто-то помогал в начале пути, пришло время возвращать долг и делать свой скромный вклад в рост кадров.

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

    Для чего просиживаете на тостере по 5-6 часов в день?

    Я в среднем раз в полчаса-час заглядываю. Если находится интересный вопрос, могу потратить на него минут 10. Некоторые на перекуры больше времени тратят.
    Ответ написан
    7 комментариев
  • Существует ли автозагрузка переменных в PHP?

    php666
    @php666
    PHP-макака
    Допустим если переменная $this->controller Не объявлена, то будет вызван автоматически загрузчик для поиска значения переменной, как spl_autoload_register() для классов.
    это бред написан. что значит поиск значения переменной? где ты ее собрался искать, под шкафом?

    все, что ты хочешь - называется ленивая загрузка:

    class Example
    {
        /**
         * @var Controller
         */
        protected $controller;
    
        /**
         * @return Controller
         */
        public function getController()
        {
            if (!$this->controller) {
                // инстанцируется при вызове метода, один раз и только по-требованию
                $this->controller = new Controller();
            }
    
            return $this->controller;
        }
    }
    
    $Example = new Example();
    $Example->getController();
    Ответ написан
    5 комментариев
  • В reg.ru украли домен с уникальными 10 миллионами посетителями, что делать?

    @ChiDa
    Лучший из худших
    Это же reg.ru самый убогий регистратор доменных имен. Упаси боже моих клиентов от этого регистратора ныне присно и во веки веков, аминь. Решать через них бесполезно. Решайте в правовом поле. Скажите регру, что будете подавать и на них в суд тоже, так как они не обеспечили безопасность ваших персональных данных и идите в суд. Пусть компенсируют вам финансовые потери. В суде обычно не разбираются что такое домены, если у вас будет хорошо подготовленная юристом база то получите еще и с них денег. Тут главное найти хорошего юриста. Возможно эти идиоты из рег ру не захотят проверок где они и как хранят данные своих пользователей и зашевелятся. В любом случае их надо наказать.
    Ответ написан
    14 комментариев
  • Как правильно верстать сайт с арабскими и хинди языком?

    @Flying
    Поскольку недавно пришлось добавлять в одном проекте арабский язык - поделюсь полученным опытом:

    Вёрстку как правило переделывать не нужно, обычно достаточно изменения стилей, но только в случае если сам сайт свёрстан с применением современных техник, в первую очередь flexbox. Если у вас там float'ы или таблицы - то ой, задача по сложности вырастет на пару порядков и почти наверняка не обойдётся без доработки html кода. Если же в этом аспекте всё в порядке и ваш проект построен на flexbox - то основная масса изменений сводится к одной строчке CSS:
    body {
        direction: rtl;
    }

    это "перевернёт" все горизонтальные flexbox'ы и по сути сделает за вас всю основную массу работы по адаптированию сайта к RTL языкам. Конечно, в зависимости от того как именно у вас будет подключаться стиль (отдельные стили для RTL или только патч или всё вместе) реальный селектор может быть, к примеру html[dir=rtl] + body, но это уже детали.

    Тем не менее, даже если flexbox автоматизирует для вас кучу ручного труда - есть целый ряд ситуаций когда необходимы доработки вручную. Основных направлений несколько:

    1. Горизонтальные отступы. Это самая большая часть работы по адаптации т.к. вам необходимо будет "перевернуть" и их тоже, заменив, к примеру, margin-left на margin-right и наоборот, то же самое для padding'а
    2. Абсолютное / относительное позиционирование в горизонтальной плоскости. Речь идёт о свойствах left и right, их, как можно догадаться, тоже необходимо поменять местами
    3. Размеры шрифтов. Поскольку, к примеру, арабский шрифт, обычно выглядит меньше и тоньше чем, к примеру, английский - возможно возникнет потребность увеличить размеры шрифтов (font-size, line-height) и, возможно, подстроить стилизацию (font-weight)
    4. text-align - в ряде ситуаций может потребоваться изменить его на противоположный
    5. :first-child и :last-child, стоит быть внимательным и перепроверить корректность получаемого результата, к примеру если к этим псевдо-элементам добавляется дополнительный отступ - вам, возможно, придётся менять местами и селекторы
    6. Нужно адаптировать визуальные элементы содержащие направление, к примеру стрелки / уголки и т.п. В ряде случаев их можно повернуть, но где-то необходимо будет рисовать отдельную версию


    Если вы используете CSS препроцессоры - то я очень рекомендую написать mixin'ы для рендера этих свойств и адаптировать код таким образом чтобы изменяющиеся стили рендерились через них. Я выложил набор mixin'ов которые использовал в своём проекте, среди них нет mixin'ов для отступов и шрифтов т.к. у меня эти вопросы решаются по-другому, но думаю что там не будет ничего сложного.

    Общая схема адаптации которую я использовал в проекте:
    1. Добавление direction: rtl
    2. "Переворачивание" отступов, это самая большая часть работы т.к. они чаще всего встречаются
    3. Проверка вёрстки, для каждого выпавшего элемента добавление патчей с использованием mixin'ов, ссылку на которые я дал выше
    4. Подбор изменений для шрифтов, адаптация шрифтовых параметров


    Пример выдернутого наудачу из проекта куска для демонстрации патчей, это стиль добавления иконки к строке текста, для RTL языка её нужно было опускать ниже:
    &.with-icon {
        $icon-size: 1.85em;
        @include offset(h $icon-size 0);
    
        &:before {
            // Позиция иконки меняется на противоположную
            @include hpos($left: -1em, $auto: true);
            font-size: $icon-size;
            // Подстраивается высота иконки относительно текста
            @include ltr() {
                top: 45%;
            }
            @include rtl() {
                top: 65%;
                // Стоит обратить внимание что для RTL языков иконка дополнительно переворачивается, 
                // там стрелка, так что работает нормально, но в других местах это может быть по-другому
                transform: translateY(-50%) rotate(180deg);     
            }
        }
    }


    Надеюсь это описание будет полезным :)
    Ответ написан
    2 комментария
  • Можно/целесообразно ли делать анимированные переходы в вебе?

    Если хотите попробовать, попробуйте barba.js, с помощью него можно сделать нормальные переходы между страницами (и не надо никакие SPA делать). В качестве инструментов для анимации (если сами писать не умеете или не хотите) могу посоветовать: tweenmax и другие решения (которые найдете там же).
    Ответ написан
    1 комментарий
  • Отказали в гарантийном ремонте MacBook. Как полностью починить?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    купил в рестор Москва, естественно HCN/ чеки есть

    На этом основание, идете в магаз, где покупали этот MacBook, пишите претензию со следующими условиями:

    1. Претензия в 2х экземплярах, одна Ваша, вторая магазу. Претензию, уполномоченный сотрудник магаза обязан зарегистрировать и на Вашей копии претензии поставить номер, печать, дату и подпись.

    2. Читаем гарантийку, если там не указан (или 45 дней, или менее) срок ремонта, то в претензии: в связи с эксплуатацией MacBook (тип устройства, номер, дата покупки итп.) строго в соответствие с гарантийным соглашением и выявленными недостатками, прошу: на основании пункта 1 статьи 20 закона «О защите прав потребителей» устранить недостатки (произвести ремонт) MacBook (тип устройства, номер, дата покупки итп.) в течение не более 7 дней, с момента подписания настоящего соглашения.

    3. Читаем гарантийку, если там указан срок ремонта более 45 дней, то в претензии: в связи с эксплуатацией MacBook (тип устройства, номер, дата покупки итп.) строго в соответствие с гарантийным соглашением, прошу: на основании пункта 1 статьи 20 закона «О защите прав потребителей» устранить недостатки (произвести ремонт) MacBook (тип устройства, номер, дата покупки итп.) незамедлительно, то есть в минимальный срок, объективно необходимый для их устранения с учетом обычно применяемого способа.
    На основание пункта 1 статьи 20 закона «О защите прав потребителей» указанный срок гарантийного ремонта - противоречит законодательству и не может превышать сорок пять дней.

    4. В претензии: на основании пункта 2 статьи 20 закона «О защите прав потребителей» на время ремонта Вашего MacBook, выдать аналогичный ("подменный") MacBook (обладающий этими же основными потребительскими свойствами), либо MacBook моделью и ТТХ выше, чем Ваш (я думаю, Вы будите не против).

    UPD:
    0.1. на основание пункта 2, гуляем недельку и возвращаемся за своим MacBook.
    0.2. на основание пункта 3, ждем звонка из магаза (до 45 дней) и возвращаемся за своим MacBook.
    0.3. на основание пункта 1 и 2, если магаз не произвел ремонт в указанный срок, то пишем новую претензию о возврате денег, получаем билеты банка России и берем новое яблоко... =)
    0.4. Если уполномоченные магазина начинают гавкать, то желательно включить видеозапись и фиксировать все переговоры. При видеозаписи, уровень бешенства в крови резко понижается. Если Вам начнут запрещать вести видеозапись в магазе, говорим следующее: это общественное место, а Вы (уполномоченному) не человек, а должностное лицо.
    Ответ написан
    4 комментария