Как стать автором
Обновить
-6
0
Артур Терегулов @Shablonarium

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

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

Персистентная оперативная память

Время на прочтение5 мин
Количество просмотров27K
Сегодня — рассказ про одну из ключевых концепций ОС Фантом. Впрочем, сама концепция, конечно, существовала и до Фантома — фактически, у Танненбаума в конце книги, там, где он позволяет себе фантазировать, просматриваются очертания почти всех особенностей Фантома, так что, в целом, подход довольно очевиден для тех, кто хотя бы задумывается о будущем систем вообще.

Персистентная оперативка — очень простая и очень непростая вещь.

В целом, всё просто: представьте себе, что содержимое оперативной памяти не пропадает. Никогда. Например, при выключении компьютера. Или, например, при… исчезновении компьютера. «И души умерших программ носятся над водою».

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

Можно, потому что мы говорим не о том, чтобы заперсистить, сохранить всё состояние компьютера, а только его оперативную память. Но тогда в этом нет пользы, скажет внимательный читатель — уже хотя бы регистры надо бы сохранить? Иначе восстановление только памяти не позволит программе работать как если бы ничего не происходило.

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

Это недостижимо, если требование доводить до абсолюта. Состояние хардвера сохранить и полностью восстановить нельзя. Но и не надо. Программе не нужна видеокарта, ей нужен тот же API и сохранённая картинка на экране, а это — можно.
Читать дальше →
Всего голосов 37: ↑35 и ↓2+33
Комментарии68

Стандарт ECMA-262 (JavaScript) в картинках, часть 1

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


Про устройство JavaScript написано много статей. В первую очередь, это "JavaScript. Ядро." Дмитрия Сошникова, перевод статьи Ричарда Корнфорда и поста Дмитрия Франка. Но для того чтобы хорошо разобраться в какой-либо технологии лучше обратиться к первоисточникам. В данном случае к стандарту ECMA-262 ECMAScript Language Specification. Я рассматриваю этот пост как облегченный способ начать изучение стандарта. Рекомендую переходить по ссылкам, вчитываться в текст спецификации и составлять собственные схемы.
Читать дальше →
Всего голосов 16: ↑12 и ↓4+8
Комментарии1

Три основных браузера добавили поддержку низкоуровневого бинарного формата WebAssembly

Время на прочтение2 мин
Количество просмотров37K
Google, Microsoft и Mozilla на этой неделе синхронно выпустили экспериментальные билды браузеров с поддержкой WebAssembly (wasm) — эффективного низкоуровневого языка программирования, выполняющегося в браузере с производительностью гораздо выше, чем у самых современных и скоростных компиляторов JavaScript.

Разработчик из Mozilla Люк Вагнер рассказал на Mozilla Hacks о преимуществах WebAssembly, а также сообщил о портировании на WebAssembly научно-фантастического шутера Angry Bots. Демка запускается в браузерах с поддержкой WebAssembly — это последние версии Chrome Canary, Firefox Nightly и Microsoft Edge. Скоро к ним присоединится Safari на WebKit.
Читать дальше →
Всего голосов 43: ↑39 и ↓4+35
Комментарии31

Tree — убийца JSON, XML, YAML и иже с ними

Время на прочтение11 мин
Количество просмотров172K
Здравствуйте, меня зовут Дмитрий Карловский и я… много думал. Думал я о том, что не так с XML и почему его в последнее время променяли, на бестолковый JSON. Результатом этих измышлений стал новый стандарт формат данных, который вобрал в себя гибкость XML, простоту JSON и наглядность YAML.

image Tree — двумерный бинарно-безопасный формат представления структурированных данных. Легко читаемый как человеком так и компьютером. Простой, компактный, быстрый, выразительный и расширяемый. Сравнивая его с другими популярными форматами, можно составить следующую сравнительную таблицу:
Больше — лучше JSON XML YAML INI Tree
Человекопонятность 3 1 4 5 5
Удобство редактирования 3 1 4 5 5
Произвольная иерархия 3 3 3 1 5
Простота реализации 3 2 1 5 5
Скорость парсинга/сериализации 3 1 1 5 5
Размер в сериализованном виде 3 1 4 5 5
Поддержка поточной обработки 0 0 5 5 5
Бинарная безопасность 3 0 0 0 5
Распространённость 5 5 3 3 0
Поддержка редакторами 5 5 3 5 1
Поддержка языками программирования 5 5 3 5 1
Читать дальше →
Всего голосов 275: ↑168 и ↓107+61
Комментарии629

Идеальное собеседование айтишника

Время на прочтение6 мин
Количество просмотров84K
– Папа, а идеальное собеседование существует?
– Нет, сынок, это фантастика.
(с)

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

Читать дальше →
Всего голосов 130: ↑102 и ↓28+74
Комментарии133

Entity Framework Code First на практике

