Pull to refresh
11
0
Pavel Kovalenko @nitrocaster

Software Engineer

Send message

Банки vs Биржи: где выгоднее покупать валюту

Reading time6 min
Views104K
image

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

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

Git Workflow

Reading time6 min
Views120K

1 Вступление



В топике освещаются не столько подробности работы с git, сколько его отличия от схемы разработки других систем контроля версий, и общий подход (выработанный по большей части личным опытом и Git Community Book) к работе.


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

Использование Stream Out-стадии для отладки шейдеров в DirectX 10\11

Reading time5 min
Views6.1K

В начале марта я имел удовольствие посетить команду разработки Direct3D в главном офисе Microsoft в Редмонде. По ходу одной из дискуссий об отладке 3D приложений они посоветовали мне использовать новую возможность DirectX10\11 для отладки шейдеров.

Я использовал эту технику для отладки кода тесселяции под DirectX 11 (этот код приведён ниже), но и DirectX 10 обладает теми же возможностями и портирование будет достаточно тривиальным.

Что мы вообще пытаемся сделать?

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

Ускоряем Visual Studio, часть I. Unity Builds

Reading time4 min
Views19K
Это перевод статьи Oliver Reeve об одном из способов ускорения компиляции проекта. Автору удалось ускорить компиляцию с 55 до 6 минут. В своём проекте я получил прирост производительности около 22% (около минуты). Это не столь поразительно, как достижения автора, но всё же, умножив эту минуту на количество компиляций в день, количество разработчиков и длительность разработки проекта, я получил экономию, которая точно оправдывает затраты на чтение статьи и настройку проектов. Описано решение для Visual Studio и С++, но идея применима и к другим IDE, компиляторам и языкам программирования (не всем). В следующей статье я рассмотрел еще пару способов ускорения компиляции решения.
Читать дальше →

Ускоряем Visual Studio, часть II. Эксперименты с компиляцией

