Pull to refresh
3
0
Дмитрий @dsv

User

Send message

Первый высокоуровневый язык программирования для квантовых компьютеров

Reading time2 min
Views78K
Хотя квантовые компьютеры существуют пока только в теории, но это не мешает делать обоснованные предположения об их будущей архитектуре и, что более важно, об интерфейсе взаимодействия с ними. Таким образом, уже сейчас есть возможность проектировать программные симуляторы квантовых компьютеров — и писать софт.

Группа американских учёных, получив финансирование от исследовательского центра Национальной разведки США (IARPA) разработала высокоуровневый язык программирования Quipper. Он создан на основе Haskell и лучше подходит для реализации квантовых алгоритмов, чем QCL (основан на C).

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

Вероятностные модели: искусство расставлять скобки

Reading time5 min
Views26K
После большого перерыва продолжаем цикл о графических вероятностных моделях (часть 1, часть 2). Сегодня мы наконец-то от постановок задач перейдём к алгоритмам; поговорим мы о самом простом, но часто полезном алгоритме вывода на фактор-графах – алгоритме передачи сообщений. Или, как его ещё можно назвать, алгоритме правильной расстановки скобок.


by sergey-lesiuk
Читать дальше →

Обучение программированию на Java

Reading time8 min
Views119K

Я собираюсь переучить на Java-программистов миллион человек.
Я собрал команду и сделал обучающий сервис, которым могу гордиться.
Рад сообщить, что теперь стать программистом легко, независимо от образования и опыта.

Но обо всем по порядку, много картинок

Архив интересного кода

Reading time1 min
Views54K
Преподаватель из Стэнфордского университета Кит Шварц (Keith Schwarz) уже несколько лет пополняет свой архив интересного кода — образцы самых лучших алгоритмов и структур данных, когда-либо изобретённых человечеством (Шварц весьма амбициозно оценивает свою коллекцию).

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

Кит Шварц дает разрешение использовать свой код всем желающим без всяких ограничений.
Читать дальше →

N+1 полезная книга для бизнеса: часть 3

Reading time6 min
Views97K


Привет!
Прошлые два обзора полезных книг за 2010 и 2011 год собрали просто адовое количество закладок, поэтому я продолжу. Прошел ещё год, ещё около 250 прочитанных книг – и вот самые интересные под катом.

Кто сказал, что слоны не умеют танцевать? Возрождение корпорации IBM: взгляд изнутри (Герстнер Луис)


Отличная книга про то, как удалось восстановить IBM. То, что со стороны выглядело как бессистемное перемещение активов и последовательность приказов без особого смысла, через несколько лет начало складываться в единую систему.

Догнать зайца (Стивен Спир)


Отличная книга про дебаг производственных процессов. Одна из основных вещей – то, что все серьёзные проблемы возникают из-за сочетания некритичных багов. Есть примеры из американской ядерной программы, NASA и т.п. Я предлагаю прямо сейчас пойти и прочитать описание железнодорожного крушения на Каменской: один не отчитался, второй не проверил тормоза, третий зажал тангенту, четвёртый сорвал стоп-кран. Результат — катастрофа.
Читать дальше →

Управление миграциями БД с Liquibase

Reading time6 min
Views146K
Не так давно мы начали внедрять Liquibase в качестве инструмента миграций схемы данных в большинстве наших проектов, новых и уже существующих. Система миграций схемы базы данных Liquibase хороша тем, что позволяет использовать системы контроля версий, VCS, (например, Git) для управления ревизиями базы данных приложения. Говоря более точно, VCS содержит описание изменений, необходимые для миграции схемы базы данных из одной ревизии в другую.

Хотя миграция схемы базы данных кажется довольно простой задачей изначально, задача становится сложнее после того, как появляется желание откатывать изменения схемы без ее создания заново.
Кроме схемы и операций DDL, Liquibase позволяет мигрировать данные приложения, с поддержкой наката изменений данных и их отката.
Читать дальше →

Принцип YAGNI в управлении проектами

Reading time8 min
Views22K
Наша компания занимается разработкой web-приложений на заказ. Не сайтов-визиток, а именно приложений. Чаще всего — для внутрикорпоративного использования.

Один из острейших вопросов заказной разработки — правильная оценка сроков и бюджета проекта, чтобы и работа была выполнена, и заказчик доволен, и прибыль была адекватной. В течение 3-х лет мы перепробовали разные способы работы и подходы к решению проблемы сроков и бюджета. Перечитали кучу книг, побывали на десятках конференций, вебинарах и т.д. Под катом описание решения, которое мы сейчас нашли для нанесения максимальной пользы заказчику за интересный для нас бюджет.
Читать дальше →