Время на прочтение4 мин
Количество просмотров99K
Здравствуйте!

В этой публикации хочу поделиться личным опытом использования Entity Framework (EF) в реальном приложении и дать несколько полезных советов использования данного фреймворка.

Я занимаюсь разработкой enterprise приложений на платформе .NET больше 7 лет, за это время перепробовал несколько ORM библиотек, но сейчас для новых проектов использую Entity Framework Code First.
Читать дальше →
Всего голосов 24: ↑21 и ↓3+18
Комментарии22

TDD — «утка». Введение в Quack-Driven Development. Современная waterfowl-методология для программистов

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


Предлагаю к ознакомлению вольный перевод статьи Джейсона Хатчерса «TDD(1) is ‘canard. Tell it to the Duck» или дословно: «TDD — Утка. Скажи это утке». (2)

Автор критикует «ортодоксальный» TDD подход к разработке и предлагает альтернативный.

И, да, в заголовке статьи нет опечатки (3).

Читать дальше →
Всего голосов 32: ↑23 и ↓9+14
Комментарии21

Изучаем Three.js.Глава 2: Работа с основными компонентами, из которых состоитThree.js-сцена

Время на прочтение18 мин
Количество просмотров52K
Всем привет!
В предыдущей главе мы познакомились с основами бибилиотекиThree.js. Увидели несколько примеров и создали свою первую полноценную Three.js сцену. В этой главе мы немного глубже углубимся в эту библиотеку и попробуем более подробно объяснить основные компоненты, составляющие Three.js сцену. В этой главе вы узнаете о следующем:
  1. какие компоненты используются в Three.js сцене
  2. что можно делать с объектом THREE.Scene()
  3. какая разница между ортогональной и перспективной камерами

Начнем мы с того, что посмотрим, как же можно создать сцену и добавить на нее объекты.

Становится все интересней и интересней...
Всего голосов 26: ↑23 и ↓3+20
Комментарии9

Удачная модель ветвления для Git

Время на прочтение10 мин
Количество просмотров977K
Перевод статьи Vincent Driessen: A successful Git branching model

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



В качестве инструмента управления версиями всего исходного кода она использует Git.

Читать дальше →
Всего голосов 180: ↑171 и ↓9+162
Комментарии105

Бесплатный VPN от Amazon

Время на прочтение2 мин
Количество просмотров124K
Под хабракатом я расскажу вам, как при помощи нескольких простых действий получить себе практически бесплатный VPN в штатах:
Читать дальше →
Всего голосов 248: ↑239 и ↓9+230
Комментарии317

Вёрстка c «Ушами»

Время на прочтение2 мин
Количество просмотров9K
Очень часто фантазия человека, разрабатывающего макет сайта, не ограничивается шириной 1024px, при этом требуется, чтобы сайт выглядел достойно на всех разрешениях и соответствовал полёту мысли дизайнера.

Проблему можно представить графически так:
image

Задача вёрстки заключается в следующем:
  • — независимо от разрешения (размера она браузера), информативная часть сайта находилась посередине;
  • — справа и слева должны остаться графические блоки (уши), причём эти уши должны быть видны только при увеличенном размере экрана браузера, а при уменьшенном не уместившаяся часть должна прятаться (в идеале, чтобы ещё горизонтальной полосы прокрутки не было);;
  • — страница должна быть резиновой от 680px до 1000px.

Работает для FF3, FF4, IE8 и почти для Opera.
Читать дальше →
Всего голосов 113: ↑73.5 и ↓39.5+34
Комментарии80

Синхронизатор данных. Разработчику на заметку

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

Если вы решили написать собственный синхронизатор, то скорее всего столкнётесь с рядом вопросов. В этой статье мы поделимся опытом написания такого компонента и рассмотрим требования, предъявляемые к нему. В основу этих требований легли всевозможные пожелания, полученные нами от пользователей, и реальные сценарии использования синхронизатора событий планировщика XtraScheduler. Потому в качестве примеров кода будем приводить фрагменты кода от указанного продукта.
Читать дальше →
Всего голосов 37: ↑28 и ↓9+19
Комментарии7

Проблема с безопасностью при использовании аутентификации формами в ASP.NET

Время на прочтение2 мин
Количество просмотров1.9K
Сообщает Peter Vogel

Два исследователя безопасности, Тай Донг (Thai Duong) и Джулиано Риццо( Juliano Rizzo), обнаружили баг в используемом по умолчанию механизме шифрования, который задействован в защите куки, обычно применяемых для реализации аутентификации формами (Forms Authentication) в ASP.NET. С помощью разработанного исследователями инструмента (Padding Oracle Exploit Tool или POET), можно многократно модифицировать куки, зашифрованные с помощью механизма шифрования AES и, исследуя возвращаемые ошибки, вычислить машинный ключ (Machine Key), используемый для шифрования куки. По утверждениям исследователей, процесс надёжен на 100% и занимает от 30 до 50 минут для любого сайта.

