LINUX.ORG.RU

Сообщения Yak

 

Непонятные символы в Makefile...

 ,

Есть у меня Makefile, сгенерённый SIPом для его дальнейшей сборки при помощи nmake.

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

Собственно, вот он:

TARGET = hello.pyd
OFILES = siphellocmodule.obj siphelloHello.obj
HFILES = sipAPIhello.h 

CC = cl
CXX = cl
LINK = link
CPPFLAGS = -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB -DUNICODE -DWIN32 -I. -ID:\Projects\qml_fuss\LibHello -ID:\Lib\Qt-5.8.0\5.8\msvc2015_64\include -ID:\Lib\Qt-5.8.0\5.8\msvc2015_64\include\QtCore -ID:\Lib\Qt-5.8.0\5.8\msvc2015_64\include\QtGui -ID:\Lib\Qt-5.8.0\5.8\msvc2015_64\include\QtWidgets -IC:\python35\include
CFLAGS = -nologo -Zm200 -Zc:wchar_t- -FS -Zc:strictStrings -O2 -MD -W3 -w44456 -w44457 -w44458
CXXFLAGS = -nologo -Zm200 -Zc:wchar_t- -FS -Zc:strictStrings -D_HAS_EXCEPTIONS=0 -O2 -MD -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577
LFLAGS = /NOLOGO /DYNAMICBASE /NXCOMPAT /DLL /MANIFEST /MANIFESTFILE:$(TARGET).manifest /SUBSYSTEM:WINDOWS /INCREMENTAL:NO
LIBS = /LIBPATH:D:\Lib\Qt-5.8.0\5.8\msvc2015_64\lib /LIBPATH:. /LIBPATH:D:\Projects\qml_fuss\LibHello /LIBPATH:C:\python35\libs LibHello.lib Qt5Core.lib Qt5Gui.lib Qt5Widgets.lib python35.lib
.SUFFIXES: .c .cpp .cc .cxx .C


{.}.cpp{}.obj::
	$(CXX) -c $(CXXFLAGS) $(CPPFLAGS) -Fo @<<
	$<
<<

{.}.cc{}.obj::
	$(CXX) -c $(CXXFLAGS) $(CPPFLAGS) -Fo @<<
	$<
<<

{.}.cxx{}.obj::
	$(CXX) -c $(CXXFLAGS) $(CPPFLAGS) -Fo @<<
	$<
<<

{.}.C{}.obj::
	$(CXX) -c $(CXXFLAGS) $(CPPFLAGS) -Fo @<<
	$<
<<

{.}.c{}.obj::
	$(CC) -c $(CFLAGS) $(CPPFLAGS) -Fo @<<
	$<
<<

all: $(TARGET)

$(OFILES): $(HFILES)

$(TARGET): $(OFILES)
	$(LINK) $(LFLAGS) /OUT:$(TARGET) @<<
	  $(OFILES) $(LIBS)
<<
	mt -nologo -manifest $(TARGET).manifest -outputresource:$(TARGET);2

install: $(TARGET)
	@if not exist \usr\local\lib\python3.5\dist-packages mkdir \usr\local\lib\python3.5\dist-packages
	copy /y $(TARGET) \usr\local\lib\python3.5\dist-packages\$(TARGET)

clean:
	-del $(TARGET)
	-del siphellocmodule.obj
	-del siphelloHello.obj
	-del $(TARGET).manifest

Собственно, имею спросить: а что значат вот эти места?

{.}.cpp{}.obj::

@<<

<<

@
Yak
()

Не могу собрать PyQt5 из исходников

 , , , ,

Хочу я собрать PyQt5 из исходников.

Для того скачал я исходники SIP, сделал с ним configure.py, сделал make и sudo make install — всё круто. Мне даже удалось собрать этим SIPом тестовую библиотечку на C++ (без Qt), и та как-то запахала.

Потом я скачал исходники PyQt5, сделал с ним configure.py, а потом сделал make. Ничто не предвещало беды.

Но когда я попытался проделать sudo make install, то тут-то меня и начали засыпать килотоннами ошибок вот такого рода:

install -m 755 -p /media/felix/0AF94FBB437A6C99/Projects/pyqt5-linux/sip/QtWidgets/qtreeview.sip /usr/share/sip/PyQt5/QtWidgets/
strip /usr/share/sip/PyQt5/QtWidgets/qtreeview.sip
strip:/usr/share/sip/PyQt5/QtWidgets/qtreeview.sip: File format not recognized
Makefile:1869: recipe for target 'install_sip' failed
make[1]: [install_sip] Error 1 (ignored)

Имею спросить: как бы мне это забороть?

P.S. Система Ubuntu 16.10 x64

Yak
()

[Москва] [МФТИ] [Python] Программист-математик: 120-150 т.р.

 , , , ,

Нашей лаборатории требуется программист-математик (в команду математического моделирования РЛС).

`

О главном

  • Платить будут 120-150 тысяч
  • График работы гибкий.
  • Наш офис находится в РТ-корпусе МФТИ (Долгопрудный), это 30 минут на электричке от м. Савёловской или 15 минут на маршрутке от Алтуфьево.

`

Что вообще мы разрабатываем?

У нас открыто два проекта.

  • Библиотека радиолокационных алгоритмов (функциональный аналог — Phased Array Toolbox из MATLAB):
    • реализация популярных алгоритмов, применяемых в радиолокации, предполагается достаточно много исследовательских задач (особенно для тех алгоритмов, для которых пока нет референсной реализации)
    • интеграция кода от сторонних разработчиков.
  • Графический САПР для моделирования РЛС (функциональный аналог — RapidMiner / Orange Canvas / Simulink).

`

На чём мы пишем?

  • Основной язык разработки — Python + NumPy / SciPy.
  • Отдельные части — написаны на C++.
  • GUI-подсистему пишем на PyQt.
  • Некоторые вычисления будут производиться на кластере с помощью dask.

`

Что предстоит делать вам?

  • Участвовать в разработке библиотеки. Реализовывать и верифицировать известные алгоритмы обработки радиолокационных данных.
  • Читать зарубежные статьи по радиолокационной тематике
  • Разрабатывать новые алгоритмы обработки.

`

Какие будут требования?

  • Опыт программирования на Python.
  • Знание методов цифровой обработки сигналов (DSP) и математики вообще.
  • Технический английский.
  • Культура командной разработки: контроль версий, управление задачами и т.п.

`

Что ещё будет полезно?

Плюсом будет опыт в одной из этих сфер:

  • машинного зрения (Computer Vision)
  • обработки изображений (Image Processing)
  • машинного обучения (Machine Learning).

Если есть публикации в области вычислительной математики / computer science — тоже присылайте.

Знание систем автоматического тестирования (у нас — nose) и документирования (у нас — Sphinx) — тоже большой плюс.

Если у вас есть опыт в радиолокации — хорошо, но даже если нет — научим, это не сложно = )

`

Что от нас?

  • Белая зарплата.
  • Масса интересных задач.
  • Возможность выложить часть кода на GitHub.
  • Чай/кофе/печеньки = )

`

P.S.

Неофициальная страница лаборатории: http://miptdesigncenter.tilda.ws

Немного о наших радиолокационных проектах: http://miptdesigncenter.tilda.ws/radars