Чеклист вопросов к проекту: старт, реализация, финал — и 10 советов «в полёт»

Reading time4 min
Views51K

Проверьте свой проект: вы летите или думаете, что летите?

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

Контрольные вопросы на старте проекта:


  1. Что конкретно нужно сделать на текущем этапе? В целом? Есть ли чётко определённые цели каждого этапа? Как вы определите, что цели достигнуты? Соответствует ли текущий статус заявленным планам и целям или их необходимо корректировать?
  2. Реалистичны ли эти цели?
  3. Что случится, если цели не будут достигнуты в срок? Каков план действий?
  4. Насколько этот проект значим? Например, зависит ли от него место вашей компании на рынке?
  5. Какую выгоду вам, обществу и инвесторам принесёт проект?
  6. Достаточно ли хорошо спланирован проект? Все ли в вашей команде понимают пункты плана одинаково?
  7. Нужны ли внешние эксперты, например, юристы?
  8. Есть ли у команды опыт работы вместе? Кто будет координировать команду? Важно ли для проекта работать именно вместе — или возможен труд одиночек? Отвечает ли каждый член команды за работу всех остальных?
  9. Можно ли сократить размер команды? Если нет, то почему? Если да, то почему это не сделано?
  10. Как вы будете компенсировать форс-мажоры с персоналом, например, что случится, если ваш ведущий разработчик сломает руку?
Читать дальше →

Выложены видео докладов с последней конференции Яндекса посвященной управлению проектами

Reading time1 min
Views19K
В феврале в Санкт-Петербурге прошла вторая конференция для менеджеров проектов и руководителей групп – «План Б».

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

events.yandex.ru/events/planb/spb-feb-2013/talks — тут выложены видео всех докладов.

Наиболее интересными мне показались Неурядицы при создании сложных проектов/сервисов, Ошибки в стартапах, 10 способов «налажать» во фрилансе.

Оценка сложности алгоритмов

Reading time4 min
Views86K

Введение


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

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

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

Подробности

Как создавалось новое «Образование»

Reading time4 min
Views18K
На этой неделе мы перезапустили проект «Образование». Если в прежней версии почти все было платным, а курсы публиковались только через менеджера (что можно понять, тот сайт создавался шесть лет назад), то в новой версии пользователи могут регистрироваться и публиковать курсы самостоятельно и бесплатно. В проекте поменялся не только подход к бизнесу, но и полностью обновился дизайн с платформой. В общем, по сути, мы сделали новый проект с прежним названием.



Читать дальше →

Дон Джонс. «Создание унифицированной системы IT-мониторинга в вашем окружении» Глава1.Управление вашим IT окружением: четыре вещи, которые вы делаете неправильно

Reading time21 min
Views42K

От переводчика

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

Начав выкладывать на хабре некоторые свои статьи и переводы, касающиеся тематики мониторинга ИТ-инфраструктуры, мне опять пришлось столкнуться с очень узким и техническим пониманием этой темы, которое у меня уже когда-то было и поэтому у меня однажды возникла идея изложить это системно. Я даже начал, не торопясь, писать статью на эту тему, но интуитивно понятные вещи не очень хорошо ложились на бумагу – за деревьями не получалось леса. Конечно, у нас у всех есть Google и возможность подсмотреть что пишут другие авторы, но не тут-то было. Бесчисленные статьи и заметки в блогах были посвящены техническим аспектам взгромождения очередной системы мониторинга на очередную версию операционной системы и связанное с этим героическое преодоление трудностей. Cтатей по методологии мониторинга, принципами выбора метрик, правильного построения процесса и увязывания его с бизнесом было очень мало и они также описывали некоторые частные случаи применения мониторинга для решения той или иной проблемы и не более того. А потом мне случайно попалась в руки совсем небольшая книга Дона Джонса «Создание унифицированной системы ИТ-мониторинга в вашем окружении (ENG)».
Читать дальше →

Почему стоит изучить Clojure?

Reading time17 min
Views150K

Что такое хороший язык программирования? Какими качествами и характеристиками он должен обладать? Ответ дать сложно. Вот одно из возможных определений: хороший ЯП должен хорошо решать возложенные на него задачи. Ведь ЯП — лишь инструмент в руках программиста. А инструмент обязан помогать нам в работе. В конце концов, это же и есть причина его создания. Разные ЯП стараются решать разные проблемы (с переменным успехом). Цель, которая ставилась при проектировании Clojure — сделать написанные нами программы простыми. И, как следствие, ускорить их создание, тестирование. А главное, уменьшить время на их понимание, изменение и сопровождение.
Читать дальше →

