Pull to refresh
  • by relevance
  • by date
  • by rating

Началась 2-я неделя марафона удаленки: как настроить работу команды

Habr corporate blog Хабр Карьера corporate blog Personnel Management *Remote work

Своим опытом в ближайшую неделю с 16 по 22 ноября поделятся ребята из студи Лебедева, ДоДо Пиццы, Aliexpress и DataArt St.Petersburg. Они расскажут о том, как настроить свои процессы и процессы команды, о проверенных инструментах, а также о найме в ситуации, когда для связи доступен только Zoom.

Читать далее
Total votes 15: ↑15 and ↓0 +15
Views 1.4K
Comments 0

Убийство процессов

Lumber room
Translation
Непокорные пользователи это сущий кошмар. Любая функция, которая вносит изменения в устоявшийся порядок вещей – предвестник народных волнений и шквала звонков в техподдержку. Иногда пользователь даже может изобрести способ обойти новую функцию, а затем этот способ будет передаваться от дедов внукам, посредством офисного устного народного творчества претерпевая изменения, вносимые каждым рассказчиком. Древние племена, которые застали сотворение мира 6000 лет назад, передавали друг другу легенды матушки земли. А мы сегодня передаем друг другу таинства горячих клавиш.
Читать дальше →
Total votes 1: ↑1 and ↓0 +1
Views 228
Comments 18

Процессы и потоки in-depth. Обзор различных потоковых моделей

System Programming *
Здравствуйте дорогие читатели. В данной статье мы рассмотрим различные потоковые модели, которые реализованы в современных ОС (preemptive, cooperative threads). Также кратко рассмотрим как потоки и средства синхронизации реализованы в Win32 API и Posix Threads. Хотя на Хабре больше популярны скриптовые языки, однако основы — должны знать все ;)
Далее
Total votes 64: ↑62 and ↓2 +60
Views 75K
Comments 45

Что такое нити (threads)?

System Programming *
Навеяно предыдущей статьей на эту тему.
Для того чтобы, структурировать свое понимание – что представляют собой threads (это слово переводят на русский язык как «нити» почти везде, кроме книг по Win32 API, где его переводят как «потоки») и чем они отличаются от процессов, можно воспользоваться следующими двумя определениями:
  • Thread – это виртуальный процессор, имеющий свой собственный набор регистров, аналогичных регистрам настоящего центрального процессора. Один из наиважнейших регистров у виртуального процессора, как и у реального – это индивидуальный указатель на текущую инструкцию (например, индивидуальный регистр EIP на процессорах семейства x86),
  • Процесс – это в первую очередь адресное пространство. В современной архитектуре создаваемое ядром ОС посредством манипуляции страничными таблицами. И уже во вторую очередь на процесс следует смотреть как на точку привязки «ресурсов» в ОC. Если мы разбираем такой аспект, как многозадачность для того, чтобы понять суть threads, то нам не нужно в этот момент думать о «ресурсах» ОС типа файлов и к чему они привязаны.
Очень важно понять, что thread – это концептуально именно виртуальный процессор и когда мы пишем реализацию threads в ядре ОС или в user-level библиотеке, то мы решаем именно задачу «размножения» центрального процессора во многих виртуальных экземплярах, которые логически или даже физически (на SMP, SMT и multi-core CPU платформах) работают параллельно друг с другом.
Читать дальше →
Total votes 53: ↑41 and ↓12 +29
Views 56K
Comments 45

Онлайн психолог — Сбор требований

Lumber room
Предыдущий пост из серии «онлайн психолог» Вы можете найти здесь.

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

Ни для кого не секрет, что требования к проекту очень важны. Они сродни аксиомам, на которых строиться вся остальная «теория» проекта. И если даже слегка менять аксиомы, то в одном случае мы можем получить «Евклидову геометрию», а в другом «геометрию Лобачевского»! Поэтому к сбору требований рекомендую подходить со всей ответственность, а не в режиме «мозгового штурма», как это обычно делается.

Итак, из чего состоит процесс сбора требований? Мы рекомендуем организовать его следующим образом:

  1. Формулирование главной цели проекта
  2. Определение сторон
  3. Получение требований от каждой из сторон
  4. Определение важности требований по отношению к цели
  5. Согласование требований и их важности со сторонами

Читать дальше →
Total votes 6: ↑2 and ↓4 -2
Views 430
Comments 7

Предпроектная документация: что это и почему она так важна?

