• Как компьютер понимает нули и еденицы?

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    Ну типа жил был транзистор значит. И он был такой весь из себя крайне радикальный - не было у него по жизни других настроений, кроме двух - либо он говорил всем "да" и пропускал через себя всё, что в одно ухо (левая дырка) влетело, то из другого (правая дырка) сразу вылетало. Либо же настроение его могло поменяться, тогда он становился крайне негативным и переставал пропускать себя любую информацию - замыкался в себе, думал о главном.
    А настроение его зависело от того, насколько хорошо он питался. Суёшь ты ему в рот (третья дырка) нормальное питание - он добрый, на всё согласен, информацию через себя пропускает. Чуть только начинаешь его кормить меньше, чем он хочет (есть у него определённый уровен неообходимого питания) - он тут же отключался от мира и ни на что не реагировал, пока снова не пихнёшь ему в рот достаточноого питания. Так и получилось, что аналоговый уровень питания, то есть количество еды, которое ты ему кладёшь в рот, в итоге превращается в бинарное значение - 0 или 1 на правом ухе.

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

    И вот в современных процессорах миллионы этих транзисторов (если быть точнее, то на текущий момент около 1,400,000,000) спаяны вместе. чтобы распознавать входные команды и выдавать результат по заданной схеме.

    Ты спросишь, мой маленький друг, как же розетка соединяется с процессором? Как эти 220В превращаются в 0 и 1 на моём мониторе?. А всё дело в том, что блок питания преобразует переменный ток в постоянный, который потом подаётся на процессор. Блок питания совсем не мудрёный - пара диодов и трансформатор, можешь даже собрать его сам дома из говна и палок. А интересное дальше.
    Но если подать ток на схему из транзисторов - то они застынут в одном положении, заданном схемой, и ничего происходить не будет? Да, ты прав, чтобы компьютер считал, необходимо менять ток на его входных ножках, тем самым отдавая ему разные команды. Но тут возникает проблема синхронизации - поменять напряжение одномоментно невозможно (физика, типа, химия там, электроны бегают, заряд меняется, дырки должны образоваться успеть) - нужно определённое время. Поэтому придумали "частоту". Рядом с транзисторами сидит важный кристалик, который генерирует ток по синусоиде с равномерной частотой. Эта синусоида немного рихтуется, превращаясь в бесконечный поток "есть питание" и "нет питания" меняющийся с одинаковой частотой. На графике это выглядит как пила, примерно. И вот все договорились, что будут засекать момент, в котором "всё готово", все транзисторы заняли своё положение и всё устаканилось и наконец можно считать выходной результат, например, на верхушке зубчика пилы, то есть когда генератор частоты дал 1. И вот совремменные процессоры делают это с частотой 2 гигагерца, то есть 2 миллиарда раз в секунду все транзисторы в процессоре меняют своё состояние.

    P.S. Я сделал небольшое допущение. На самом деле в правом ухе не 1 и 0, а точно такое же напряжение, которое ты подал на левое ухо, если транзистор включён, либо никакого, если выключен. Но чаще всего это потсоянный небольшой ток. Благодаря уровню необходимого питания на ртах у транзисторов, этот небольшой ток может быть либо меньше необходимого (0), либо больше, при котором транзистор включается(1). Это всё зависит от того, из чего сделан транзистор. Это уже химия, дружок. Сплавы всякие, металлов. Они ещё полупроводники называются, потому что до конца не определились, готовы они всегда пропускать ток, или никогда. Этим тохитрые людишки и воспользовались, заставляя полупроводники менять своё настроение и позволять тебе играть в майнкрафт.
    Ответ написан
    5 комментариев
  • Почему не работает перехват ошибок?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Это работает в PHP 7.
    Для младших версий нужно использовать error_handler(), но для Fatal, он может не сработать, поэтому иногда применяются решения ввиде register_shutdown_function().
    Почитайте https://habrahabr.ru/post/261451/
    Ответ написан
    Комментировать
  • Почему так странно поступает Git?

    @aol-nnov
    autocrlf. инфа 99.98%

    ты еще диффом посмотри на изменения и удивись :)
    Ответ написан
    Комментировать
  • Как получить массив из Local Storage в php?

    Sanasol
    @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    Только передавать через JS на бекенд.

    LocalStorage это браузер, бекенд про него ничего не знает.
    Ответ написан
    1 комментарий
  • Как не устанавливать require-dev?

    padlyuck
    @padlyuck
    composer install --no-dev
    Ответ написан
    Комментировать
  • Как вытянуть из бд все записи добавленные n дней назад?

    Sanasol
    @Sanasol
    нельзя просто так взять и загуглить ошибку
    За последние 5 дней
    where timestamp_field >= date_sub(now(), interval 5 day)


    Больше 5 дней назад
    where timestamp_field <= date_sub(now(), interval 5 day)
    Ответ написан
    2 комментария
  • Не опасно ли использовать exFAT для внешнего HDD?

    Jump
    @Jump Куратор тега Системное администрирование
    Системный администратор со стажем.
    Не опасно ли использовать exFAT для внешнего HDD?
    Для HDD без разницы какая ФС на нем будет.

    ExFAT will corrupt if you even think about unplugging without ejecting, or touching the drive while it's in use
    А что касается сохранности ваших данных - чего вы хотите от нежурналируемой ФС? Это актуально для любой нежурналируемой ФС. Тоже самое можно сказать и про HFS+, если отключить журнал.
    Ответ написан
    Комментировать
  • PDO проверка существует ли значение в таблице БД?

    Sanasol
    @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    Зачеееем делать выборку по ID с помощью LIKE и самой дикой маской %%?
    Зачем делать fetchAll цикл если вы заведомо выбираете ОДНУ запись?

    php.net/manual/ru/pdostatement.fetch.php
    Ответ написан
    1 комментарий
  • Почему я обновил на mac os php до 7.1 но все равно работает 5.5.27?

    miraage
    @miraage
    Старый прогер
    Через Homebrew ставить надо.
    Ответ написан
    Комментировать
  • Почему не могу вывести function в function, php?

    27cm
    @27cm
    TODO: Написать статус
    Раз это метод класса, то и вызывайте его как метод класса $this->redactpost($id);
    Разберитесь с основами: php.net/oop
    Ответ написан
    Комментировать
  • Как установить несколько версий php на vps debian?

    @pudovMaxim
    web-developer
    Для себя, для разработки на локальном компе, на ubuntu, использую phpbrew.
    Устраивает вполне. Но является ли это хорошим серверным решением, не в курсе.
    Ответ написан
    Комментировать
  • Имеет ли значение среда разработки при изучении Java (Intellij Idea и Eclipse)?

    @protven
    Нет разницы. И искренне советую не забивать на совет первые два-три Хелло-Ворлда написать в текстовом редакторе с подсветкой и скомпилировать и запустить их руками.
    Чтобы было понимание что такое CLASSPATH, javac, java и тд.
    Ответ написан
    Комментировать
  • Какие есть IDE для питона не на Java?

    sim3x
    @sim3x
    Все, что не помещается на 10 екранов - разбивается на модули и файлы
    vim с плагинами в файлах на 15к тоже будет спотыкаться

    Логика в мускуле - нонсенс

    Дело вполне может быть в пк. И если idea еще как-то параллелит обработку, то другие - нет
    Ответ написан
    3 комментария
  • Можно ли скомпилировать под Android без сертификата?

    Rou1997
    @Rou1997
    Разумеется можно, это даже для OS X и iOS можно, для Android тем более, при установке SDK создается отладочный сертификат, то есть ваша "самодельная" цифровая подпись и при компиляции APK будет ею подписываться, если CrossWalk этого не делает то можно вручную с помощью jarsigner, в общем работать будет, только надо на устройстве разрешить "установку из сторонних источников" и она будет работать не хуже чем подпись разработчика Google Play.
    Ответ написан
    1 комментарий
  • Как добавить новые шрифты в phpStorm?

    delphinpro
    @delphinpro Куратор тега PhpStorm
    frontend developer
    phpStorm отображает только моноширинные шрифты.
    Просто ставьте такой шрифт в систему и шторм его увидит.

    20161130-005923.png
    Ответ написан
    Комментировать
  • Как реализовать доступ к api сайта только из приложения?

    alsopub
    @alsopub
    Наверное самое простое - это перейти на https, чтобы нельзя было легко "подсмотреть" запросы.
    Если немного усложнить - то можно применить SSL Pinning, чтобы усложнить процесс подглядывания.
    Еще несложный вариант - "подписывать" запросы - добавлять параметр sign=.... где ... это будет например md5 от "секретная строка" + параметры запроса (потребуется уже декомпилировать приложение).
    Ответ написан
    Комментировать
  • Не работает метод POST в PHP, он что устарел? Как им теперь пользоваться?

    Sanasol
    @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    нельзя просто так взять и прочитать ошибку
    Ответ написан
    2 комментария
  • Как посмотреть сколько дисков в RAID5?

    @Erelecano
    Админю сервера, починяю примуса.
    Коллега выше правильно сказал, что [3/2] [UU_] говорит о том, что третьего таки нет в рейде.
    smartctl -a /dev/sda
    smartctl -a /dev/sdb
    smartctl -a /dev/sdc
    И это дело в саппорт. Ибо оно покажет, что по третьему(судя по всему) данные прочитать не сможет.

    На будущее. Можно не мониторить нагрузку и память, можно не мониторить сервисы, но есть две вещи обязательные к мониторингу:
    1. S.M.A.R.T
    2. Состояние raid

    Даже если у вас нет системы мониторинга(хотя я не могу представить сервер без мониторинга за ним следящего) есть /etc/mdadm/mdadm.conf в котором можно указать e-mail на который истерить при проблемах с рейдом и есть /etc/smartd.conf в котором можно настроить отправку сообщений о проблемах с дисками. Если вы это дело настроите, то у вас больше не будет таких неожиданностей, вы сразу получите извещение, как проблема начнется(когда смарт начнет видеть проблему с хардом).
    Ответ написан
    1 комментарий