Reading time7 min
Views32K
Мой основной рабочий инструмент на протяжении вот уже 10 лет это Microsoft Visual Studio. Это прекрасная IDE (по крайней мере для С++ и С#), лучше которой для Desktop-разработки под Windows я не знаю. Тем не менее, общеизвестен один её недостаток — падение производительности на больших решениях. Я сейчас работаю над решением из 19-ти проектов (около 4к файлов, 350к строк кода). Компиляция и прочие издержки съедают изрядное количество времени. Именно поэтому я задался целью провести масштабное исследование путей повышения скорости работы Visual Studio, отделив мифы от реальности.

Сразу скажу, что в финале мне удалось добиться сокращения времени компиляции решения с 4:24 минут до менее чем одной минуты. Детали под катом.
Читать дальше →

Увидеть незримое

Reading time8 min
Views92K
Пару лет назад на Хабре проскакивало две статьи, в которых упоминался интересный алгоритм. Статьи, правда, были написаны нечитабильно. В стилистике «новости»(1, 2), но ссылка на сайт присутствовала, подробно можно было разобраться на месте (алгоритм за авторством MIT). А там была магия. Абсолютно волшебный алгоритм, позволяющий увидеть незримое. Оба автора на Хабре этого не заметили и сфокусировались на том, что алгоритм позволял увидеть пульс. Пропустив самое главное.



Алгоритм позволял усиливать движения, невидные глазу, показать вещи, которые никто никогда не видел живьём. Видео чуть выше – презентация c сайта MIT второй части алгоритма. Микросаккады, которые приведены начиная с 29ой секунды, раньше наблюдались только как отражения установленных на зрачках зеркалах. А тут они видны глазами.
Пару недель назад я опять натолкнулся на те статьи. Мне сразу стало любопытно: а что народ сделал за эти два года готового? Но… Пустота. Это определило развлечение на следующие полторы недели. Хочу сделать такой же алгоритм и разобраться, что с ним можно сделать и почему его до сих пор нет в каждом смартфоне, как минимум для измерения пульса.

В статье будет много матана, видео, картинок, немного кода и ответы на поставленные вопросы.
Читать дальше →

Всё, что я не понимал про устройство Firefly, было на арктической яхте

Reading time6 min
Views94K
Когда я смотрел сериал, то в упор не понимал, как можно спрятать контрабанду на таком маленьком судне. Когда мы начали грузить еду на арктическую яхту в реале, я как-то сразу быстро разобрался. И вообще потом всю дорогу меня не покидало чувство, что примерно как-то так должен быть устроен маленький космический корабль в будущем.


Двигатель внутреннего сгорания. Слева и справа за стенами – баки с соляром. Итого мы везём чуть более 4,5 тонн топлива при потреблении около 2,5 литров в час.


Панель управления питанием

Расскажу про немного инженерную часть и про быт. Не то чтобы это прямо хардкорный IT-топик, но, думаю, вам будет интересно.
Особенно, про возможность удалённо работать онлайн во время такого путешествия.
Осторожно, трафик.
Читать дальше →

Простая установка сервера GIT на Windows

Reading time6 min
Views179K
image

Предисловие или от куда взялась «бредовая» идея ставить Git на Windows

Я работаю в одной не очень большой IT-компании, которая продает свои и чужие программные решения, занимается проектами внедрения, оказывает клиентскую поддержку, проводит обучение и далее все такое в том же духе. До недавнего времени в моей маленькой команде разработки все было неплохо организовано и у нас даже был свой собственный достаточно мощный сервер. Но случилось непредвиденное и по воле злого рока один из серверов фирмы полетел, а руководство решило вместо него в стойку поставить наш сервер отдела разработки. Нам предложили «временно» переехать на любой из серверов общего назначения.

А теперь внимание! Только мы одни во всей фирме работаем на Линуксе, а все остальные сидят исключительно на Windows и сервера у нас тоже под управлением серверных редакций ОС от Билла Гейтса. И если перенос базы Redmine не вызывает особых вопросов, то задача поднять на сервере Windows сервер для Git меня сразу поставила в тупик. Но несколько часов потраченных на поиски дали мне простое работающее решение.

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

1000+ часов видео по Java на русском

Reading time7 min
Views1.3M
Добрый день.
Меня зовут Головач Иван, я руковожу небольшой образовательной компанией и преподаю сам:
  1. Java Core
  2. Junior Java Developer: Servlet API, JDBC, Maven, JUnit, Mockito, Log4J, основы Spring/SpringMVC, основы JPA/Hibernate, шаблоны/архитектуры MVC/IoC/DAO.
  3. Multicore programming in Java.


Также я веду курс «Scala for Java Developers» на платформе для онлайн-образования udemy.com (аналог Coursera/EdX).

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

(GolovachCourses.com)


Здесь собраны несколько вариантов записи моего курса Java Core.
Модуль #1 (Procedural Java):
Набор июль 2013: #1, #2, #3, #4
Набор апрель 2013: #1, #2, #3, #4
Набор февраль 2013: #1, #2, #3, #4
Набор январь 2013: #1, #2, #3, #4
Набор октябрь 2012: #1, #2, #3, #4.
Читать дальше →

Почему я сменил место работы

Reading time1 min
Views101K
На моем прошлом месте работы я перестал использовать наш продукт, потому что Linux перестал быть приоритетом. Называлась куча причин — малая доля пользователей, «только для гиков», «все журналисты используют маки» и прочее.

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

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

Более того, разработчиков, работающих на Linux более 15 лет начали заставлять использовать другие платформы для разработки. Не стоит и говорить о том, что они не могут их использовать столь же комфортно и продуктивно.

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

Учимся использовать Glade

Reading time3 min
Views44K
В прошлый раз я обещал, что напишу про программу Glade.

Glade — это приложение для визуального создания графических интерфейсов на GTK+. Оно имеет открытый исходный код и распространяется совершенно бесплатно.

Помните, как мы пытались нарисовать окошко через код? Прочитав этот топик вы сможете создавать хоть тысячи таких окошек просто перемещая виджеты из палитры.


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

Доступна превью новой версии Visual Studio, с Roslyn и C# 6

Reading time2 min
Views44K

Сегодня Microsoft выпустила превью новой версии Visual Studio «14» Community Technology Preview. Скорее всего, эта версия выйдет в 2015-м году и будет называться Visual Studio 2015. (Не стоит путать этот релиз с недавним релизом Visual Studio 2013 Update 3 Preview.)

Основным нововведением «14» стало повсеместное использование платформы Roslyn — высококачественного расширяемого компилятора C# и Visual Basic с открытым исходным кодом. В обновлениях для VS 2013 уже использовались компоненты из Roslyn, но теперь он проник повсюду.

Помимо Roslyn, улучшения затронули возможности рефакторинга, ASP.NET vNext, поддержку C++11/14, а также другие приятные мелочи.
Читать дальше →

Реверс-инжиниринг клиента Dropbox

Reading time3 min
Views37K
imageДо последнего времени существовали сомнения относительно возможности реверс-инжиниринга сильно обфусицированных приложений, написанных на Python. Недавний реверс-инжиниринг двумя программистами клиента Dropbox доказал, что это возможно.

В феврале этого года на Mobile World Congress, CEO Дрю Хьюстон радостно сообщал, что Dropbox, известный сервис для хранения данных, преодолел отметку в 100 миллионов пользователей, и эти 100 миллионов пользователей загружают более миллиона файлов на сервера Dropbox каждый день. Еще два года назад у Dropbox было всего 25 миллионов пользователей и гораздо меньше загрузок в день.

С какой целью я упомянул обо всем этом? Успех Dropbox наступил не без преодоления нескольких проблемных моментов, и похоже у команды сервиса теперь появится новая головная боль — и все из-за Dhiru Kholia и Przemysław Węgrzyn.
Читать дальше →

Noisli: онлайн-генератор фоновых шумов, помогающих сконцентрироваться

Reading time1 min
Views182K


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

Сайт Noisli содержит коллекцию фоновых шумов на любой вкус и возможность смешивать их в произвольной пропорции. Здесь есть и звуки природы — шум дождя, плеск воды, пение птиц, шуршание листьев, и звуки техногенного характера — стук колёс поезда, звук работающего вентилятора, и звуки многолюдного кафе. Есть и искусственные белый, розовый и коричневый шум. Коллекция звуков постоянно пополняется.
Читать дальше →

Сравнение юзабилити современных браузеров со старой Оперой

Reading time6 min
Views129K

Эта статья — немного воспоминаний о богатом функционале старой Оперы. Но в ней хочу собрать вещи, которые были уникальны для старой Оперы. До сих пор у меня установлена Opera 12, которую рука не поднимается удалить, хотя я и не пользуюсь уже ей.

Старая Опера была для меня почти эталоном браузера. В ней было реализовано столько прекрасных вещей, которых почему-то нет в современных браузерах, что порой диву даёшься — почему такие светлые идеи никто больше не реализовывает.

Чуть больше года назад компания Opera объявила, что они делают новый браузер на основе форка Chromium от Google (Blink).

Прошёл год, но от того User Experience, который был раньше, Опера ой как далеко, жалкий младший брат Chrome. Даже относительно молодой Яндекс.Браузер развивается куда стремительнее и имеет своё лицо. Я буду сравнивать старую Opera с Chrome, как представителем браузеров на WebKit и Blink, и Firefox. И прошу учесть, что это, всё-таки, моё личное мнение.

Осторожно, много картинок
Читать дальше →

Wireshark — приручение акулы

Reading time10 min
Views1.1M


Wireshark — это достаточно известный инструмент для захвата и анализа сетевого трафика, фактически стандарт как для образования, так и для траблшутинга.
Wireshark работает с подавляющим большинством известных протоколов, имеет понятный и логичный графический интерфейс на основе GTK+ и мощнейшую систему фильтров.
Кроссплатформенный, работает в таких ОС как Linux, Solaris, FreeBSD, NetBSD, OpenBSD, Mac OS X, и, естественно, Windows. Распространяется под лицензией GNU GPL v2. Доступен бесплатно на сайте wireshark.org.
Установка в системе Windows тривиальна — next, next, next.
Самая свежая на момент написания статьи версия – 1.10.3, она и будет участвовать в обзоре.

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

Начинаем плаванье


Для начала захвата достаточно выбрать свой сетевой интерфейс и нажать Start.
Читать дальше →

Распознавание номеров: от А до 9

Reading time9 min
Views171K
Уже пару раз на Хабре возникали дискуссии на тему того, как сейчас работает распознавание номеров. Но статьи, где были бы показаны разные подходы к распознаванию номеров, на Хабре пока не было. Так что здесь попробуем разобраться, как все это работает. А потом, если статья вызовет интерес, продолжим и выложим работающую модель, которую можно будет поисследовать.

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

Детали реализации стека — часть первая

Reading time3 min
Views28K
image
Какое-то время назад я писал о том, что «ссылки» — это не «адреса», когда речь идёт о C# и размещении его объектов в памяти. Хотя это действительно так, но это всего лишь деталь реализации, но не смысл «ссылки». Другая деталь реализации, которую часто путают с сутью — это то, что «память под значимые типы (value types) выделяется на стеке». Я часто это вижу, потому что именно так написано в нашей документации.

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

Мастер-класс по нутрям .Net Framework

Reading time3 min
Views20K
< Прежде всего хочу отметить что я имею ввиду под internals. В данном случае я имею ввиду именно внутренние структуры данных .Net Framework. Ведь, находясь под его опекой, что мы видим? Стройную архитектуру классов, строгую типизацию, настройки безопасности. И все вроде как автомагически работает и не надо ни о чем задумываться. И вроде как даже прекрасно. Но вы по сути, находитесь в Матрице. В Матрице, о законах которой вы знаете только понаслышке. Что GC работает именно так, вам сказали. Но Вы ведь не уверенны что это именно так?

Так вот если продолжать метафору, курс направлен на программный выход из границ CLR. Прослушав курс, проделав прямо на месте практические задания, вы научитесь выходить из .Net средствами .Net. Менять структуру типов .Net не прибегая к рефлексии. Вмешиваться в процесс многопоточности, и проделывать по-настоящему шаманские вещи.

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

DDoS любого сайта с использованием заметок Facebook

Reading time1 min
Views52K
Полтора месяца назад, chr13 обнаружил способ произвести DDoS любого сайта с помощью Google Spreadsheet, а теперь же он применил такой способ в Facebook Notes. И он сработал!

Способ эксплуатации совершенно такой же, как и в Google Spreadsheet:
  1. Сделайте список «уникальных» «картинок»
    <img src=http://targetname/file?r=1></img>
    <img src=http://targetname/file?r=2></img>
    ...
    <img src=http://targetname/file?r=1000></img>
  2. Создайте заметку через m.facebook.com. Сервис обрежет заметку после какой-то фиксированной длины
  3. Создайте несколько таких заметок под одним или несколькими пользователями. Каждая заметка будет делать 1000+ HTTP-запросов
  4. Откройте все заметки одновременно. Указанный сервер получит гору HTTP-трафика. Тысячи запросов уйдут на сервер в течение пары секунд.
Читать дальше →

Information

Rating
Does not participate
Location
Yerevan, Армения
Registered
Activity