Архив за 01 декабря 2013 - 2

Выложили приватные и публичные ключи, есть кошельки с ощутимимыми суммами.
Выложили на directory.io/
«Page 1 out of 904625697166532776746648320380374280103671755200316906558262375061821325312» намекает на масштаб события.
Курс на mtgox уже просел на ~400 баксов (на 23:40 по Москве 01.12.2013).
Читать полностью »

Bitcoin был взломал. Правда не понятно кем и как.
Выложили приватные и публичные ключи, есть кошельки с ощутимимыми суммами.
Выложили на directory.io/
«Page 1 out of 904625697166532776746648320380374280103671755200316906558262375061821325312» намекает на масштаб события.
Курс на mtgox уже просел на ~400 баксов.

На реддите пишут, что фейк www.reddit.com/r/Bitcoin/comments/1ruk0z/dont_panic_directoryio_thing_is_fake/, одна интернет-пользователи говорят, что кошельки были с не нулевыми балансами.

Кроме того, на том же Reddit, владелец directory.io пишет, что это не фейк.
Впору запасаться попкорном.
Читать полностью »

Подводный робот черепаха

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

Тема высоконагруженных приложений у всех на слуху. Тоже решил вставить свои 5 копеек и поделиться опытом создания высоконагруженного приложения на инфраструктуре AWS.

Сначала, буду банален и повторю всем известные истины. Есть 2 пути масштабирования приложения:
1) вертикальное масштабирование — это увеличение производительности каждого компонента системы (процессор, оперативная память, прочие компоненты);
2) горизонтальное, когда соединяют несколько элементов воедино, а система в целом состоит из множества вычислительных узлов, решающих общую задачу, тем самым увеличивая общую надежность и доступность системы. А увеличение производительности достигается добавлением в систему дополнительных узлов.

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

Недавно мы в очередной раз постигали все прелести горизонтального масштабирования на практике: строили высоконадежный социальный сервис для болельщиков американского футбола, выдерживающий пиковую нагрузку в 200 000 запросов в минуту. Поэтому хочу рассказать о нашем опыте создания высокомасштабируемой системы на инфраструктуре Amazon Web Services.

Обычно, архитектура веб приложения выглядит следующим образом:
Кластеризация веб приложений на хостинге Amazon Web Services
Рис. 1. Типичная архитектура веб приложения

  • первым пользователя “встречает” веб-сервер, на его плечи возлагаются задачи отдачи статических ресурсов и передачи запросов приложению;
  • далее эстафета передается приложению, где протекает вся бизнес-логика и взаимодействие с базой данных.

Чаще всего узкими местами системы являются код приложения и база данных, следовательно, стоит предусмотреть возможности их распараллеливания. Мы использовали:

  • development language and core framework — java 7 and rest jersey
  • application server — tomcat 7
  • database — MongoDB (NoSQL)
  • cache system — memcached

Как это было, или через тернии к high load

Читать полностью »

Стартап 16-летних предпринимателей набирает обороты.

Thinkspace: фабрика цукербергов

Список тех, кто обратил внимание на проект:

Стивен Фрай (актер), Стив Возняк(Apple), Dennis Crowley (Foursquare),Vic Gundotra(Google), Dick Costolo (Twitter), Джимми Уэлс (Википедия), Ричард Брэнсон ( Virgin), Steve Beswick (Microsoft), Ник Михайловский (благодаря ему я узнал об этом проекте), и ваш покорный слуга (я)

Итак, если вам от 13 до 18 лет и вы хотите вступить в ряды пионеров, то, изложив суть своей задумки не длиннее 400 символов, «вы станете членом VIP клуба», и будете получать специальные предложения от крупнейших ИТ компаний, станете частью сообщества единомышленников, интересующихся технологиями и внесете вклад в будущее проекта «Thinkspace».

На что же обратили внимание создатель Википедии и «мистер невинность»?

Читать полностью »

Мишко Хевери, главный разработчик Ангуляра, как-то упомянул, что приложение гарантированно работает без тормозов, если в нем не более 100 активных областей видимости. Такой подход, в общем, применим к любым приложениям. В играх давно не рендерят то, чего игрок не видит и только в вебе пока еще считается нормой отобразить целиком список из нескольких тысяч элементов. С приходом js-фреймворков ситуация должна измениться и лучшим решением станет удаление из DOM того чего нет на экране, нежели отказ от промежуточных тегов, биндингов и других вещей, облегчающих разработку. Поэтому провел небольшой анализ решений для отображения больших списков. Наткнулся на пару статей:

