Pull to refresh
15
0
vuspenskiy @vuspenskiy

User

Send message

Работа в корпорации

Reading time2 min
Views642
Хотелось бы поговорить с хабросообществом на тему того, кто и как, проводит большую часть своей жизни, а именно рабочее время. Было бы интересно узнать, это у всех вокруг что-то не то, или в моей нейронной сетке контроллеры глючат. В основном все работающее население можно поделить на две основные категории. Это работающие в небольших компаниях, и работающих в корпорациях.

Я - предатель малого бизнеса, променял его на теплое, уютное место....
Total votes 16: ↑9 and ↓7+2
Comments16

Аспекты структурирования

Reading time4 min
Views607
Ассоциативные связи по словам структурирование, упорядочивание, систематизация, классификация, кластеризация уводят, во-первых, в область, связанную с контентом, понятиями, знаниями и т. п. Само осмысление содержит этот аспект структурирования — мы понимаем предмет, если «разложили его по полочкам», установили необходимые связи и взаимоотношения. В определенном смысле это «пространственная» деятельность, т.к. происходит в неком пространстве, будь оно двумерное на бумаге, где рисуются узлы-объекты-понятия и связи между ними, абстрактное математическое из теории графов, или же всё происходит в человеческой голове, в «пространстве мышления». Второе направление «организационное», оно больше относится к согласованию и регламентации различных связанных процессов и ассоциируется с временем, динамикой. Например, согласование человеческой активности в социуме. Или последовательности выполнения операций в компьютерном процессоре. В этом смысле программирование (по крайней мере наиболее распространенные его парадигмы) представляет собой «временное» структурирование. С этой точки зрения почти любая человеческая активность относится к пространственно-временному структурированию.
Читать дальше →
Total votes 4: ↑4 and ↓0+4
Comments6

Визуальные спецификации

Reading time15 min
Views67K
Спецификации — это скука смертная. Пожалуй, это самая скучная часть работы управляющего продуктом. Возможно, именно поэтому большинство спецификаций ужасны и являются главным источником задержек, переделок и багов.

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

Agile движение имеет свой взгляд на спецификации. Наиболее экстремальное крыло выражает свои взгляды так:

В жопу спецификации!
Дальше еще интереснее...
Total votes 125: ↑110 and ↓15+95
Comments38

Java: executor с уплотнением по ключам

Reading time6 min
Views16K
image

Существует типичная проблема в большом классе задач, которая возникает при обработке потока сообщений:

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

При этом существуют некоторые ограничения на поток данных:

  • поток не равномерный и состоит из событий разного типа
  • количество типов событий заранее не известно, но некоторое конечное число
  • каждый тип события имеет свою актуальность во времени
  • все типы событий имеют равный приоритет


На диаграмме приведён пример разрешения проблемы: нагребатор(tm), работающий на нитке T1, в то время как разгребатор(tm) работает на нитке T2
  • за время обработки события типа A успевают прийти новые события как типа B, так и A
  • после обработки события типа B необходимо обработать наиболее актуальное событие типа A

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

На суд публике представляется созданный нами ThrottlingExecutor.

Замечание терминологии: stream есть поток данных, тогда как thread есть нитка или нить выполнения. И не стоит путать потоки с нитками.

Замечание 1: проблема осложняется ещё тем, что может быть несколько нагребаторов(tm), при этом каждый нагребатор(tm) может порождать только события одного типа; с другой стороны есть потребность в нескольких (конечно же, для простоты можно выбрать N=1) разгребаторах(tm).

Замечание 2: мало того, что данный код должен работать в многопоточной (конкурентной) среде — т.е то самое множество нагребаторов(tm)разгребаторов(tm), код должен работать с максимальной производительностью и низкими latency. Резонно к этим всем качествам добавить ещё и свойство garbage less.

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

Читать дальше →
Total votes 39: ↑34 and ↓5+29
Comments66

