• Стивен Вольфрам: кажется, мы близки к пониманию фундаментальной теории физики, и она прекрасна

    • Translation
    В продолжение моего поста про вычислимую Вселенную я хочу представить вам свой перевод статьи Стивена Вольфрама, созданной в рамках его проекта The Wolfram Physics Project.


    Неожиданное открытие


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

    • Translation


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

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

    В этой статье я хочу обсудить, с чем я столкнулся и как это решал. Пока я писал текст, осознал, что причиной всех невзгод было плохое понимание мной самой темы часовых поясов. В свете этого осознания я предлагаю сначала подробно поговорить об определении и стандартах, а уже потом переходить к JavaScript.
    Читать дальше →
  • Project Soli: набираем текст при помощи «радара для пальцев» от Google



      В мае прошлого года корпорация Google показала сразу несколько интересных новинок на мероприятии Google I/O. Одной из новинок был мини-радар Project Soli, изменяющий принцип взаимодействия человека с электронным устройством. Работа над проектом велась все это время, и сейчас тестовая партия систем попала к тестерам.

      Одним из них является инженер Алекс Браво (Alex Bravo). Он занимается разработкой клавиатур нового типа, и Project Soli пришелся как нельзя кстати. Браво на днях выложил на YouTube видео с демонстрацией того, как он набирает текст на экране своего смартфона, просто перебирая пальцами в воздухе.
      Читать дальше →
    • Paraquire, или Перестаньте доверять библиотекам

        TL; DR


        Использование npm — пакетного менеджера NodeJS — сопряжено с проблемами безопасности. Штатными средствами невозможно контролировать права доступа, предоставляемые библиотекам. Вкупе с обилием микромодулей это может привести к непредсказуемым последствиям, часть из уже случившегося описана здесь, и в лучших традициях экосистемы npm я на неё сошлюсь.



        Под катом описывается proof-of-concept библиотеки, реализующей механизм загрузки npm-модулей с возможностью установить права подобно тому, как на Android можно выдавать приложению конкретные разрешения.

        Вместо

        var lib = require('untrusted-lib');
        

        предлагается писать где-нибудь

        var paraquire = require('paraquire')(module);
        

        и затем

        var lib = paraquire('untrusted-lib');
        

        или же

        var lib = paraquire('untrusted-lib', {builtin:{https:true}});
        

        Исходный код доступен на гитхабе под LGPLv3.

        Кроме того я, не будучи достаточно опытным NodeJS-разработчиком, прошу у сообщества советов и обсуждения.
        Читать дальше →
      • Социальное ботоводство: кто, как и зачем использует ботов?

          image

          Хочу начать статью сразу с сути, чтобы было понятно о чем я хочу рассказать. Для этого мне нужно, чтобы вы ответили для себя на ряд вопросов честно:

          • Откуда вы черпаете информацию?
          • Как вы ее проверяете?
          • Как информация влияет на ваше мнение или действия?
          • Сколько времени вы проводите в социальных сетях?

          Лично я с удивлением для себя обнаружил, что 90% информации я получаю из интернета и где-то 30% от этого — из социальных сетей. Я отношусь к тому поколению, которое застало DialUP модемы и скорость подключения в 22 кб/с. В то время, чтобы “захостить” сайт и выкинуть какую-то статью нужны были знания, опыт и необходимо было вложить в это хоть чуть-чуть денег (на хостинг). Поэтому я знал, что какой-либо материал из интернета должен был представлять хоть какую-то ценность, а его автор должен был быть не совсем глупым человеком.

          Тогда не было новостей в стиле “ШОК”, SEO только зарождалось, а про SMM никто вообще не слышал. Новостям и информации из интернета можно было относительно доверять. Читая обзорную статью про “рейтинг” самых популярных для программистов книг, у меня не возникало сомнений в его объективности и я не задумывался, что автор может иметь выгоду от продажи книг по модели CPA или просто продвигать какой-то бренд.

          Все это прошло… Настала эра социальных сетей, лайков, репостов и тонн бессмысленной информации, подталкивающей вас к тому или иному выводу или действию. Я хочу рассказать и попытаться классифицировать социальных ботов, как инструмент воздействия на человека.
          Читать дальше →
        • Как «пробить» человека в Интернет: используем операторы Google и логику

          • Tutorial

          В очередной статье нашего цикла публикаций, посвященного интернет-разведке, рассмотрим, как операторы продвинутого поиска Google (advanced search operators) позволяют быстро находить необходимую информацию о конкретном человеке.


          В комментариях к первой нашей статье, читатели просили побольше практических примеров и скриншотов, поэтому в этой статье практики и графики будем много. Для демонстрации возможностей «продвинутого» поиска Google в качестве целей были выбраны личные аккаунты автора. Сделано это, чтобы никого не обидеть излишним интересом к его частной жизни. Хочу сразу предупредить, что никогда не задавался целью скрыть свое присутствие в интернете, поэтому описанные методы подойдут для сбора данных об обычных людях, и могут быть не очень эффективны для деанонимизации фэйковых аккаунтов, созданных для разовых акций. Интересующимся читателям предлагаю повторить приведенные примеры запросов в отношении своих аккаунтов и оценить насколько легко собирать информацию по ним.


          Читать дальше →
        • Вход на сайт при помощи Telegram

          На сегодняшний день в интернете практически все сайты используют древнюю и проверенную временем схему регистрации/авторизации по email. Такая схема всегда отлично работала и продолжает работать по сей день, но она делает пользователя интернета зависимым от почтовых сервисов, и на мой взгляд, имеет ряд недостатков.
          Читать дальше →
        • DDOS любого сайта с помощью Google Spreadsheet

          • Translation
          Google использует своего «паука» FeedFetcher для кэширования любого контента в Google Spreadsheet, вставленного через формулу =image(«link»).

          Например, если в одну из клеток таблицы вставить формулу
          =image("http://example.com/image.jpg")
          Google отправит паука FeedFetcher скачать эту картинку и закэшировать для дальнейшего отображения в таблице.

          Однако если добавлять случайный параметр к URL картинки, FeedFetcher будет скачивать её каждый раз заново. Скажем, для примера, на сайте жертвы есть PDF-файл размером в 10 МБ. Вставка подобного списка в таблицу приведет к тому, что паук Google скачает один и тот же файл 1000 раз!
          =image("http://targetname/file.pdf?r=1")
          =image("http://targetname/file.pdf?r=2")
          =image("http://targetname/file.pdf?r=3")
          =image("http://targetname/file.pdf?r=4")
          ...
          =image("http://targetname/file.pdf?r=1000")

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

          Атакующему даже необязательно иметь быстрый канал. Поскольку в формуле используется ссылка на PDF-файл (т.е. не на картинку, которую можно было бы отобразить в таблице), в ответ от сервера Google атакующий получает только N/A. Это позволяет довольно просто многократно усилить атаку [Аналог DNS и NTP Amplification – прим. переводчика], что представляет серьезную угрозу.



          С использованием одного ноутбука с несколькими открытыми вкладками, просто копируя-вставляя списки ссылок на файлы по 10 МБ, паук Google может скачивать этот файл со скоростью более 700 Мбит/c. В моем случае, это продолжалось в течение 30-45 минут, до тех пор, пока я не вырубил сервер. Если я все правильно подсчитал, за 45 минут ушло примерно 240GB трафика.
          Читать дальше →
        • Электронный микроскоп в гараже: Про вакуум

            Для тех, кто ещё не в курсе о проекте — почитать можно вот здесь.


            Обратная связь


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

            Также у меня есть мысль записывать тематические видео про проект. Сделал пробный вариант про внутреннее устройство форвакуумного насоса для этой статьи. В этом видео есть, что улучшать: надо заменить свет в гараже, использовать хороший микрофон. Буду следить за комментариями и просмотрами, чтобы узнать, насколько вам это понравится.

            Вакуум


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

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

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

            В этой статье есть наглядное описание всего необходимого для того, чтобы вы разбирались в теме и, конечно, дальнейший прогресс в восстановлении микроскопа!
            Читать дальше →
          • Как аккуратно залезть в кишки WebRTC при передаче голоса и видео

            • Translation
            WebRTC — технология интересная, но чуток запутанная. В первую очередь тем, что это не одна технология, а комбайн. Захват видео с камеры и звука с микрофона. Установка peer-to-peer подключения между двумя браузерами с протыканием NAT по мере возможности. Передача звука и видео по этому подключению, с пониманием, что передаются realtime данные: кодеки, пропускная способность, потеря кадров, вот это всё. Ну и, наконец, воспроизведение полученного в окне другого браузера. Или не браузера, это уже как зайдет. Ах да, еще — realtime передача пользовательских данных по той же схеме для игр, датчиков и всего того, где недопустимы лаги tcp websocket. Мы в Voximplant постоянно копаемся в кишках технологии, чтобы у клиентов были качественные звук и видео во всех случаях, а не только по локальной 100-мегабитке. И нам было очень приятно почитать на прошлой неделе интересную статью, которая рассказывает, как в этих кишках правильно копаться. Предлагаем вам тоже почитать адаптированный перевод, специально для Хабра!
            Читать дальше →
            • +51
            • 10.6k
            • 3
          • Как мог бы работать инопланетный космический корабль?

            • Translation

            История создания фильма «Прибытие» (без спойлеров), рассказанная научным консультантом фильма, Стивеном Вольфрамом


            image

            Связываемся с Голливудом


            «Интересный сценарий»,- сказал кто-то из нашей команды пиарщиков [в компании Wolfram]. Мы уже привыкли получать запросы от кинокомпаний на показ нашей графики или постеров или книг в фильмах. Но в этот раз всё было по-другому: нас спросили, можем ли мы по-быстрому создать реалистичные вещи для большого голливудского научно-фантастического кинопроекта, съёмки которого уже собираются начать?

            В нашей компании необычные задачи обычно оказываются у меня во «входящих». Случилось так, что благодаря комбинации отдыха и профессионального интереса я видел практически все мейнстримовые НФ-фильмы за последние несколько десятилетий. Но на основе рабочего названия «История твоей жизни» я даже не мог понять, будет ли это НФ-фильм и о чём он будет.
            Читать дальше →
          • Дешевые авиабилеты… Сеть мошеннических сайтов, ворующих деньги с карт. Второе расследование. При чём тут Промсвязьбанк?



              Около месяца назад я опубликовал на Geektimes статью «Дешевые авиабилеты… Или сеть мошеннических сайтов, ворующих деньги с карт. Мое расследование.» Публикация получила большой отклик и неожиданное продолжение…

              Напомню для тех, кто первую часть не читал. В публикации на основе реальных случаев были описаны схемы, с помощью которых мошенники воруют деньги с карт покупателей авиабилетов, которые имели неосторожность попасть на поддельный сайт по продаже билетов. Количество таких мошеннических сайтов по продаже авиабилетов в рунете исчисляется десятками и сотнями (с учетом закрытых). На таких сайтах пользователю сначала показывается реальная информация об авиарейсах, предлагается оформить заказ и оплатить его банковской картой. Всё выглядит красиво, пока покупатели авиабилетов не обнаруживают, что остались и без денег, и без билетов.

              Во всех обнаруженных случаях для кражи денег такие сайты используют сервисы банков для перевода денег с карты на карту (P2P). В первой части был подробно разобран механизм того, как страница Банка Тинькова для оплаты с карты на карту маскируется и встраивается на мошеннические сайты, так, чтобы «покупатель» ничего не заметил. Также упоминался Промсвязьбанк, — именно через него были украдены деньги с карты потерпевшего в истории, которая была описана. И если с банком ТКС вопросов не осталось, то в случае с Промсвязьбанком было непонятно, как именно выводятся деньги. Основной скрипт, служащий для воровства денег, выполнялся на стороне сервера и без исходных кодов можно было только стоить предположения, что именно он делает.

              И вот один из пользователей Geektimes связался со мной и прислал тот самый скрипт payp2p.php, который использовался в последнее время на большой части мошеннических сайтов по продаже авиабилетов. Скрипт этот использует сервис Промсвязьбанка для перевода с карты на карту. И на мой взгляд, Промсвязьбанк, предоставляя свой сервис, который было легко обмануть, способствовал росту количества интернет-мошенников.
              Читать дальше →
            • Настройка UEFI-загрузчика. Самое краткое руководство в мире

              • Tutorial

              Как устроена загрузка современных ОС? Как при установке системы настроить загрузку посредством UEFI, не утонув в руководствах и ничего не сломав?


              Я обещал "самое краткое руководство". Вот оно:


              1. Создаём на диске таблицу разделов GPT
              2. Создаём FAT32-раздел на пару сотен мегабайт
              3. Скачиваем из интернета любой UEFI-загрузчик
                (нам нужен сам загрузчик, это один бинарный файл!)
              4. Переименовываем и кладем этот файл на созданный раздел по адресу /EFI/Boot/bootx64.efi
              5. Создаём текстовый конфиг, кладем его там, где загрузчик ожидает его увидеть
                (настройка и местоположение конфига зависят от конкретной реализации загрузчика, эта информация доступна в интернете)
              6. После перезагрузки видим меню загрузчика
                (Если на диске установлена Windows 8 или 10 — с большой вероятностью это руководство сокращается до пунктов 3 — 5.)

              TL;DR не надо прописывать путь к загрузчику в новых загрузочных записях UEFI — надо файл загрузчика расположить по стандартному "пути по-умолчанию", где UEFI его найдет, и вместо загрузочного меню UEFI пользоваться меню загрузчика, которое гораздо проще и безопаснее настраивается

              Читать дальше →
            • Сравнение Angular 2 и Aurelia side by side

                image

                Не так давно в мире web-разработки произошло важное событие — вышла бета Angular 2. И уже можно строить предположения о том, как он будет выглядеть после релиза.

                Но оценка сама по себе, в вакууме, напоминает выбор электроники по рекламным буклетам производителя. Все фишки, которые есть в гаджете, упомянуты. А все, которых нет — не упомянуты и мы можем про их существование даже не задуматься. Поэтому гораздо эффективнее оценивать сравнивая с чем-то еще.

                Так и родилась мысль сравнить Angular 2 с новым, но весьма амбициозным проектом Aurelia, который так же недавно вышел в бету. А заодно пополнить копилку Хабра информацией об этом фреймворке, поскольку пока ее гораздо меньше, чем информации об Angular 2.
                Читать дальше →
                • +30
                • 36.3k
                • 8
              • Локализация приложений для китайского рынка

                  Собственно, ни для кого не секрет, что рынок КНР (а еще и Гонконга и Тайваня) — мечта для любого игропроизводителя. Учитывая азарт китайцев, их внушаемость и распространенность мобильных телефонов среди населения (а также количество абонентов), удачный вход на китайский рынок может принести огромную прибыль.

                  В этой публикации я постараюсь описать весь этот трудоемкий путь, а так же основные подводные камни, могущие встретиться на этом пути. Добро пожаловать под кат.


                  Читать дальше →
                • Ломаем сбор мусора и десериализацию в PHP

                  • Translation


                  Эй, PHP, эти переменные выглядят как мусор, согласен?
                  Нет? Ну, посмотри-ка снова…


                  tl;dr:
                  Мы обнаружили две use-after-free уязвимости в алгоритме сбора мусора в PHP:

                  • Одна присутствует во всех версиях PHP 5 ≥ 5.3 (исправлена в PHP 5.6.23).
                  • Вторая — во всех версиях PHP ≥ 5.3, включая версии PHP 7 (исправлена в PHP 5.6.23 и PHP 7.0.8).

                  Уязвимости могут удалённо применяться через PHP-функцию десериализации. Используя их, мы отыскали RCE на pornhub.com, за что получили премию в 20 000 долларов плюс по 1000 долларов за каждую из двух уязвимостей от комитета Internet Bug Bounty на Hackerone.
                  Читать дальше →
                  • +64
                  • 19.1k
                  • 4
                • Разработчики в край обленились?

                  • Translation
                  image

                  Примечание от переводчика:

                  Оригинальный текст, местами, имеет яркую экспрессивную окраску, которую было решено адаптировать и передать в переводе. Сама статья глубоко субъективна, но в целом, дает некоторую пищу для размышлений. Приятного чтения.



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

                  За последние несколько лет стало ощущаться, как качество программного обеспечения и услуг по всей отрасли стало падать, а не расти. Все и всегда находится в стадии Беты (как исходя из названия, так и из качества). Товары отправляются потребителям тогда, когда этого хотят маркетологи, а не когда они реально готовы к продаже, а все потому, что «мы всегда сможем легко все пофиксить». Конечный потребитель превратился из покупателя в бета-тестера, но это уже норма, потому что в разработке используется Agile. В программировании мы стали считать, что ошибки и неудачи — это нормально, поэтому нам теперь не нужно прикладывать так много усилий для их избежания. Поддержка миллионов клиентов — вещь сложная, поэтому волноваться не стоит. Зачем вообще тратить время на ознакомление с фидбеком и репортами от пользователей, если их просто можно отправить в бесконечный лабиринт под названием «саппорт» и «обратная связь»?

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

                  Ниже я предлагаю вам ознакомиться с рядом скриншотов, на которых запечатлены «косяки» наших коллег только за последний месяц. Или я такой «везучий», что только и делаю, что натыкаюсь на подобное? Или же это видят все, но только мне приходится сдерживаться, чтобы не начать орать?
                  Читать дальше →
                • Как взломать Telegram и WhatsApp: спецслужбы не нужны

                    На прошлой неделе общественность взбудоражила новость о возможной причастности спецслужб к взлому аккаунтов оппозиционеров в популярном мессенджере Telegram. На протяжении своего существования человечество пыталось объяснить всё необъяснимое с помощью высших сил – Богов. В наше время все непонятные вещи объясняют происками спецслужб.

                    Мы решили проверить, действительно ли нужно быть спецслужбой, чтобы получить доступ к чужому аккаунту Telegram. Для этого мы зарегистрировали тестовый аккаунт Telegram, обменялись несколькими тестовыми сообщениями:



                    А затем мы провели атаку через сеть SS7 на один из тестовых номеров (подробнее о самих атаках мы писали ранее). И вот что у нас получилось:
                    Читать дальше →
                  • Опасный target="_blank"

                      Большинство создают внешние ссылки через target="_blank" и не знают одного интересного нюанса — страница, на которую мы попадем таким образом, получит частичный контроль над ссылающейся на нее страницей через js свойство window.opener.

                      Через window.opener.location мы сможем сделать редирект на, к примеру, фишинговую страницу. Это своего рода tabnabbing, только более продвинутый. Так как жертва меньше всего ожидает подмены страницы, в открытой ранее, доверенной вкладке браузера.
                      Читать дальше →
                    • Кварцевый носитель, способный хранить большие массивы данных миллиарды лет, идет в массы

                        Ученые из университета Саутгемптона разработали носитель информации нового типа. Этот накопитель может хранить данные миллиарды лет, не разрушаясь. Материал представляет собой наноструктурированное кварцевое стекло, для которого разработан процесс записи и механизм считывания данных. Используется фемтосекундный лазер, записывающий информацию в 5D режиме.

                        На один небольшой диск помещается около 360 терабайт данных. Материал остается стабильным при температурах вплоть до 1000°C, а при комнатной температуре может существовать практически вечно. При температуре в 190°C срок жизни материала исчисляется миллиардами лет (13 миллиардов). При этом вся размещаемая информация остается неповрежденной, пока остается целым сам диск.
                        Читать дальше →