1. The Infinite Path of Scrolling

В ней парень рассказывает, что проходил стажировку в Гугле в команде Ангуляра и ему поручили исследовать этот вопрос. (Радует, что разработчики заинтересованы этим. Надеюсь, скоро увидим родную поддержку бесконечного скролла).Читать полностью »

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

Ранее мы познакомились с языком Smalltalk, а точнее с его микро реализацией Little Smalltalk. Разобрались с синтаксисом языка, форматом представления объектов в памяти и набором основных инструкций. Теперь мы вплотную подошли к вопросам взаимодействия Smalltalk и LLVM (ради этого и затевалась вся серия статей).

Сейчас у нас есть вся необходимая база знаний для того чтобы понять, что именно делается в нашем JIT компиляторе. В этой статье мы узнаем, как байт-коды Smalltalk преобразуются в IR код LLVM, как происходит компиляция и выполнение кода, и почему это работает быстрее, чем программная интерпретация. Самые нетерпеливые могут посмотреть шеллкасты (раз и два), с циферками и бегущими строчками (не забывайте про возможность скроллинга).
Читать полностью »

в 16:49, , рубрики: nosql, redis, метки:

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

Я поставил перед собой цель показать возможности Redis с помощью примеров кода. После публикации приму любые предложения по улучшению материала.

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

Ключи

Redis — хранилище данных в формате «ключ-значение». Факты о ключах:

  • Ключи в Redis — бинарно-безопасные (binary safe) строки.
  • Слишком длинные ключи — плохая идея, не только из-за занимаемой памяти, но так же и в связи с увеличением времени поиска определенного ключа в множестве в связи с дорогостоящим сравнением.
  • Хорошая идея — придерживаться схемы при построении ключей: «object-type:id:field».

Типы данных Redis

  • Строки (strings). Базовый тип данных Redis. Строки в Redis бинарно-безопасны, могут использоваться так же как числа, ограничены размером 512 Мб.
  • Списки (lists). Классические списки строк, упорядоченные в порядке вставки, которая возможна как со стороны головы, так и со стороны хвоста списка. Максимальное количество элементов — 232 — 1.
  • Множества (sets). Множества строк в математическом понимании: не упорядочены, поддерживают операции вставки, проверки вхождения элемента, пересечения и разницы множеств. Максимальное количество элементов — 232 — 1.
  • Хеш-таблицы (hashes). Классические хеш-таблицы или ассоциативные массивы. Максимальное количество пар «ключ-значение» — 232 — 1.
  • Упорядоченные множества (sorted sets). Упорядоченное множество отличается от обычного тем, что его элементы упорядочены по особому параметру «score».

Про типы данных Redis есть отдельная хорошая статья: «Структуры данных, используемые в Redis».
Читать полностью »

Эксперимент «Плазменный кристалл» и наука на МКС
В ноябре было объявлено о прекращении на МКС эксперимента «Плазменный кристалл». Специальное оборудование для эксперимента было помещено в грузовой корабль «Альберт Эйнштейн» и сгорело вместе с ним над Тихим океаном. Так закончилась длинная история, наверное, самого известного космического эксперимента. Я хочу рассказать о нём и чуть-чуть рассказать о науке на МКС в целом.
Читать полностью »

На этой неделе стало известно, что злоумышленники используют незакрытую на текущий момент уязвимость CVE-2013-5065 типа elevation of privilege (EoP) в Microsoft Windows XP и Server 2003 при организации направленных атак для поднятия своих полномочий в системе. Уязвимость не относится к типу RCE (Remote Code Execution), а используется только для обхода ограничений user-mode на исполнение кода в системном адресном пространстве. Используя баг в драйвере NDProxy.sys, злоумышленники могут исполнить свой код в режиме ядра.

Microsoft предупреждает об эксплуатации CVE 2013 5065 ITW

Сам шелл-код, который выполняет операцию эксплуатации уязвимой версии ndproxy, доставляется через вредоносный PDF-документ и используется совместно с применением уязвимости CVE-2013-3346 в Adobe Reader, Acrobat, которая позволяет обходить ограничения sandboxing в ридере и исполнить произвольный код (Adobe Reader sandbox bypass). CVE-2013-3346 была закрыта Adobe еще в августе этого года бюллетенем APSB13-15 и не грозит пользователям с обновленными версиями этих программ.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js