Никогда не отвлекай программиста

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

Крис Парнин (Chris Parnin) из технологического института Джорджии решил восполнить этот недостаток и опубликовал чрезвычайно насыщенную статью со ссылками на различные исследования по этой теме.

Для начала, несколько фактов, которые относятся ко всем работникам интеллектуального труда. Задача, прерванная по ходу выполнения, занимает в два раза больше времени и содержит вдвое больше ошибок, чем та же задача, которая выполнялась без прерывания (Czerwinski:04). Офисные сотрудники вынуждены отвлекаться при выполнении 57% задач (Mark:05). Опросы говорят о том, что сотруднику требуется в среднем 15 минут, чтобы вернуться в нормальный ритм после того, как его отвлекли (vanSolingen:98).
Читать дальше →
Total votes 263: ↑248 and ↓15+233
Comments180

Events bubbling и events capturing

Reading time5 min
Views64K
intro
Представьте, что на странице есть два блока, и один вложен в другой, как это показано на рисунке. В разметке страницы это выглядит так:
   <div id="block_outer">
      <div id="block_inner"></div>
   </div>

А теперь представьте, что к блоку #block_outer привязано событие onClickOuter, а к блоку #block_inner, соответственно, событие onClickInner. И ответьте на вопрос, как сделать так, чтобы при клике на блок #block_inner, событие onClickOuter не вызывалось? И будет ли оно вообще вызвано? И если будет, то в каком порядке события будут вызываться? И знаете ли вы, как работает метод jQuery.live или подобные в других библиотеках (events delegation в ExtJS, например)?
Если я хоть немного заинтересовал, добро пожаловать под кат.
Total votes 93: ↑87 and ↓6+81
Comments21

BumpTop — 3D Desktop

Reading time1 min
Views2.3K
imageРазмещайте предметы на полу и на стенах, увеличивайте и уменьшайте их размеры, меняйте угол обзора. Отлично проработанная физика позволяет предметам на вашем рабочем столе взаимодействовать: сложите стопку из текстовых файлов или бросьте видеофайлом в папку. С поддержкой мультитач технологий этот десктоп становится настоящей находкой. Ну всё, хватит разговоров — быстрее смотрите видео…

Читать дальше →
Total votes 121: ↑69 and ↓52+17
Comments92

Чему я научился в Майкрософт

Reading time9 min
Views5.9K
Проработав пять лет в различных командах в Майкрософт я вынес несколько вещей, о которых я даже не подозревал, когда оканчивал колледж. Основные ценности, чему я научился, вынесенные уроки, причина моего крика на друзей, как ни называй, они сослужили мне хорошую службу.

Некоторые из этих вещей специфичны для Майкрософт, но большая часть найдет применение в любой командной/корпоративной среде. Некоторые из них сложны – из-за них тебя могут уволить (а может и хуже), если ты не знаешь, что делаешь.
Читать дальше →
Total votes 290: ↑240 and ↓50+190
Comments108

Делаем таймер или первый проект на ПЛИС

Reading time9 min
Views205K
Начну свою первую статью с того, что сообщу: в предмете статьи я сам новичок, но выбрал именно такую тему. Объясню почему. Читаю хабр уже достаточно долго и мне всегда были интересны топики тех, кто сам в настоящий момент изучает то, о чем повествует. Такие статьи всегда понятны, всегда находят свою аудиторию и всегда предают читающему интерес и энтузиазм автора, который у новичков в любой области обычно зашкаливает!

Так вот, недавно я заинтересовался темой ПЛИС, столкнувшись с ними на учебе, прочитал много всяких доков и заказал себе Starter Kit для экспериментов. Теперь, получив полигон для экспериментов по почте и проведя первый эксперимент, я готов поделиться с хабраюзерами. Надеюсь будет интересно.
Читать дальше →
Total votes 93: ↑85 and ↓8+77
Comments117

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity