Search
Write a publication
Pull to refresh
3
0
Дмитрий Куликов @DmitryKulikov

User

Send message

Настраиваем Windows для программирования OpenGL

Reading time5 min
Views95K
Пост ориентирован на новичков. В нем не рассматривается настройка Visual Studio. Он научит вас настраивать некоторые текстовые редакторы на компиляцию OpenGL приложений, либо выполнять это из консоли вручную.

Недавно, наконец, вышло 8-е издание книги OpenGL programming guide, которую я ждал уже более чем 2 года. Чуть раньше я познакомился с замечательным текстовым редактором Sublime Text 2 и решил настроить его вместо установки тяжелой Visual Studio.

Итак, для начала нам нужен компилятор — я остановился на G++. Он является частью GCC, а его порт под Windows называется MinGW. С него и начнем:
Пошаговые инструкции

MongoDB: слишком много полей для индексации? Используйте общий индекс

Reading time6 min
Views30K

Суть проблемы


Бывают ситуации когда документы имеют много различных полей и необходимо иметь эффективные запросы по ним. Например есть документ описывающий человека:

{
    _id: 123,
    firstName: "John",
    lastName: "Smith",
    age: 25,
    height: 6.0,
    dob: Date,
    eyes: "blue",
    sign: "Capricorn",
    ...
}


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

Становление аналитика

Reading time12 min
Views293K
image

Эту статью я хочу посвятить временами нелегкой, но увлекательной профессии ИТ-аналитика. На Хабре не так много материалов по данной дисциплине. К примеру, по управлению проектами – на порядок больше. Но выложенные недавно две статьи (раз и два), похоже, вызвали интерес, посему я тоже хотел бы внести свой скромный вклад. Сам работаю более 8 лет в роли аналитика, так что постараюсь не потратить Ваше время зря.
Не стану пересказывать теорию (ее можно почерпнуть в замечательной книге Вигерса или в BABOK). Мне бы хотелось сосредоточиться на практической стороне вопроса – описать выжимку из «боевого» опыта, как своего, так и некоторых других людей, с которыми мне посчастливилось работать.
Подробности

uptodate.js — библиотека для автообновления элементов времени

Reading time1 min
Views18K
Как часто Вы используете конструкции вида «5 минут назад», «Полчаса назад» на вашем сайте? А что если пользователь открыл вкладку и забыл про нее на пару часов? «5 минут назад» явно теряет свою актуальность.
Именно для того чтобы исправить это досадное недоразумение служит uptodate.js

image

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

edn: extensible data notation

Reading time5 min
Views10K
В этой статье я хочу рассказать про edn. edn — формат данных, появившийся из языка clojure. Он похож на JSON, но предоставляет некоторые возможности, отсутствующие в JSON. Особенности edn описаны далее. Пример для затравки:

{:name "edn"
 :implementations #{"clojure" "java" "ruby" "python" "c" "javascript" "haskell" "erlang"}
 :related "clojure"
 :encoding :UTF-8}

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

Добавляем Web API для программы на C++ с помощью библиотеки POCO

Reading time4 min
Views27K
В жизни любой достаточно большой программы наступает момент, когда нужно вывести наружу какой-нибудь API — для плагинов, для интеграции с другими системами, для автоматизации и т.д. Для этого есть много разных технологий, но как-то так исторически сложилось, что сейчас принято делать API в виде REST-сервисов. В принципе, если не гнаться за экономией каждого байта и микросекунды, то в этом есть смысл: HTTP-запрос сделать легко из любого языка, это хорошо работает и локально, и по сети, не нужно сильно глубоко погружаться в недры сетевых протоколов.
Давайте посмотрим, как к уже существующей программе на C++ можно быстренько прикрутить Web API, используя для этого библиотеку POCO.
Читать дальше →

Открылся новый набор в Школу анализа данных Яндекса

Reading time3 min
Views41K
На днях мы открыли новый набор в Школу анализа данных. Чтобы стать её студентом, нужно ответить на вопросы в тесте, сдать экзамены и пройти собеседование. Занятия, как всегда, будут проходить в офисе Яндекса в Москве, а также в Екатеринбурге, Киеве и Минске. В Питере у ШАД есть отделение в Computer Science Center. Если вы живёте в других городах, то можете учиться у нас заочно: общаться с преподавателями по электронной почте и смотреть видеолекции. Обучение в Школе бесплатное.

Аудитории Школы анализа данных Яндекса

В ШАД преподают ведущие российские ученые — и те, кто живет в России, и те, кто работает за рубежом. Например, теорию машинного обучения ведёт Алексей Червоненкис, профессор Лондонского университета и один из создателей отечественной школы анализа данных. Автор курса по анализу данных и научный руководитель ШАД — профессор Rutgers University Илья Мучник, который когда-то был научным руководителем Аркадия Воложа.
Подробнее о том, как и чему учат в ШАД, читайте под катом

Секционирование и «живые снимки» данных в PostgreSQL

