Pull to refresh
11
0
Pavel Kovalenko @nitrocaster

Software Engineer

Send message

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

Reading time6 min
Views104K
image

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

На самом деле это не совсем верный подход, поскольку финансовые рынки в некоторых аспектах предоставляют большие возможности, чем могут предложить банки (в том числе в области сохранения финансов). Сегодня мы рассмотрим конкретный пример такой ситуации — покупку и продажу валюты.
Читать дальше →
Total votes 47: ↑37 and ↓10+27
Comments37

Git Workflow

Reading time6 min
Views119K

1 Вступление



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


Читать дальше →
Total votes 120: ↑116 and ↓4+112
Comments147

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

Reading time5 min
Views6K

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

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

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

Нам интересно получить результаты работы выполняемых на GPU шейдеров (вершинных, геометрических, тесселяции) для последующей обработки этих данных с помощью CPU. При этом мы хотим и видеть результаты просчёта графики на экране, и иметь все координаты в виде буферов и структур в оперативной памяти, откуда мы их уже сможем прочитать, записать в лог, использовать для дальнейших расчётов.
Читать дальше →
Total votes 27: ↑25 and ↓2+23
Comments0

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

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

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

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

Сразу скажу, что в финале мне удалось добиться сокращения времени компиляции решения с 4:24 минут до менее чем одной минуты. Детали под катом.
Читать дальше →
Total votes 71: ↑50 and ↓21+29
Comments39

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

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



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

В статье будет много матана, видео, картинок, немного кода и ответы на поставленные вопросы.
Читать дальше →
Total votes 185: ↑180 and ↓5+175
Comments44

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

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


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


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

Расскажу про немного инженерную часть и про быт. Не то чтобы это прямо хардкорный IT-топик, но, думаю, вам будет интересно.
Особенно, про возможность удалённо работать онлайн во время такого путешествия.
Осторожно, трафик.
Читать дальше →
Total votes 188: ↑169 and ↓19+150
Comments126

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

Reading time6 min
Views178K
image

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

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

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

Читать дальше →
Total votes 27: ↑18 and ↓9+9
Comments18

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.
Читать дальше →
Total votes 120: ↑111 and ↓9+102
Comments38

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

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

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

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

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

Многое еще можно сказать, но все это — история о предательстве. Компания предала не только лояльных пользователей их продукта, но и своих собственных разработчиков. Результат? Потеря мотивации и массовые увольнения. В том числе и мое.
Читать дальше →
Total votes 368: ↑257 and ↓111+146
Comments195

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

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

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

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


Читать дальше →
Total votes 39: ↑29 and ↓10+19
Comments5

Доступна превью новой версии 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, а также другие приятные мелочи.
Читать дальше →
Total votes 71: ↑65 and ↓6+59
Comments77

Реверс-инжиниринг клиента 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.
Читать дальше →
Total votes 80: ↑73 and ↓7+66
Comments18

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

Reading time1 min
Views182K


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

Сайт Noisli содержит коллекцию фоновых шумов на любой вкус и возможность смешивать их в произвольной пропорции. Здесь есть и звуки природы — шум дождя, плеск воды, пение птиц, шуршание листьев, и звуки техногенного характера — стук колёс поезда, звук работающего вентилятора, и звуки многолюдного кафе. Есть и искусственные белый, розовый и коричневый шум. Коллекция звуков постоянно пополняется.
Читать дальше →
Total votes 108: ↑103 and ↓5+98
Comments64

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

Reading time6 min
Views129K

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

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

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

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

Осторожно, много картинок
Читать дальше →
Total votes 265: ↑239 and ↓26+213
Comments410

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.
Читать дальше →
Total votes 207: ↑202 and ↓5+197
Comments60

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

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

image
Читать дальше →
Total votes 140: ↑137 and ↓3+134
Comments268

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

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

Практически каждая статья, которую я вижу, подробно описывает (часто неверно) что такое стек и что основное различие между значимыми и ссылочными типами — это то, что значимые типы располагаются на стеке. Я уверен Вы можете найти множество примеров таких статей в сети.
Читать дальше →
Total votes 40: ↑34 and ↓6+28
Comments24

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

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

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

Я очень надеюсь, что программа Вам очень понравится, т.к. по сути — это результат собственных исследований, и все что тут есть, нагуглить не получится.
Читать дальше →
Total votes 32: ↑28 and ↓4+24
Comments42

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-трафика. Тысячи запросов уйдут на сервер в течение пары секунд.
Читать дальше →
Total votes 106: ↑98 and ↓8+90
Comments37

Information

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