Как стать автором
Обновить
3
0

Пользователь

Отправить сообщение

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

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


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


За прошедшие несколько веков произошел настоящий прорыв в наших знаниях о принципах работы окружающего нас мира. Но несмотря на это, у нас все еще нет фундаментальной теории физики, и мы все так же не имеем ответа на вопрос о том, как именно работает наша Вселенная. Я занимаюсь этой темой уже порядка 50-и лет, но только в последние несколько месяцев все кусочки пазла наконец-то начали складываться вместе. И получающаяся картина оказалась гораздо прекрасней, чем все, что я только мог себе представить.
Читать дальше →
Всего голосов 243: ↑238 и ↓5+307
Комментарии459

Работа с часовыми поясами в JavaScript

Время на прочтение16 мин
Количество просмотров95K


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

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

В этой статье я хочу обсудить, с чем я столкнулся и как это решал. Пока я писал текст, осознал, что причиной всех невзгод было плохое понимание мной самой темы часовых поясов. В свете этого осознания я предлагаю сначала подробно поговорить об определении и стандартах, а уже потом переходить к JavaScript.
Читать дальше →
Всего голосов 90: ↑84 и ↓6+78
Комментарии14

Project Soli: набираем текст при помощи «радара для пальцев» от Google

Время на прочтение1 мин
Количество просмотров8.1K


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

Одним из них является инженер Алекс Браво (Alex Bravo). Он занимается разработкой клавиатур нового типа, и Project Soli пришелся как нельзя кстати. Браво на днях выложил на YouTube видео с демонстрацией того, как он набирает текст на экране своего смартфона, просто перебирая пальцами в воздухе.
Читать дальше →
Всего голосов 12: ↑9 и ↓3+6
Комментарии13

Paraquire, или Перестаньте доверять библиотекам

Время на прочтение3 мин
Количество просмотров7.5K

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-разработчиком, прошу у сообщества советов и обсуждения.
Читать дальше →
Всего голосов 22: ↑18 и ↓4+14
Комментарии52

Социальное ботоводство: кто, как и зачем использует ботов?

Время на прочтение5 мин
Количество просмотров43K
image

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

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

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

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

Все это прошло… Настала эра социальных сетей, лайков, репостов и тонн бессмысленной информации, подталкивающей вас к тому или иному выводу или действию. Я хочу рассказать и попытаться классифицировать социальных ботов, как инструмент воздействия на человека.
Читать дальше →
Всего голосов 43: ↑36 и ↓7+29
Комментарии12

Как «пробить» человека в Интернет: используем операторы Google и логику

Время на прочтение9 мин
Количество просмотров946K

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


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


Читать дальше →
Всего голосов 122: ↑105 и ↓17+88
Комментарии108

Вход на сайт при помощи Telegram

Время на прочтение4 мин
Количество просмотров46K
На сегодняшний день в интернете практически все сайты используют древнюю и проверенную временем схему регистрации/авторизации по email. Такая схема всегда отлично работала и продолжает работать по сей день, но она делает пользователя интернета зависимым от почтовых сервисов, и на мой взгляд, имеет ряд недостатков.
Читать дальше →
Всего голосов 57: ↑49 и ↓8+41
Комментарии92

DDOS любого сайта с помощью Google Spreadsheet

Время на прочтение3 мин
Количество просмотров253K
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 трафика.
Читать дальше →
Всего голосов 181: ↑174 и ↓7+167
Комментарии62

Электронный микроскоп в гараже: Про вакуум

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


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


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

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

Вакуум


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

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

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

В этой статье есть наглядное описание всего необходимого для того, чтобы вы разбирались в теме и, конечно, дальнейший прогресс в восстановлении микроскопа!
Всего голосов 93: ↑91 и ↓2+89
Комментарии140

Как аккуратно залезть в кишки WebRTC при передаче голоса и видео

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

Как мог бы работать инопланетный космический корабль?

Время на прочтение21 мин
Количество просмотров70K

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


image

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


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