Reading time19 min
Views9.4K
Хотя тема секционирования уже поднималась ранее, я хочу к ней вернуться, чтобы рассказать о своем опыте решения этой задачи, возникшей в связи с необходимостью аналитической обработкой больших объемов данных. Помимо секционирования, я рассмотрю предельно упрощенную реализацию «снимков» агрегированных запросов, автоматически обновляемых при изменении исходных данных..
Читать дальше →

Пять полезных советов при составлении коммит сообщения

Reading time2 min
Views12K
image
Итак, Вы готовы сделать свой великолепный коммит, который, безусловно, делает код чуточку лучше, либо фиксить какой-то баг, а может, Вы и вовсе решили поменять переходы строк на Windows/Unix-Style? Естественно, Ваш код безупречен и достоин всевозможных похвал! Браво! Достойно ли Ваше сообщение Ваших трудов? Смогут ли потомки разобрать, что Вы сделали через месяц? Через год? Десять лет?

Прошу под кат!

«Интернет по-русски» (Компьютерра, март 1997)

Reading time34 min
Views32K
Всю первую половину 1990-х Интернет в России оставался забавой для гиков: «чтобы запустить используемые протоколы, одного высшего образования мало». Позже, когда Интернет уже стал доступнее и популярнее, его поджидала другая напасть — чехарда с поддержкой кириллицы. Различных кодировок было достаточно, чтобы потеряться.

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

(Пользуясь поводом, упомяну и свой двухгодовалой давности топик о Кате Лажинцевой, официальном создателе CP-1251.)

Олег Татарников

Крестоносцы

Ты так гонишься за тенью, что теряешь наличие.
Из книги Иова


Концепции Интернета, первоначально разработанные в унитарной, централизованной армейской системе министерства обороны США, быстро вышли из «диктаторских пут» и воспринимаются сегодня как идеи всемирной общедоступной информационной магистрали. Любые попытки ограничения доступа, цензуры и внешнего воздействия на Сеть однозначно воспринимаются мировым сообществом в штыки. За широким внедрением Интернета в нашу жизнь не стоит никакая организация: это самоорганизующаяся система, и главный ее двигатель — все человечество. В этом основное отличие всемирной Сети от коммерческих сетей, в этом ее привлекательность для миллионов и ее сила. В таком свете неприглядно выглядят сторонники массовой «коизации» информационного обмена в России, стремящиеся загнать всех российских пользователей в прокрустово ложе единой кодировки. Тем более что носители этой идеологии составляют абсолютное меньшинство российских пользователей Интернета, пусть даже и самое активное. Причем благие намерения, которыми они при этом руководствуются, никак не служат оправданием для насильственного ограничения свобод и причинения дополнительных неудобств огромной армии пользователей, число которых продолжает стремительно расти. Ибо известно, куда таковыми намерениями обычно мостятся дороги.

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

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

Школьник об олимпиадном программировании

Reading time11 min
Views141K

Здравствуй, Хабр!
Пишет тебе девятиклассник, призер регионального этапа всероссийской олимпиады по информатике. В последнее время я стал замечать, что у хабражителей повысился интерес к олимпиадам по программированию. Как их активный участник я постараюсь ответить на все вопросы, рассказать о своем пути, привести примеры реальных, запомнившихся мне задач.
Читать дальше →

Как стать настоящим аналитиком? Часть 2. Выявляем требования

Reading time4 min
Views80K
Доброе время суток, дорогие хабравчане! Данная статья является продолжением топика, и в ней хотелось бы начать обсуждение стадии создания требований. Если вы успешно справитесь с этой стадией процесса, вы получите отличный продукт, счастливых заказчиков и удовлетворенных разработчиков. В противном случае вам грозит непонимание, разочарование и разногласия.

Стадию создания или разработки требований условно можно разделить на 4 этапа.
Читать дальше →

Основной цикл в Javascript

Reading time9 min
Views78K


Все мы слышали про ajax и node.js. Они прочно обосновались уже не просто в словарном запасе, но и в наборе инструментов веб-разработчика. Ajax — асинхронное подтягивание данных с сервера на страницу, node — фреймворк с асинхронным IO. Но как в таком однопоточном языке, как Javascript, реализуется та самая асинхронность?

Вы, наверное, уже догадались из заголовка, речь пойдет об основном цикле («main loop»).
Читать дальше →

Готовим адаптивное видео для HTTP Live Streaming

Reading time7 min
Views40K
Почти все пользуются, и, наверняка, многие слышали про динамическую адаптацию видеопотока под пропускную способность сети. В последнее время это уже практически обязательное требование к online-видео в интернете. Преимущества адаптивного видеопотока очевидны: если сеть временами «проседает», видео продолжает отображаться в плеере без видимых подкачек и буферизации; качество картинки автоматически выбирается адекватным пропускной способности сети.

Несмотря на то, что динамическая адаптация видеопотока уже сравнительно «старая» технология, существует множество мелких подробностей о том, как добиться лучшего результата. Чтобы и на серверной стороне попроще и подешевле, и чтобы такое видео было совместимо с как можно большим количеством клиентов (Web, iOS, Android, ну и не забываем про Smart TV).

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