Project management *
Среди моих знакомых нет ни одного, кто любил бы писать технические задания или что-то вроде этого. Чертить на салфетках планы захвата вселенной, собирать лэйауты из разноцветных стикеров, шлифовать концепцию в голове и на словах – это все любят и умеют делать, а вот сесть и как следует записать…
Меня, например, любой шаблон серьезного документа погружает в глубочайшую тупку.

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

Читать дальше →
Total votes 55: ↑50 and ↓5 +45
Views 9.2K
Comments 52

Разработка макетов: а давайте в этот раз не будем спрашивать уборщицу?

Project management *
Мало кому приходит в голову указывать программистам, как писать код (хотя некоторые умудряются указывать даже проектировщикам баз данных), но уж показать дизайнеру как нужно рисовать — прямо очередь выстраивается.

Это происходит потому, что все «специалисты» знают: дизайн — это красивая картинка.

Дизайн лишь на 20% искусство, на 80% — это точная наука. И вы будете удивлены, когда узнаете, из чего на самом деле состоит каждая картинка.

Читать дальше →
Total votes 178: ↑150 and ↓28 +122
Views 2.6K
Comments 166

Издержки больших проектов или взгляд на программирование в команде изнутри

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

Итак, собственно, к делу.

Мы занимаемся системами электронной биржевой торговли, аналитикой рынка и поставкой маркет-данных в реальном времени. К таким системам предъявляются повышенные требования по надежности — каждая ошибка может привести к потере больших денег.
Читать дальше →
Total votes 82: ↑76 and ↓6 +70
Views 2.1K
Comments 112

Удаление запущенного .exe с помощью потоков NTFS

Development for Windows *
Про потоки NTFS на хабре писали уже не раз, я же покажу, как с их помощью преодолеть одно ограничение Windows по работе с процессами. Тут эта тема в одном посте уже поднималась, но как-то вскользь. Я же хочу обратить на неё внимание.

Вы наверное знаете, что .exe файл работающего процесса невозможно удалить, пока он работает. Можно перемещать файл, но только в пределах своего раздела. С помощью потоков NTFS всё таки можно удалить файл процесса во время его работы.
Читать дальше →
Total votes 4: ↑4 and ↓0 +4
Views 7.8K
Comments 7

Внедрение процессов — пошаговая инструкция

Lumber room
Хочу поделиться опытом разработки и введения ай-ти процессов в проекте. Зачем нужны процессы? Они, отвечают многим разным целям, но в нашем случае основной целью было разграничение ответственности.

Многие программисты согласятся, что когда находят баг в уже работающей системе, вина сваливается на них. А кого же ещё? Ведь они его допустили! В итоге, мотивация понижается, имидж портится, и вообще — те, кто больше всех работает, получает больше всех пинков. А признание получают менеджеры, отдел продаж и прочие…
Читать дальше →
Total votes 9: ↑8 and ↓1 +7
Views 1.1K
Comments 4

Тестирование игр в Иннове: рассказ о работе отдела

IT systems testing *
В качестве предисловия скажу, что я пришла в Иннову чуть больше года назад, моей задачей было «сделать тестирование в компании». Мой отдел тестирования состоит из двух групп: группа тестирования веб-приложений и группа тестирования игровых приложений. Такое разделение сложилось потому, что у этих направлений разные задачи и разные требования к сотрудникам.

Дальше рассказ будет про направление игрового тестирования. Это рассказ про моих ребят, про наши процессы, про нашу организацию работы. Приглашаю на словесную экскурсию.

Легион
Читать дальше →
Total votes 87: ↑65 and ↓22 +43
Views 16K
Comments 105

Erlang и его процессы

Erlang/OTP *
Sandbox

0 Преамбула


Модель – это ещё не мир. Являясь людьми, мы не можем в полной мере познать реальность. Мы можем лишь построить её модель и через неё изучать и использовать реальный мир. От того, какую модель мы выберем, зависит полнота, успешность, живучесть части реальности в информационном пространстве (или в нашей голове).

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

В данной статье автор осветит функциональный язык программирования Erlang, парадигма которого может звучать так: «все является процессами». В первой части данной стати будет дана вводная информация по созданию и коммуникации процессов между собой, во второй мы остановимся на планировании процессов внутри виртуальной машины Erlang и спецификации процессов. Статья адресована для новичков, кто хочет начать создавать сложные, многопоточные и отказоустойчивые приложения на языке Эрланг.
Читать дальше →
Total votes 47: ↑45 and ↓2 +43
Views 16K
Comments 23

Слежение за процессами и обработка ошибок, часть 1

Erlang/OTP *

0 Преамбула