В нашей компании необычные задачи обычно оказываются у меня во «входящих». Случилось так, что благодаря комбинации отдыха и профессионального интереса я видел практически все мейнстримовые НФ-фильмы за последние несколько десятилетий. Но на основе рабочего названия «История твоей жизни» я даже не мог понять, будет ли это НФ-фильм и о чём он будет.
Всего голосов 65: ↑60 и ↓5+55
Комментарии127

Дешевые авиабилеты… Сеть мошеннических сайтов, ворующих деньги с карт. Второе расследование. При чём тут Промсвязьбанк?

Время на прочтение41 мин
Количество просмотров55K


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

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

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

И вот один из пользователей Geektimes связался со мной и прислал тот самый скрипт payp2p.php, который использовался в последнее время на большой части мошеннических сайтов по продаже авиабилетов. Скрипт этот использует сервис Промсвязьбанка для перевода с карты на карту. И на мой взгляд, Промсвязьбанк, предоставляя свой сервис, который было легко обмануть, способствовал росту количества интернет-мошенников.
Читать дальше →
Всего голосов 98: ↑96 и ↓2+94
Комментарии87

Настройка UEFI-загрузчика. Самое краткое руководство в мире

Время на прочтение6 мин
Количество просмотров566K

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


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


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

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

Читать дальше →
Всего голосов 52: ↑46 и ↓6+40
Комментарии99

Сравнение Angular 2 и Aurelia side by side

Время на прочтение23 мин
Количество просмотров37K
image

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

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

Так и родилась мысль сравнить Angular 2 с новым, но весьма амбициозным проектом Aurelia, который так же недавно вышел в бету. А заодно пополнить копилку Хабра информацией об этом фреймворке, поскольку пока ее гораздо меньше, чем информации об Angular 2.
Читать дальше →
Всего голосов 36: ↑33 и ↓3+30
Комментарии8

Локализация приложений для китайского рынка

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

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


Читать дальше →
Всего голосов 70: ↑66 и ↓4+62
Комментарии29

Ломаем сбор мусора и десериализацию в PHP

Время на прочтение19 мин
Количество просмотров23K


Эй, 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.
Читать дальше →
Всего голосов 68: ↑66 и ↓2+64
Комментарии4

Разработчики в край обленились?

Время на прочтение6 мин
Количество просмотров80K
image

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

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



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

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

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

Ниже я предлагаю вам ознакомиться с рядом скриншотов, на которых запечатлены «косяки» наших коллег только за последний месяц. Или я такой «везучий», что только и делаю, что натыкаюсь на подобное? Или же это видят все, но только мне приходится сдерживаться, чтобы не начать орать?
Читать дальше →
Всего голосов 101: ↑85 и ↓16+69
Комментарии200

Как взломать Telegram и WhatsApp: спецслужбы не нужны

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

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



А затем мы провели атаку через сеть SS7 на один из тестовых номеров (подробнее о самих атаках мы писали ранее). И вот что у нас получилось:
Читать дальше →
Всего голосов 156: ↑146 и ↓10+136
Комментарии242

Опасный target="_blank"

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

Через window.opener.location мы сможем сделать редирект на, к примеру, фишинговую страницу. Это своего рода tabnabbing, только более продвинутый. Так как жертва меньше всего ожидает подмены страницы, в открытой ранее, доверенной вкладке браузера.
Читать дальше →
Всего голосов 132: ↑126 и ↓6+120
Комментарии136

Кварцевый носитель, способный хранить большие массивы данных миллиарды лет, идет в массы

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

На один небольшой диск помещается около 360 терабайт данных. Материал остается стабильным при температурах вплоть до 1000°C, а при комнатной температуре может существовать практически вечно. При температуре в 190°C срок жизни материала исчисляется миллиардами лет (13 миллиардов). При этом вся размещаемая информация остается неповрежденной, пока остается целым сам диск.
Читать дальше →
Всего голосов 40: ↑37 и ↓3+34
Комментарии244

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность