LINUX.ORG.RU

Сообщения Yak

 

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

Форум — Development

Есть у меня 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 из исходников

Форум — Development

Хочу я собрать 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 т.р.

Форум — Job

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

`

О главном

  • Платить будут 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: как получить английские надписи в не-английских странах?

Форум — Development

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

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

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

 , ,

Yak
()

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

Форум — Development

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

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

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

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

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

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

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

 ,

Yak
()

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

Форум — Web-development

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

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

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

 

Yak
()

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

Форум — Development

Хочу я, братцы, создать приложение на 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: размеры сцены вырастают сильно и скачкообразно...

Форум — Development

Есть у меня, братцы, 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?

Форум — Development

У меня есть графический интерфейс, написанный на 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: как из кода сказать, что такой-то элемент списка сейчас редактруется?

Форум — Development

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

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

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

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

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

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

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

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

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

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

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

 ,

Yak
()

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

Форум — Development

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

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

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

 , ,

Yak
()

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

Форум — Development

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

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

 , ,

Yak
()

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

Форум — Development

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

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

 ,

Yak
()

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

Форум — Development

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

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

Если вкратце — хочется дать пользователю рисовать граф из параметризованных блоков, в духе какого-нибудь 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
()

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

Форум — Development

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

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

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

 ,

Yak
()

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

Форум — General

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

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

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

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

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

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

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

 ,

Yak
()

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

Форум — Development

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

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

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

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

 ,

Yak
()

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

Форум — Job

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

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

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

Контакты:

Skype: nuclear_carlson

Мыло: nuclear_carlson@ngs.ru

 ,

Yak
()

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

Форум — General

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

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

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

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

 , ,

Yak
()

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

Форум — Talks

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

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

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

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

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

 

Yak
()

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