Согласитесь приятно, когда в хозяйстве все под контролем и все в порядке, каждая вещь стоит на своем месте и четко выполняет свое вселенское предназначение. Сегодня мы рассмотрим вопросы организации порядка в огромном множестве процессов эрланга. Базовые понятия о процессах эрланга можно прочитать в этом посте.
Читать дальше →
Total votes 35: ↑30 and ↓5 +25
Views 3.6K
Comments 4

Слежение за процессами и обработка ошибок, часть 2

Erlang/OTP *

Преамбула


В первой части данной статьи мы рассмотрели механизм связей между процессами и процесс распространения ошибок. Сегодя давайте рассмотрим один случай, который не был освещен в предыдущей части – постреляем по процессам сигналом kill.
Читать дальше →
Total votes 23: ↑23 and ↓0 +23
Views 3.3K
Comments 11

Слежение за процессами и обработка ошибок, часть 3

Erlang/OTP *

Преамбула


В предыдущих частях (часть 1, часть 2) мы полностью рассмотрели механизм создания двунаправленных связей между процессами и процесс распространения ошибок. В данной статье будет разобран, достаточно простой, механизм мониторов и ещё несколько аспектов касающихся работы с процессами.
Читать дальше →
Total votes 19: ↑19 and ↓0 +19
Views 5K
Comments 5

Процессы и потоки в Android: пишем AsyncTask правильно

Development for Android *
Продолжаю свои повествования об Android. И в этот раз хочу поделиться ценной информацией о процессах и потоках, которая должна быть хорошо усвоена и всегда оставаться под рукой во избежании ошибок и недопонимания при написании приложений. В конце статьи приведу пример реализации AsyncTask, который загружает в ImageView картинку по нажатию на кнопку.
Читать дальше →
Total votes 28: ↑23 and ↓5 +18
Views 115K
Comments 27

Как работает многозадачность

Programming *
Sandbox
В ответ на Как вы считаете, как работает многозадачность на 80386?. По моему мнению, ни один из предлагавшихся вариантов ответа не верен, а верен такой:

Процессор ничего не знает ни о потоках, ни о процессах. Он просто последовательно выполняет инструкции, пока не случится прерывание. Обработка прерывания сводится к вызову процедуры, не заданному в исполняемом коде. Эта процедура (являющаяся частью операционной системы) производит при необходимости переключение процессов и потоков. Чаще всего процедура прерывания просто делает выход и прерванный поток продолжает свою работу, ничего не заметив.
Читать дальше →
Total votes 93: ↑63 and ↓30 +33
Views 6.8K
Comments 48

ОСРВ QNX: Немного о микроядре, потоках и процессах

*nix *
Поскольку мой первый небольшой обзор операционной системы реального времени QNX показал, что среди жителей Хабра есть к ней интерес, то я решил продолжить цикл заметок. Мне кажется, что стоит немного рассказать о системной архитектуре QNX6. Думаю, что нелишне дать определение тому, что такое микроядро, и какие задачи оно решает. По ходу повествования будут также развенчаны два мифа, связанные с QNX. Но сначала…

Немного о POSIX


С выпуском каждой новой версии QNX (а надо отметить, что первая версия ОСРВ QNX появилась теперь уже в далёком 1981 году), разработчики использовали накопленный ранее опыт и делали систему лучше, в том числе и удобнее для разработчиков. Именно поэтому QNX Neutrino поддерживает стандарты POSIX 1003.1, например, управление потоками (threads), расширения реального времени (Realtime Extensions), дополнительные расширения реального времени (Additional Realtime Extensions) и профили прикладных окружений (Application Environment Profiles, AEP).

Зачем я об этом говорю?
Не знаю, но я действительно хочу узнать зачем.
Total votes 86: ↑85 and ↓1 +84
Views 23K
Comments 64

Процесcы в операционной системе Linux (основные понятия)

Configuring Linux *
Sandbox
Основными активными сущностями в системе Linux являются процессы. Каждый процесс выполняет одну программу и изначально получает один поток управления. Иначе говоря, у процесса есть один счетчик команд, который отслеживает следующую исполняемую команду. Linux позволяет процессу создавать дополнительные потоки (после того, как он начинает выполнение).

Linux представляет собой многозадачную систему, так что несколько независимых процессов могут работать одновременно. Более того, у каждого пользователя может быть одновременно несколько активных процессов, так что в большой системе могут одновременно работать cотни и даже тысячи процессов. Фактически на большинстве однопользовательских рабочих станций (даже когда пользователь куда-либо отлучился) работают десятки фоновых процессов, называемых демонами (daemons). Они запускаются при загрузке системы из сценария оболочки.

Читать дальше →
Total votes 106: ↑68 and ↓38 +30
Views 20K
Comments 37