Безопасность приложения: это почти просто

Reading time18 min
Views39K
simple science

— Дай мне справку, что моя программа безопасна.

— Нет проблем! А что ты для этого делал?

— Э… Ну… Это… Ничего…

— А почему ты тогда думаешь, что она безопасна?

— Ну, ты проверь!

— Нет проблем! Все удовольствие будет стоить X0000 долларов.

— ?!

О статье


В этой статье я рассказываю о некоторых практиках создания безопасного программного обеспечения.

Первая ее часть посвящена безопасному программированию.

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

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

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

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

Внимание! Статья большая и подразумевает внимательное прочтение.

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

Из истории одного стартапа

Reading time4 min
Views67K
Волею судеб, запуская очередной проект, я столкнулся с достаточно интересным фактом.

Многие мои знакомые так или иначе пытаются делать проекты, получается у немногих.

Я хочу рассказать на небольших примерах о том, что нужно делать в проекте, а на что можно забить, даже если это противоречит вашим интуитивным устремлениями.
Читать дальше →

Oracle ADF. Business Components

Reading time10 min
Views10K
Доброе время суток хабравчане. Моя предыдущая статья была небольшим интро в ADF. И так как по результатам опроса я вижу, что тема оказалась интересна, то я продолжаю писать об ADF.

Теперь после небольшого рассказа о данном фреймворке, можно «ринуться в бой» и рассмотреть фичи ADF более конкретно. Данная статья будет об ADF Business Components. О том как работать с ними декларативно и программно.
Читать дальше →

Классный оконный менеджер — Awesome WM

Reading time4 min
Views168K
imageЗдравствуйте! Прочитав недавно статью про оконные менеджеры в Linux, мне захотелось рассказать всем о менеджере, который был там упомянут — «awesome».
Это тайлинговый windows manager для unix (linux, freebsd, openbsd, netbsd).
Читать дальше →

Кеширование данных на SSD с помощью EnhanceIO

Reading time6 min
Views42K
В последнее время громадную популярность завоевали т.н. твердотельные накопители (Solid State Drives, SSD). Для простого пользователя они представляют особый интерес тем, что позволяют значительно расширить «бутылочное горлышко» производительности системы, которая упирается в быстродействие жёстких дисков. SSD потребительского класса по скорости чтения/записи превосходят жёсткие диски в несколько раз, а в некоторых задачах — даже на порядок.

Да, нынешние SSD уже готовы заменить жёсткие диски на десктопах и в ноутбуках в полной мере, но не для всех пользователей это приемлемо, и причин этому несколько. Во-первых, вызывает вопросы та самая надёжность. Тут обычно спасают бекапы, главное — вовремя их делать. Вторая причина связана с конфиденциальностью. Если на HDD использование LUKS не вызывает вопросов, то на SSD включение TRIM понижает защищённость информации. Без TRIM же есть шансы просадить производительность дисковых операций.

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

Для операционной системы Linux представлено несколько технологий кеширования данных на SSD — bcache, EnhanceIO, dm-cache и т.п. Использование их позволяет ощутить прирост быстродействия дисковых операций, при этом надёжность функционирования системы хранения данных останется на прежнем уровне.

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

Читать дальше →

Получение серификата Oracle Certified Java Professional Programmer и о сертификации в целом

Reading time5 min
Views117K
Добрый день жители хабра и остального мира. Эта статья является продолжением первого поста о сдаче экзамена Java Progammer I. Часть информации будет продублирована тут. Сегодня я хотел бы затронуть такие вопросы: image
  • зачем нужна сертификация;
  • какие виды сертификатов может получить инженер от Oracle;
  • что нужно знать или выучить, чтобы успешно сдать экзамены по Java Programmer I/II.

Читать дальше →

Миниатюрные платы Odroid U2 и Odroid X2

Reading time3 min
Views65K
Не так давно (~13.02.2012) начались поставки миниатюрных плат Odroid U2 и X2, по размеру близких к Raspberry Pi, но оснащённых начинкой, позволяющей использовать их в роли обычного компьютера. Не долго думая я заказал себе 2 платы: Odroid U2 и Odroid X2.

Небольшой обзор плат под катом.
Читать дальше →

Information

Rating
Does not participate
Location
Барнаул, Алтайский край, Россия
Date of birth
Registered
Activity