Состоялся 8-ой Форум для ИТ-директоров «Мне бы в небо»

Reading time3 min
Views3.8K
Как вы знаете, наша компания 2 раза в год проводит большой Форум для руководителей ИТ-служб российских компаний. На нем мы представляем все наши новинки, рассказываем о преимуществах и интересных особенностях каждого решения или услуги. 8-ой Форум DEPO Computers стал рекордным по количеству представленных решений и услуг: от отдельных компонентов ИТ-инфраструктуры и специализированных решений до облачных сервисов, представляющих собой готовую бизнес-платформу.

Главной темой мероприятия стала презентация облачных сервисов DEPO Computers. В рамках этого направления мы представили корпоративную облачную платформу DEPO BPaaS – уникальный подход к облачным сервисам через решение бизнес-задач.

Мы подготовили для вас подробный фотоотчет о прошедшем Форуме «Мне бы в небо».
Читать дальше →

Как выглядит DDoS-атака

Reading time1 min
Views116K
Почти каждый представляет себе, что такое DDoS-атака. Но лучше один раз увидеть, чем сто раз услышать. Сайт VideoLAN на днях подвергся довольно необычной DDoS-атаке. Хотя интенсивность запросов была не очень велика — от 400 до 1600 запросов в секунду, ботнету удалось создать очень большую нагрузку на сервер, так как компьютеры-зомби не просто заходили на одну из страниц сайта, а скачивали дистрибутив VLC-плеера весом в 22 мегабайта. Пиковая нагрузка на серверы доходила до 292 гигабит в секунду. С помощью logstalgia — инструмента, который превращает логи сервера в наглядную анимацию — администраторы сайта сделали и опубликовали на Youtube визуализацию, благодаря которой можно увидеть, как выглядит DDoS-атака:



Команда sponge: «губка» для стандартного ввода

Reading time3 min
Views13K
Все мы знаем, что при выполнении команд в шелле мы можем перенаправлять стандартный вывод на стандартный ввод других команд, а также записывать его в файл.

Это достаточно детально описано в главе I/O Redirection в «Продвинутом руководстве по программированию на Bash» (Advanced Bash-Scripting Guide).

В частности, иногда бывает так, что вам нужно прочитать какой-то файл, как-то его обработать (например, выбрать оттуда только те строки, которые подходят под некое регулярное выражение), и затем записать результат в тот же самый файл. Допустим, ваш файл называется «messages.log», и вы хотите оставить в нём только те строки, которые начинаются со слова «Success», двоеточия и пробела (а все остальные строки убрать).

Можно предположить, что для этого подойдёт такая команда:

grep "^Success:\s" messages.log > messages.log

Но это предположение окажется неправильным — при выполнении этой строчки файл messages.log будет открыт на запись и очищен ещё до того, как grep начнёт его просматривать.
Читать дальше →

Verlet.js — физический движок на основе метода Верле

Reading time1 min
Views39K
Метод численного интегрирования Верле издавна использовался для вычисления траекторий частиц. Сам метод был впервые использован ещё в 1791 году французским астрономом Жаном-Батистом-Жозефом Деламбром. В 1907 норвежский математик и физик Карл Штёрмер использовал его для моделирования движения частиц в магнитном поле, поэтому иногда этот метод называют методом Штёрмера. Современное название этот алгоритм получил от имени французского физика Лу Верле, который в 1967 году использовал его в моделировании молекулярной динамики. В последнее время метод Верле применяется и в разработке компьютерных игр.
Читать дальше →

Цикл зрелости технологий на 2013 год по версии Gartner

Reading time2 min
Views23K
Исследовательская компания Gartner хорошо известна на рынке аналитики информационных технологий. Я бы даже сказал — является одним из лидеров этого рынка. Ежегодно она выкладывают крайне интересный график, именуемый «Цикл зрелости технологий» (в англ. Hype cycle, или дословно – «цикл шумихи»). На этом графике, в хронологическом порядке, разложены технологии, которые либо уже готовы к применению, либо только-только вступают в стадию исследований.

Вот так выглядит график на 2013 год (выполнен по состоянию на июль 2012 года):


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

Хостинг картинок за полчаса

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

imageНасколько просто сейчас сделать такой сервис, как хостинг изображений? В принципе, его и раньше было несложно сделать. Но прогресс не стоит на месте, и за то же самое время теперь можно учесть больше нюансов. Я уже рассказывал о проекте Uploadcare. Это сервис, позволяющий облегчить работу с файлами: загрузку, хранение, обработку и раздачу конечному пользователю. Его и будем использовать в качестве основного блока.

Пример будет написан на Питоне. Во-первых, потому что Питон я знаю лучше всего, во-вторых библиотека pyuploadcare обновляется в первую очередь. На самом деле, для Uploadcare есть библиотеки под разные языки, и все они в open source. Если в нужном вам модуле отсутствует какая-то функциональность, можно дождаться, когда она появится, или дописать самому.
Читать дальше →

Information

Rating
Does not participate
Location
Саров (Нижегородская обл.), Нижегородская обл., Россия
Date of birth
Registered
Activity