`

Если вас это интересует — вот почта: nefedov.da@mipt.ru

Yak
()

QtLocation и OpenStreetMap: как получить английские надписи в не-английских странах?

 , ,

Есть у меня QML-виджет, в который встроен Map из QtLocation (плагин «osm»).

Он здорово показывает карту, и всё бы хорошо, да вот засада: в неанглийских странах пишут названия городов всякой арабской крокозяблицей, а ни один из предполагаемых пользователей по-арабски не понимает. Этак можно Ирак с Ираном перепутать, не говоря уже о Дамаске и Хомсе.

Имею спросить: а нельзя ли как-нибудь включить в OSM английские надписи в не-английских странах?

Yak
()

Нужен класс для многомерных массивов (как numpy.ndarray, только на C++)

 ,

Нужен мне нужен класс многомерного численного массива (типы данных предполагаются float64 и complex128).

Нужно, чтобы он поддерживал следующие вещи:

- любое количество измерений (то бишь, Eigen, с его 2D-матрицами — не вариант);

- изменение размера и размерности;

- поэлементные операции (арифметика, тригонометрия и т.д.);

- возможность получить указатель на массив в памяти (для того, чтобы можно было конвертировать это в numpy.ndarray).

Не сможет ли прогрессивная общественность мне что-нибудь посоветовать?

Yak
()

А на чём нынче обычно делают лэндинги-одностраничники?

 

Вот, хочется запилить сайт вроде вот такого: http://visillect.com

Со всякой полезной информацией о нашей лабе.

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

Yak
()

PyQt5 и PyUIC: горячие клавиши в сгенерённых виджетах не работают под Linux...

 ,

Хочу я, братцы, создать приложение на PyQt5, на Qt Widgets. А для того использую Qt Designer, чтобы сгенерить формочки, а потом PyUIC, чтобы сделать из них питоний код. Есть в тех формочках некоторые горячие клавиши, которые повешены на тамошние менюшки. Одна беда: эти горячие клавиши работают под виндами, а вот под моей Ubuntu 16.10 не делают ничего, от слова совсем. Хотя если на менюшку кликнуть мышкой, то она, конечно, сработает.

Имею спросить: а не встречался ли кто с подобным?

И да, вот держите пример: тут есть код, сгенерённый PyUICом, а в конце вставлен уже мой код (там надо, по идее, закрывать окно по нажатию Ctrl+C).

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 
#
# Created by: PyQt5 UI code generator 5.8.2
#
# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_DemoWindow(object):
    def setupUi(self, DemoWindow):
        DemoWindow.setObjectName("DemoWindow")
        DemoWindow.resize(800, 600)
        self.centralwidget = QtWidgets.QWidget(DemoWindow)
        self.centralwidget.setObjectName("centralwidget")
        DemoWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(DemoWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 25))
        self.menubar.setObjectName("menubar")
        self.menuFile = QtWidgets.QMenu(self.menubar)
        self.menuFile.setObjectName("menuFile")
        DemoWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(DemoWindow)
        self.statusbar.setObjectName("statusbar")
        DemoWindow.setStatusBar(self.statusbar)
        self.close_action = QtWidgets.QAction(DemoWindow)
        self.close_action.setObjectName("close_action")
        self.menuFile.addAction(self.close_action)
        self.menubar.addAction(self.menuFile.menuAction())

        self.retranslateUi(DemoWindow)
        self.close_action.triggered.connect(DemoWindow.close)
        QtCore.QMetaObject.connectSlotsByName(DemoWindow)

    def retranslateUi(self, DemoWindow):
        print("RETRANSLATING")
        _translate = QtCore.QCoreApplication.translate
        DemoWindow.setWindowTitle(_translate("DemoWindow", "MainWindow"))
        self.menuFile.setTitle(_translate("DemoWindow", "File"))
        self.close_action.setText(_translate("DemoWindow", "Close"))
        self.close_action.setShortcut(_translate("DemoWindow", "Ctrl+C"))





### AND HERE'S MY CODE


import sys

from PyQt5 import QtWidgets, QtGui, QtCore

class DemoWindow(QtWidgets.QMainWindow, Ui_DemoWindow):
    def __init__(self, parent=None):
        QtWidgets.QMainWindow.__init__(self, parent)
        self.setupUi(self)


if __name__ == "__main__":

    #########################################
    sys._excepthook = sys.excepthook
    def exception_hook(exctype, value, traceback):
        sys._excepthook(exctype, value, traceback)
        sys.exit(1)
    sys.excepthook = exception_hook
    ##########################################


    app = QtWidgets.QApplication(sys.argv)

    window = DemoWindow()
    window.show()

    sys.exit(app.exec_())

И да, если понадобится, то .ui-код тоже вот:

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>DemoWindow</class>
 <widget class="QMainWindow" name="DemoWindow">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>800</width>
    <height>600</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>MainWindow</string>
  </property>
  <widget class="QWidget" name="centralwidget"/>
  <widget class="QMenuBar" name="menubar">
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>800</width>
     <height>25</height>
    </rect>
   </property>
   <widget class="QMenu" name="menuFile">
    <property name="title">
     <string>File</string>
    </property>
    <addaction name="close_action"/>
   </widget>
   <addaction name="menuFile"/>
  </widget>
  <widget class="QStatusBar" name="statusbar"/>
  <action name="close_action">
   <property name="text">
    <string>Close</string>
   </property>
   <property name="shortcut">
    <string>Ctrl+C</string>
   </property>
  </action>
 </widget>
 <resources/>
 <connections>
  <connection>
   <sender>close_action</sender>
   <signal>triggered()</signal>
   <receiver>DemoWindow</receiver>
   <slot>close()</slot>
   <hints>
    <hint type="sourcelabel">
     <x>-1</x>
     <y>-1</y>
    </hint>
    <hint type="destinationlabel">
     <x>399</x>
     <y>299</y>
    </hint>
   </hints>
  </connection>
 </connections>
</ui>
Yak
()

QGraphicsScene: размеры сцены вырастают сильно и скачкообразно...

 , , ,

Есть у меня, братцы, QGraphicsScene с несколькими объектами на ней. И когда я таскаю их мышкой, то при достижении левого края экрана сцена не просто увеличивается в размерах (что правильно), но увеличивается чертовски сильно (едва ли не вдвое) и скачкообразно (что не есть хорошо).

Вот небольшая демка (там надо перетащить один из квадратиков к левому краю экрана).


import sys

from PyQt5 import QtWidgets, QtGui, QtCore
from PyQt5.QtWidgets import QGraphicsItem, QGraphicsTextItem, QGraphicsRectItem

if __name__ == "__main__":

    #########################################
    sys._excepthook = sys.excepthook
    def exception_hook(exctype, value, traceback):
        sys._excepthook(exctype, value, traceback)
        sys.exit(1)
    sys.excepthook = exception_hook
    ##########################################



    app = QtWidgets.QApplication(sys.argv)

    view = QtWidgets.QGraphicsView()
    view.setRenderHint(QtGui.QPainter.Antialiasing)
    view.setMouseTracking(True)
    view.setDragMode(QtWidgets.QGraphicsView.RubberBandDrag)

    scene = QtWidgets.QGraphicsScene()

    rect_item = QGraphicsRectItem(-50, -50, 100, 100)
    rect_item.setFlags(QGraphicsItem.ItemIsSelectable | QGraphicsItem.ItemIsFocusable | QGraphicsItem.ItemIsMovable)
    scene.addItem(rect_item)


    rect_item2 = QGraphicsRectItem(-50, -50, 100, 100)
    rect_item2.setFlags(QGraphicsItem.ItemIsSelectable | QGraphicsItem.ItemIsFocusable | QGraphicsItem.ItemIsMovable)
    scene.addItem(rect_item2)

    rect_item2.setPos(-120, -120)

    view.setScene(scene)
    view.showMaximized()

    sys.exit(app.exec_())

Имею спросить: а как бы мне это забороть?

Yak
()

Можно ли в Qt протестировать Drag'and'Drop с помощью QTest?

 ,

У меня есть графический интерфейс, написанный на PyQt. В нём активно используется drag-and-drop с одного виджета на другой (таскаем объекты с Item View, скидываем на Graphics Scene).

Хочу я протестировать мой GUI с помощью QTest. Пишу код примерно такого плана:


    item_rect = self.main_wnd.tree_view.visualRect(constant_index) # this is the index of the item I want to drag

    QtTest.QTest.mouseMove(self.main_wnd.tree_view.viewport(), item_rect.center(), 300) # указатель мышки движется, ОК
    QtTest.QTest.mousePress(self.main_wnd.tree_view.viewport(), QtCore.Qt.LeftButton, QtCore.Qt.KeyboardModifiers(), 
                                item_rect.center(), 300)  # элемент выбирается, как и положено после нажатия мышкой, но и только.

    QtTest.QTest.mouseMove(self.main_wnd._scene_views[None].viewport(), QtCore.QPoint(), 300)  # указатель мышки движется, но без таскания чего бы то ни было
    QtTest.QTest.mouseRelease(self.main_wnd.tree_view.viewport(), QtCore.Qt.LeftButton, QtCore.Qt.KeyboardModifiers(),
                                constant_rect.center(), 300)  # ничего не происходит

Однако не тут-то было: да, указатель мышки куда надо перемещается, нужный элемент в Item View выделяется, а затем перемещается и в центр моей сцены. Но ни Drag Event, ни Drop Event, к сожалению, там не происходит.

Имею спросить: а как бы это забороть?

Yak
()

Qt и QAbstractListModel: как из кода сказать, что такой-то элемент списка сейчас редактруется?

 ,

Есть у меня модель, унаследованная от QAbstractListItem, представляющий собой список портов, которые есть у такого-то электронного компонента.

Есть у неё метод, который добавляет в список ещё один элемент (ещё один порт). По умолчанию ему присваивается имя вроде RENAME_ME_PLZ_ASAP. Предполагается, что пользователь его немедленно переименует.

Одна беда: чтобы переименовать этот порт, юзеру надо, как минимум, сделать следующее:

- отпустить клавиатуру,

- схватить мышку,

- прицелиться в нужный элемент списка,

- сделать туда двойной щелчок, чтобы началось редактирование

- отпустить мышку

- схватить клавиатуру

-- и только тогда можно будет переименовать этот ч0ртов порт.

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

Yak
()

Нужна библиотека для Flow Based Programming на Python

 , ,

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

Интересует не GUI (морду-то я нарисую), а именно реализация самой логики. С тем, чтобы мне можно было отнаследоваться от некоего класса Component, да и ага.

Есть вот https://github.com/LumaPictures/pflow , но она, зараза, заброшена совсем, да и под Виндой не работает, ибо требует модуль sh.

Yak
()

Python: нет ли хорошей искоробочной реализации деревьев?

 , ,

Нужна мне структура данных типа «дерево». Не бинарное, а такое, у которого каждый узел может иметь сколько угодно потомков (причём расположенных в заданном порядке). Ну и нужна возможность перемещаться вверх-вниз по дереву, конечно.

Имею спросить: а нет ли под Python такого в уже готовом виде? Очень неохота велосипедизмом заниматься...

Yak
()

Python и Data Flow: не видел ли кто хороших библиотек?

 ,

Может статься, придётся мне писать что-то вроде RapidMiner'а. Ну, это где надо натаскать мышкой всяких блоков вычисления прописать им параметры, соединить их входные и выходные порты соединеньицами — и запустить вычисления, протащив сигнал от входа к выходу.

Имею спросить: а нет ли каких-нибудь библиотек, которые могут это облегчить? В частности, просчитать порядок вычисления, убедиться в отсутствии циклов, как-нибудь автоматизировать проверку размерностей портов — и иже с ним?

Yak
()

Библиотека для рисования и редактирования блочных диаграмм

 

Джентельмены!

А нет ли на свете хорошей библиотеки, чтобы пользователь в моей софтине мог рисовать блочные диаграммы?

Если вкратце — хочется дать пользователю рисовать граф из параметризованных блоков, в духе какого-нибудь Simulink'а, RapidMiner'а или той же TensorBoard. С тем, чтобы генерировать по ней болванку питоньего кода (или, для начала, просто и незатейливо этот граф исполнять самостоятельно). С внутренней начинкой — никаких проблем, а вот на чём GUI сделать — ума не приложу.

Примерно в таком духе должна смотреться наша софтина:

https://vv.cs.byu.edu/facwiki/scraped-cs679/cs679/images/3/30/RapidMinerWorkf...

P.S. В идеале — всё это хочется встроить в качестве нескольких Qt-виджетов (а совсем в идеале — в виде PyQt-виджета).

P.P.S. Да, я знаю, что для сложной логики такое далеко не всегда подходит, но для обучения начинающих юзеров и демонстрации сомневающимся это таки да, даёт свой эффект.

Yak
()

Репликация данных: с чего бы начать ознакомление?

 ,

Есть мысль запилить небольшое веб-приложение, а к нему десктопный клиент (а в перспективе и клиент на Android). Клиент этот должен уметь работать автономно, а когда появляется связь, то синхронизировать данные с сервером. Данных немного: это всего лишь записи о нескольких десятках покупок. Или о новых клиентах. Или о ещё какой мелочёвке.

На одном хосту это делается просто: с помощью любой ORM-библиотеки, хотя бы SqlAlchemy. Или средствами Django, почему нет.

Но оно должно работать на нескольких хостах. И как-то разруливать конфликты: например, если на локальном хосту редактируют задачу, которую на сервере уже удалили, но на локальном хосту об этом ещё не знают. Говорят, это как-то связано с репликацией (в варианте «мастер-мастер»), но в репликацию и синхронизацию я не умею вообще, от слова совсем. С чего мне стоит начать знакомство?

Yak
()

Посоветуйте программу-органайзер?

 ,

Нужна мне, братцы, программа-органайзер. Чтобы записывать задачи и ничего не забывать.

Сейчас я пользуюсь Thunderbird'ом и тамошним календарём (c синхронизацией через Google-календарь), но это не очень-то удобно, ибо вложенных заданий там я делать не умею.

Чего хочется?

- Синхронизации на нескольких машинах (домашней и рабочей). Если поддерживается ещё и Windows, то просто шикарно.

- Вложенных задач.

- Поддержки тегов и приоритетов.

Сможете чего-нибудь присоветовать?

Yak
()

selenium + scrapy: как подружить?

 ,

Есть на свете, джентельмены, сайт. Хочу я его содержимое сграбить, чтобы выложить в свободный доступ.

Одна у меня, джентельмены, беда: там мало того, что требуется залогиниться для входа, так ещё и ссылки на видео заставляют именно что кликать, чтобы видео скачалось. А если эти же ссылки вставить в окошко браузера и попытаться скачать напрямую, то меня отматерят и ничего не дадут.

Потому надо мне, джентельмены, использовать что-то вроде selenium,чтобы туда заходить и щёлкать по ссылкам. Но писать паукана вручную мне неохота. А потому — надо мне как-то подружить его с чем-то вроде scrapy.

Имею, джентельмены, спросить: не приходилось ли кому такое делать?

Yak
()

Доработка LaTeX-пакета для ГОСТ 7.32-2001

 ,

Есть на свете вот такой пакет для ГОСТовских отчётов: https://github.com/rominf/latex-g7-32

Он слегка глючит, да и ГОСТу соответствует не вполне, особенно в части заголовков.

Надо скачать DOC-файл с шаблоном, посмотреть, что там да как, да и доработать STYшку.

Контакты:

Skype: nuclear_carlson

Мыло: nuclear_carlson@ngs.ru

Yak
()

LaTeX и шаблоны для ТЗ по ГОСТу: где бы взять?

 , ,

ТЗ от наших предшественников выглядели примерно так:

http://i.zlowiki.ru/151006_bfb7dfed.png

Но как и в чём они их делали — того установить, к сожалению, невозможно: от них не сохранилось ни DOC-файлов, ни, тем более, TeX'а.

Не отсыплет ли кто шаблонов для LaTeX'а, чтобы можно было писать такие ТЗшки быстро и безболезненно?

Yak
()

Эффект одинокой обезьяны: как он правильно называется?

 

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

1) Им приходится держать в голове слишком много областей сразу, из-за чего у них наступает перегрузка.

2) Так так людей мало, а задач много — возникает соблазн ускорить дело за счёт качества. И проект начинает проседать под тяжестью костылей.

3) Наконец, не включается механизм перекрёстного опыления, когда разработчики реулярно натыкаются на баги своих коллег и разминируют их ещё до того, как они пойдут к пользователю.

Имею спросить: нет ли у такого эффекта специального названия?

Yak
()

RSS подписка на новые темы