Пока готовится первая статья в обучающей серии об языке Эрланг, решил сделать перевод одного интересного блог-поста. Пост об развитии виртуальной машины Эрланг и целях, которые пытаются достичь его авторы.
Aleks Lozovyuk @aleks_raiden
Криптовалюты, финансы, распределенные системы
Перевод Azure Services Platform Девида Чеппела 2 часть
18 min
3KTranslation
Первая часть перевода
Получить общее представление о Azure Service Platform это важный первый шаг, однако, более глубокее понимание каждой из технологий тоже необходимо. В этом разделе каждый из членов семьи Azure рассматривается немного более детально.
Детальный взгляд на технологии.
Получить общее представление о Azure Service Platform это важный первый шаг, однако, более глубокее понимание каждой из технологий тоже необходимо. В этом разделе каждый из членов семьи Azure рассматривается немного более детально.
+21
Firebug: Part 1 — console
2 min
7.7KДанной статей я хочу начать серию, посвященную всеми любимому Add-on к Firefox под названием Firebug.
Весь цикл: Console, Commands, Debugging ,Profiling
Я постараюсь раскрыть известные и не очень его возможности, которые могут пригодиться любому Web-разработчику(а могут и не пригодиться, но это врядли).
Если у вас его еще нету, то можно скачать со страницы http://getfirebug.com.
Весь цикл: Console, Commands, Debugging ,Profiling
Я постараюсь раскрыть известные и не очень его возможности, которые могут пригодиться любому Web-разработчику(а могут и не пригодиться, но это врядли).
Если у вас его еще нету, то можно скачать со страницы http://getfirebug.com.
+96
Структуры данных в memcached/MemcacheDB. Часть 2
9 min
3.2KПродолжение статьи про структуры данных в memcached. В этой завершающей части мы рассмотрим еще три структуры данных: лог событий, массив и таблицу.
+26
Инструкция по воплощению
6 min
876Полезная статья в журнале «Деньги» о том, «можно ли создать универсальный рецепт извлечения денег из идей?». Особенна полезна, как информация к размышлению тем, кто, как говорится, берется за дело, чтобы понять сколько и на каких усливиях можно за него получить.
Полная версия доступна здесь.
Полная версия доступна здесь.
+14
Applets reloaded
6 min
2.2KApplets reloaded
предисловие
Ни для кого не секрет что Adobe Flash полноценно занял свою позицию в интернете. По общей статистики почти у 98% пользователей интернета установлен Flash плагин. Главное назначение которого — реализация «rich UI»(англ: богатый пользовательский интерфейс), проще говоря — красивый, динамический интерфейс. Однако в последнее время два гиганта решили пошатнуть его позицию — Microsoft и Sun. Microsoft выпустила технологию Silverligth, а Sun — решила нанести более серьезный удар. Выпустив сразу несколько продуктов с общей и довольно явной целью — пошатнуть Flash/Flex.
+57
Стыкуем компоненты в JavaScript
5 min
1.9KПосле заметки Стыкуем асинхронные скрипты и предложенного решения от Steve Souders я подумал о модульной загрузке какого-то сложного JavaScript-приложения. И понял, что предложенный подход в таком случае будет довольно громоздким: нам нужно будет в конец каждого модуля вставлять загрузчик следующих модулей. А если нам на разных страницах требуются различные наборы модулей и разная логика их загрузки? Тупик?
Ан нет. Не зря Steve упоминает в самом начала своей заметки о событии
В качестве наиболее простого способа определить порядок загрузки модулей на конкретной странице можно предложить глобальный массив, содержащий в себе дерево зависимостей. Например, такой:
Ан нет. Не зря Steve упоминает в самом начала своей заметки о событии
onload
/ onreadystatechange
для скриптов. Используя их, мы можем однозначно привязать некоторый код к окончанию загрузки конкретного модуля. Дело за малым: нам нужно определить этот самый код каким-либо образом.Решение первое: дерево загрузки
В качестве наиболее простого способа определить порядок загрузки модулей на конкретной странице можно предложить глобальный массив, содержащий в себе дерево зависимостей. Например, такой:
+27
Курс по Silverlight от MIT
1 min
845На сайте Массачусетского технологического института (Massachusetts Institute of Technology, MIT) размещен в открытый доступ целый курс, посвященный Silverlight.
+21
Обзор LLVM
13 min
86KLLVM (Low Level Virtual Machine) — это универсальная система анализа, трансформации и оптимизации программ или, как её называют разработчики, «compiler infrastucture».
LLVM — не просто очередной академический проект. Его история началась в 2000 году в Университете Иллинойса, а теперь LLVM используют такие гиганты индустрии как Apple и Adobe. В частности, на LLVM основана подсистема OpenGL в MacOS X 10.5, а iPhone SDK использует GCC с бэкэндом на LLVM. Apple является одним из основных спонсоров проекта, а вдохновитель LLVM — Крис Латтнер — теперь работает в Apple.
В основе LLVM лежит промежуточное представление кода (intermediate representation, IR), над которым можно производить трансформации во время компиляции, компоновки (linking) и выполнения. Из этого представления генерируется оптимизированный машинный код для целого ряда платформ, как статически, так и динамически (JIT-компиляция). LLVM поддерживает генерацию кода для x86, x86-64, ARM, PowerPC, SPARC, MIPS, IA-64, Alpha.
LLVM написана на C++ и портирована на большинство *nix-систем и Windows. Система имеет модульную структуру и может расширяться дополнительными алгоритмами трансформации (compiler passes) и кодогенераторами для новых аппаратных платформ. Пользовательский фронтенд, как правило, линкуется с LLVM и использует C++ API для генерации кода и его преобразований. Однако LLVM включает в себя и standalone утилиты.
Для тех, кто не без оснований считает C++ не лучшим языком для написания компиляторов, с недавних пор в LLVM включена обертка API для OCaml.
Чтобы понять, что можно сделать с помощью LLVM, и на каком уровне придётся работать, давайте разберёмся,
LLVM — не просто очередной академический проект. Его история началась в 2000 году в Университете Иллинойса, а теперь LLVM используют такие гиганты индустрии как Apple и Adobe. В частности, на LLVM основана подсистема OpenGL в MacOS X 10.5, а iPhone SDK использует GCC с бэкэндом на LLVM. Apple является одним из основных спонсоров проекта, а вдохновитель LLVM — Крис Латтнер — теперь работает в Apple.
В основе LLVM лежит промежуточное представление кода (intermediate representation, IR), над которым можно производить трансформации во время компиляции, компоновки (linking) и выполнения. Из этого представления генерируется оптимизированный машинный код для целого ряда платформ, как статически, так и динамически (JIT-компиляция). LLVM поддерживает генерацию кода для x86, x86-64, ARM, PowerPC, SPARC, MIPS, IA-64, Alpha.
LLVM написана на C++ и портирована на большинство *nix-систем и Windows. Система имеет модульную структуру и может расширяться дополнительными алгоритмами трансформации (compiler passes) и кодогенераторами для новых аппаратных платформ. Пользовательский фронтенд, как правило, линкуется с LLVM и использует C++ API для генерации кода и его преобразований. Однако LLVM включает в себя и standalone утилиты.
Для тех, кто не без оснований считает C++ не лучшим языком для написания компиляторов, с недавних пор в LLVM включена обертка API для OCaml.
Чтобы понять, что можно сделать с помощью LLVM, и на каком уровне придётся работать, давайте разберёмся,
+50
Издержки больших проектов или взгляд на программирование в команде изнутри
1 min
3.8K![](https://habrastorage.org/getpro/megamozg/post_images/d7d/bcd/52d/d7dbcd52d463abab59887492e14548a0.gif)
Итак, собственно, к делу.
Мы занимаемся системами электронной биржевой торговли, аналитикой рынка и поставкой маркет-данных в реальном времени. К таким системам предъявляются повышенные требования по надежности — каждая ошибка может привести к потере больших денег.
+70
Горизонтальное масштабирование PostgreSQL с помощью PL/Proxy.
9 min
28KОчень тяжело начать писать статью. Т.е очень тяжело придумать вступительное слово. Хочется рассказать обо всём и сразу :) Но нет. Будем последовательны.
Начну с того что совсем недавно проходил Highload++ 2008 на котором мне удалось побывать.
Скажу сразу — мероприятие было проведено по высшему клаcсу, докладов было много и все были очень интересными.
Одной из самых запомнившихся презентаций была лекция Аско Ойя об инфраструктуре серверов баз данных в Skype. Лекция в большей степени касалась различных средств с помощью которых достигается такая производительность серверов.
По словам Аско, база данных Skype выдержит даже если все жители Земли захотят подключится к скайп в один момент.
Приехав домой очень захотелось это всё попробовать в живую. О чём я сейчас и расскажу. Сразу оговорюсь — структура базы данных для теста, взята из примера на сайте самих разработчиков и естественно не имеет ничего общего с реальной загрузкой.
В статье будет описано что распределением нагрузки надо заниматься после того как уже припекло и база падает, но это не совсем так. С помощью данной статьи я как раз хочу подготовить начинающих и не опытных разработчиков и заодно заставить их задуматься о том, что предусматривать возможность распределения нагрузки между серверами надо ещё при проектировании системы. И это не будет считаться той самой «преждевременной оптимизацией» о которой так много пишут и которой так боятся.
UPD: Как правильно заметил хабраюзер descentspb в статье присутствует досаднейшая ошибка. В следствие своей невнимательности я подумал что PgBouncer надо устанавливать между прокси и клиентом. Но, как оказалось, та проблема которую я решал с помощью PgBouncer не решится если установить его именно так. Правильнее надо устанавливать боунсер между нодами и прокси. Мало того, именно так и рекомендуется делать в оффициальном мануале на сайте PL/Proxy.
В любом случае использование PgBouncer так как указано на моей схеме также даст прирост производительности. (Разгрузит Proxy).
Начну с того что совсем недавно проходил Highload++ 2008 на котором мне удалось побывать.
Скажу сразу — мероприятие было проведено по высшему клаcсу, докладов было много и все были очень интересными.
Одной из самых запомнившихся презентаций была лекция Аско Ойя об инфраструктуре серверов баз данных в Skype. Лекция в большей степени касалась различных средств с помощью которых достигается такая производительность серверов.
По словам Аско, база данных Skype выдержит даже если все жители Земли захотят подключится к скайп в один момент.
Приехав домой очень захотелось это всё попробовать в живую. О чём я сейчас и расскажу. Сразу оговорюсь — структура базы данных для теста, взята из примера на сайте самих разработчиков и естественно не имеет ничего общего с реальной загрузкой.
В статье будет описано что распределением нагрузки надо заниматься после того как уже припекло и база падает, но это не совсем так. С помощью данной статьи я как раз хочу подготовить начинающих и не опытных разработчиков и заодно заставить их задуматься о том, что предусматривать возможность распределения нагрузки между серверами надо ещё при проектировании системы. И это не будет считаться той самой «преждевременной оптимизацией» о которой так много пишут и которой так боятся.
UPD: Как правильно заметил хабраюзер descentspb в статье присутствует досаднейшая ошибка. В следствие своей невнимательности я подумал что PgBouncer надо устанавливать между прокси и клиентом. Но, как оказалось, та проблема которую я решал с помощью PgBouncer не решится если установить его именно так. Правильнее надо устанавливать боунсер между нодами и прокси. Мало того, именно так и рекомендуется делать в оффициальном мануале на сайте PL/Proxy.
В любом случае использование PgBouncer так как указано на моей схеме также даст прирост производительности. (Разгрузит Proxy).
+46
Технология JavaFX RIA почти готова к выпуску
2 min
1.6KTranslation
Технология компании Sun Microsystems JavaFX RIA (rich Internet application) почти готова к выходу.
Демонстрируя платформу для приложений, основанной на Java (компоненты на основе скриптов и runtime-система для десктопов и мобильных устройств) – JavaFX, Sun официально заявила что это дает компании возможность входа на рынок, представленный Adobe Systems с Flash и Microsoft с Silverlight. Поставки базовой JavaFX-платформы для десктопов запланированы на конец этого года.
«Мы можем показать JavaFX в действии уже сегодня и мы весьма близки к поставкам конечного продукта», сказал Eric Klein, Sun vice president for Java marketing.
Sun официально продемонстрировала запуск JavaFX на примере работы с видео, где была показана возможность осуществления drag'n'drop видео за пределы браузера, на десктоп. С JavaFX пользовали получат единую платформу, связывая возможности браузеров и десктопов воедино, в отличие от Adobe, которая предоставляет Flash для браузеров и AIR (Adobe Integrated Runtime) для десктопов.
«Здесь, в одном environment мы сохраним время, усилия и деньги разработчиков, потому что им не нужно будет учить допольнительный environment в процессе девелопмента», отметил Param Singh, Sun director of Java marketing.
К концу года будет представлены первые версии JavaFX Desktop и JavaFX Script. Также должны быть выпущены SDK и JavaFX Production Suite, которые позволят разработчикам и дизайнерам работать вместе. Планируется выпуск и эмулятора для мобильных устройств. Официальный релиз JavaFX Mobile последует немного позже. В планах и JavaFX runtime для телевидения.
JavaFX-технологии, как и основная часть Java-продуктов, будут бесплатны. Но Sun делала и будет делать деньги на том, что связано с Java и скоро ожидает значительное увеличение прибыли. Но некоторые ставят эту стратегию под сомнение.
Демонстрируя платформу для приложений, основанной на Java (компоненты на основе скриптов и runtime-система для десктопов и мобильных устройств) – JavaFX, Sun официально заявила что это дает компании возможность входа на рынок, представленный Adobe Systems с Flash и Microsoft с Silverlight. Поставки базовой JavaFX-платформы для десктопов запланированы на конец этого года.
«Мы можем показать JavaFX в действии уже сегодня и мы весьма близки к поставкам конечного продукта», сказал Eric Klein, Sun vice president for Java marketing.
Sun официально продемонстрировала запуск JavaFX на примере работы с видео, где была показана возможность осуществления drag'n'drop видео за пределы браузера, на десктоп. С JavaFX пользовали получат единую платформу, связывая возможности браузеров и десктопов воедино, в отличие от Adobe, которая предоставляет Flash для браузеров и AIR (Adobe Integrated Runtime) для десктопов.
«Здесь, в одном environment мы сохраним время, усилия и деньги разработчиков, потому что им не нужно будет учить допольнительный environment в процессе девелопмента», отметил Param Singh, Sun director of Java marketing.
К концу года будет представлены первые версии JavaFX Desktop и JavaFX Script. Также должны быть выпущены SDK и JavaFX Production Suite, которые позволят разработчикам и дизайнерам работать вместе. Планируется выпуск и эмулятора для мобильных устройств. Официальный релиз JavaFX Mobile последует немного позже. В планах и JavaFX runtime для телевидения.
JavaFX-технологии, как и основная часть Java-продуктов, будут бесплатны. Но Sun делала и будет делать деньги на том, что связано с Java и скоро ожидает значительное увеличение прибыли. Но некоторые ставят эту стратегию под сомнение.
+20
Визуализируем данные на JavaScript
3 min
4.5KTranslation
![](http://www.84bytes.com/blog/wp-content/uploads/2008/10/visual.png)
Развитие компьютерной графики подталкивает нас к изобретению всё новых способов графического представления данных. Разрабатывались различные прикладные программы для визуализации данных на локальных компьютерах. Однако всё изменилось с развитием интернета: в нём содержатся колоссальные объёмы информации, которые нам постоянно хочется представить как-то удобнее, дружелюбнее, понятнее. Что же мы имеем на сегодняшний день?
Существует немалое число серверных библиотек и утилит, способных генерировать сложные графики. Однако я считаю, что такой подход не всегда оптимален. Если мы можем производить визуализацию на стороне клиента с помощью JavaScript, то почему бы нам не воспользоваться такой возможностью? Логика работы подобной связки проста: сервер генерирует данные, а клиент их визуализирует.
Разумеется, вы можете воспользоваться Flash, Silverlight или Java-апплетами, однако в этом обзоре я хотел бы вам показать библиотеки визуализации, написанные на чистом JavaScript.
+70
Hadoop Distributed File System
4 min
47KСовременные тенденции в развитии web-приложений и экспоненциальный рост информации, ими обрабатываемых, привел к потребности в появлении файловых систем ориентированных на обеспечение высокой производительности, масштабируемости, надежности и доступности. В стороне от данной проблемы не могли остаться такие гиганты поисковой индустрии, как Google и Yahoo.
Специфика приложений и вычислительной инфраструктуры Google, построенной на огромном количестве недорогих серверов, с присущими им постоянными отказами, привело к разработке собственной закрытой распределенной файловой системы Google File System (GFS). Данная система нацелена на автоматическое восстановление после сбоев, высокую отказоустойчивость, высокую пропускную способность при доступе к данным в потоковом режиме. Система предназначена для работы с большими объемами данных, подразумевающих большие размеры хранимых файлов, поэтому GFS оптимизирована для соответствующих операций. В частности, в целях упрощения реализации и повышения эффективности GFS не реализует стандартный POSIX-интерфейс.
Ответом GFS стал open source проект Hadoop, с его Hadoop Distributed File System.
Специфика приложений и вычислительной инфраструктуры Google, построенной на огромном количестве недорогих серверов, с присущими им постоянными отказами, привело к разработке собственной закрытой распределенной файловой системы Google File System (GFS). Данная система нацелена на автоматическое восстановление после сбоев, высокую отказоустойчивость, высокую пропускную способность при доступе к данным в потоковом режиме. Система предназначена для работы с большими объемами данных, подразумевающих большие размеры хранимых файлов, поэтому GFS оптимизирована для соответствующих операций. В частности, в целях упрощения реализации и повышения эффективности GFS не реализует стандартный POSIX-интерфейс.
Ответом GFS стал open source проект Hadoop, с его Hadoop Distributed File System.
+45
Information
- Rating
- Does not participate
- Location
- Киев, Киевская обл., Украина
- Date of birth
- Registered
- Activity