Читать дальше →
Всего голосов 33: ↑24 и ↓9+15
Комментарии7

“Одинокий разработчик желает познакомиться”. cofounder.ru: дэйтинг-сервис для стартаперов

Время на прочтение3 мин
Количество просмотров2K
Допустим вам не повезло, вы не учитесь в нормальном вузе, у вас нет знакомых инвесторов, а большинство ваших друзей слишком заняты игрой в веселую ферму. А у вас есть идея проекта, вы хороший разработчик и вы хотите найти партнера или даже собрать команду. Вы можете пойти на free-lance.ru, где вы найдете много отличных профессионалов, которые готовы решить любые ваши задачи, но… конечно за деньги. Мало кто из обычных фрилансеров согласится работать за долю в бизнесе, бесплатно, без каких-либо гарантий на успех. Среди общего списка придется долго искать или создавать объявление и ждать пока кто-то вас найдет сам.

Что же вы будете делать? Все знают слово нетворкинг: вы общаетесь на тематических форумах, пишете на хабрахабр, заводите блог, приходите на встречи, конференции, знакомитесь с новыми людьми, ваш круг общения расширяется и вместе с ним увеличивается возможность выбирать. Чем больше у вас связей с людьми из вашей области, тем лучше. Например, в Штатах, проводятся конференции для стартаперов, билет на который может стоить от $2000 и выше, хотя ценность контента не особенно велика. Что ценно там — это возможность с кем-нибудь познакомиться. Петя вас знакомит с Васей, Вася с Федей, а с Федей вы однажды создаете компанию. Ну или просто пьете пиво по пятницам — это как повезет.
Читать дальше →
Всего голосов 116: ↑114 и ↓2+112
Комментарии99

Стартапы, эксперты, бизнес-ангелы и Startup Weekend (пояснение)

Время на прочтение2 мин
Количество просмотров4.1K
По мотивам моих недавних постов и рассказов в разных местах про стартапы, экспертов, бизнес-ангелов и Startup Weekend: я понял, что у части людей есть не полное понимание того, что мы делаем и кого ищем. Поэтому я решил пояснить:

1. Главстарт ищет новые идеи и проекты. У Главстарта нет своих проектов. Главстарт помогает проектам, сводя их с экспертами и инвесторами. Сайт Главстарта.

2. Эксперты – это профессиональные участники рынка, готовые серьезно помогать новым проектам: плотно работать с ними на наших мероприятих и после них. Цель эксперта – стать одним из участников проекта (например, получив долю в 5% за свою помощь и участие). Эксперт, вошедший в какой-либо проект, становится признанным ментором Главстарта, эксперт не оказавший помощь ни одному проекту выбывает из списка экспертов Главстарта.

3. Бизнес-ангелы – люди, у которых есть некоторое количество денег, которые они готовы вложить в проекты, находящиеся на самых ранних стадиях развития, например, сформировавшихся по результатам Startup Weekend, и, как правило, привлекших экспертов в работу над своими проектами. В этом случае эксперт выступает в качестве гаранта качества представляемого им проекта. В некоторых случаях бизнес-ангел и эксперт может быть одним и тем же человеком.

4. Startup Weekend – мероприятие, на которое приходят люди со своими идеями для того, чтобы найти эксперта и, может быть, и команду для работы над своим проектом. В течение трех дней они работают, после чего представляют свои проекты бизнес-ангелам.

5. Ближайший Уикенд пройдет 1-3 октября в Москве. Приглашаются проекты (регистрация на сайте Startup Weekend, эксперты (заявки отправляйте на expert@glavstart.ru) и ангелы (заявки отправляйте на angel@glavstart.ru).

С уважением,
Аркадий Морейнис
Всего голосов 39: ↑26 и ↓13+13
Комментарии16

«Оживление» пользовательского интерфейса

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

Приложение не отвечает?!


Многие из тех, кто программирует WPF-приложения, наверное тысячи раз писали конструкцию вида:
{Binding Items}

Если получение элементов коллекции Items выполняется в основном потоке приложения и занимает некоторое время — мы получаем «мертвый» пользовательский интерфейс. Приложение некоторое время не будет отрисовывать изменения состояния и реагировать на пользовательский ввод.
Читать дальше →
Всего голосов 104: ↑97 и ↓7+90
Комментарии10

Автоматизация сборки web-приложения на платформе .NET

Время на прочтение7 мин
Количество просмотров8.5K
NAnt logo
Добрый день!

Я попробовал описать здесь свой опыт автоматизации сборки приложений .NET (в основном, речь идет о web-приложениях).

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

Читать дальше →
Всего голосов 49: ↑39 и ↓10+29
Комментарии28

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность