LINUX.ORG.RU

Сообщения Yak

 

Как сейчас курс с Udemy купить?

Кролики, а как вы сейчас курсы с Udemy покупаете? Как правильно обходить запрет на продажи в Россию?

Как аккаунт регать, на какую почту, как оплачивать – и иже с ним?

Хочу вот этот курс купить: https://www.udemy.com/course/spark-streaming/ – но там у них теперь продажи в Россию запрещены.

 

Yak ()

Gitlab CI: график количества успешных и упавших тестов

Джентельмены! А есть ли в gitlab аналог дженкинсовского Test Trend Graph? Где было бы показано количество упавших и успешных тестов от коммита к коммиту?

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

 ,

Yak ()

Python: как описывать схему конфигов?

Есть у меня, братцы, скрипт, который кушает себе на вход пригоршню аргументов командной строки с помощью argparse:

parser = argparse.ArgumentParser(description='Simulator proxy example')

parser.add_argument("--baseline", "-bl", type=str2bool, default=False,
                    help="Run baseline scenario (non-fullbuffer, MEDIUM traffic, CORRELATION scheduler)")

parser.add_argument("--config-path", "-cp", type=str, default=None,
                    help="Path to MATLAB .m config file for UNN SLS")
parser.add_argument("--dump-path", "-dp", type=str, default=None,
                    help="Explicitly sets path to dump folder (value from .m config will be read otherwise)")

parser.add_argument('--fullbuffer', '-fb', type=str2bool, default=True,
                    help="Use fullbuffer traffic mode")
parser.add_argument("--parallel-scheduling", "-ps", type=str2bool, default=False,
                    help="Run scheduling for each of 3 sectors in parallel process")

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

А я хочу отрефакторить код моего скрипта, вынеся его в отдельную функцию. Которую вызывать себе из основного Python-процесса (в идеале, безо всяких лишних костылей вроде os.subprocess). И для этого мне бы не помешал аналогичный класс, только для описания конфигов. Чтобы я мог из своего питоньего кода поставить аргументы какие нужны.

Нужно, что-то в таком же духе, как в SqlAlchemy поля в таблице описывают:

class SimulatorConfig(BaseConfig):
    random_seed = Column(Integer, default=33, help="Random seed for simulation")
    matlab_config_path = Column(String, short_name="cp", default=None, help="Path to MATLAB config file for MATLAB part of simulation")
    ...

Из этого потом можно хоть argparse сгенерить, хоть ещё чего. Хоть непосредственно в коде прописать нужные поля – и радоваться жизни.

Можно самому склепать подобное, только это надо метаклассы осиливать, заморачиваться, и вообще велосипедизмом заниматься.

 ,

Yak ()

bokeh: сервер перестаёт обновлять картинку после 1 секунды, как это забороть?

Джентельмены! Пытаюсь я заставить bokeh не просто рисовать графики в браузере, а и обновлять их в этом же окошке. Запускаю такой отладочный bokeh-сервер c помощью bokeh serve, создаю сессию, начинаю что-то делать, но через 1 секунду картинка в браузере перестаёт обновляться. Хотя сессия, пишут, вполне живая.

Что же я делаю не так?

Вот пример кода, если что:

import time

from bokeh.plotting import figure
from bokeh.client import pull_session
from bokeh.models import ColumnDataSource

# Please run "bokeh serve" in console before start!

session = pull_session()

x_array = []
y_array = []

datasource = ColumnDataSource(data={"x": x_array, "y": y_array})

fig = figure(title=("Total TBS (in bits) for %s"), plot_height=300, plot_width=800)

line = fig.line(x="x", y="y", source=datasource, line_width=2, legend=("Super dooper line from hell"))

session.show(fig)

for i in range(10000):

    # Plot on the screen stops updating after 1 second. What am I doing wrong?
    x_array.append(len(x_array))
    y_array.append(x_array[-1] ** 2)
    datasource.data = {"x": x_array, "y": y_array}


    print(i)

 

Yak ()

Python: чем в 2019 году модно графики рисовать, чтобы исполнение не блокировалось?

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

Есть у меня Python-скрипт, моделирующий LTE-канал. И нужно мне на каждой итерации (примерно раз в минуту) отрисовывать график текущей пропускной способности.

При этом не просто отрисовывать график, а так, чтобы не блокировать исполнение собственно расчётного кода. И при этом чтобы окошко с графиком реагировало на изменение размеров окна, сворачивание-разворачивание и иже с ним (то бишь, чтобы у него работала очередь сообщений от GUI).

Классический способ сделать такое – завести QApplication, встроить туда matplotlib-канвас, вынести исполнение расчётного кода в отдельный QThread, обернуть его в QObject и заставить пересылать данные с помощью сигналов в поток с гуями. Но что-то мне подсказывает, что в 2019 году есть способы попроще.

Что присоветуете?

 , ,

Yak ()

Разыскивается веб-разработчик со знанием Kotlin (100-150K)

Команда Square Nest Research Labs ищет веб-разработчика со знанием Kotlin на проект.

  • Режим работы — удалённый.
  • Ориентировочная длительность — 3 месяца с возможностью продления.
  • Денег будут платить 100-150K за месяц.

Что надо будет делать?

  • Текущий проект — корпоративный веб-сайт.
  • Вам предстоит разрабатывать как фронтенд-, так и бэкенд-часть.
  • Часть кода уже написана (использовался Kotlin / KotlinJavaScript).

Какие задачи будут в дальнейшем?

  • разработка веб-приложений с развитым UI;
  • прототипы графических приложений под другие платформы (в частности, под Android и Windows).

Что требуется от вас?

  • Уметь разрабатывать удобные и красивые веб-интерфейсы, которыми смогут пользоваться живые люди. Развитое чувство прекрасного — только в плюс.
  • Знать современные JS-библиотеки (Angular / React / vue / etc — хотя бы что-нибудь из них).
  • Уметь писать читаемый код.
  • Уметь в командную разработку: как минимум, пользоваться системами контроля версий (мы используем Git) и системами управления задачами (у нас стоит JIRA).
  • Технический английский (больше письменный, чем устный).
  • Знание Kotlin — огромный плюс, на нём у многое написано, и мы хотим пользоваться им и дальше.
  • Знание Python — тоже плюс, у нас есть задачи и под него.

Если заинтересовало — пишите на почту: felix-neko@list.ru

 , ,

Yak ()

Kotlin не только под Android? Веб-сайты и дескопщина тоже рулят?

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

Имею спросить: а нет ли здесь Kotlin-программистов? И не приходилось ли вам на нём писать веб-приложения или десктопные GUI? А если приходилось, то какими фреймворками вы пользовались - и каковы остались впечатления?

P.S. Сам я в Kotlin ни бум-бум, ибо я, как потомственный питонщик, всё писал на Python'е. Если надо GUI для десктопного приложения, то писал на PyQt. Если надо веб-интерфейс - то бэкенд на Django и простенький фронтенд на старом добром Bootstrap'е. А мобильных GUI дотоле вообще никак не писал: надобности не было.

 

Yak ()

Ещё одна пичалька с Python3 и строками в неправильных кодировках...

Есть у меня, братцы, str-строка:

'ïàðàìåòðû îòîáðàæåíèÿ êîíêðåòíîãî çíàêà ïî øàáëîíó'

Хочу я конвертнуть её в нормальную человеческую str-строку c русским текстом. Как бы мне такое сделать?

P.S. http://www.online-decoder.com/ru говорит, что там надо проделать ISO-8859-1 --> CP-1251, если что.

 , , ,

Yak ()

А посоветуйте ГИС-движок с поддержкой офлайн-карт?

Собираюсь я писать Qt-приложение. И нужен мне для него хороший ГИС-движок. Не сможете ли вы мне что-нибудь присоветовать?

P.S. Если у него будет ещё и API под PyQt или возможность встраивания как QML-компонента, будет просто шикарно.

 ,

Yak ()

А что бы почитать по Clang и LibTooling?

Хочу я, братцы, научиться пользоваться LibTooling из состава Clang. С тем, чтобы уметь парсить код на C++, проверять, какие классы там объявлены, какие методы у них есть, а также какие у тех методов сигнатуры.

Не посоветует ли мне прогрессивная общественность каких-нибудь хороших туториалов по Clang вообще и LibTooling в частности?

P.S. Делать это нужно будет из графической софтины, написанной на Qt. Поэтому штатные Clang'овские средства для разбора командной строки могут мне не совсем подходить: хотелось бы, чтобы пути к файлам и настройки в тех примерах задавали напрямую в коде.

 

Yak ()

А в чём крутые парни рисуют схемки по физике с геометрией?

https://i.ytimg.com/vi/NVPDTMt9yA0/maxresdefault.jpg  — вот такие вот схемки, например?

 

Yak ()

Разыскивается преподаватель MATLAB (Москва, 40-60K)

Всем привет!

Наши товарищи ищут преподавателя MATLAB, который будет вести практикумы у них на предприятии.

Или даже нескольких, чтобы раскрывать разные темы (так что даже если вы знаете, например, только обработку изображений, но хорошо, то это всё равно это будет интересно).

О главном

  • Платить будут 40-60 тысяч в месяц.
  • Находятся в районе м. Кунцевской.
  • График занятий — 2 раза в неделю по 3-4 часа, по вечерам.
  • Практический опыт применения MATLAB — обязателен. Опыт преподавания тоже приветствуется.
  • Занятия начнутся в 2018 году.

Как будут проходить занятия?

  • Занятия будут проходить в маленьких группах (3-5 человек), ориентировочно в таком формате:
  • разобрать присланные домашки (вам их должны будут залить в репозиторий);
  • прочитать кусок теории к занятию (слайды + доска);
  • показать нужный тулбокс вживую, на большом экране;
  • раздать студентам задачи для выполнения на месте и помочь, если что-то не работает;
  • выдать новые домашки.

Примерный список тем, которые хочется осветить — ниже:

Введение в MATLAB:
• возможности IDE (включая работу с системами контроля версий);
• основные конструкции языка MATLAB;
• принятый стиль кодирования;
• ключевые функции для работы с многомерными данными.;
• импорт и экспорт данных;
• визуализация (разнообразные виды 2D- и 3D-графиков и их настройки) в том числе для динамически изменяющихся данных;
• создание простейших интерактивных приложений c графическим интерфейсом.

Базовая математика:
• специальные функции
• линейная алгебра
• случайные числа
• интерполяция данных
• фурье-анализ

Simulink, его возможности и сфера применения.

Обзор тулбоксов:
• Signal Processing Toolbox;
• Матстатистика, оптимизация, машинное обучение:
• Optimization Toolbox;
• Curve Fitting Toolbox;
• Statistics and Machine Learning Toolbox;
• Neural Network Toolbox;

Обработка изображений:
• Computer Vision System Toolbox;
• Image Processing Toolbox;

Связь с контрольно-измерительной аппаратурой:
• Data Acquisition Toolbox;
• Instrument Control Toolbox;
• Control System Toolbox (синтез PID-регуляторов и других систем управления);

Экспорт и сборка кода на C/C++ с помощью MATLAB Coder
Синтез и верификация HDL-кода (MATLAB HDL Coder, MATLAB HDL Verifier)

Если заинтересовало — пишите нам на мыло: mipt-dc@yandex.ru

 ,

Yak ()

PROJ.4: нужна проекция вроде aeqd, только в полярных координатах

Есть у меня, братцы, geotiffка. В самой обычной проекции latlon (отсчёты по широте и долготе). Хочу я перепроецировать её на плоскость, касательную к земному эллипсоиду, чтобы делать всякие дальнейшие вычисления (в частности, посчитать профиль высоты с учётом кривизны Земли).

Для того я использовал перепроецирование в проекцию aeqd. Но она, зараза, выдаёт данные с отсчётами по декартовой сетке (x и y на касательной плоскости). А мне нужны будут отсчёты по сетке полярной (расстояние и азимут на касательной плоскости).

Собственно, имею спросить: а нет ли подходящей проекции, которая была бы такой же, как aeqd (выбрал точку касания Земли, строй касательную плоскость и проецируй на неё на здоровье) — но данные представляла в полярных координатах?

P.S. Перепроецирую с помощью rasterio, там коды для проекций такие же, как и в PROJ.4

 

Yak ()

Как ловчее интерполировать данные на большой криволинейной сетке (6K x 6K)?

Есть у меня данные, вытащенные из geotiffки: x_mesh, y_mesh, z_mesh. Это данные уже в декартовых координатах, причём z_mesh — это высота не над уровнем моря, а от некоей касательной плоскости к Земле, можно их рисовать с помощью matplotlib.pyplot.pcolormesh:

http://i.zlowiki.ru/170918_e4b6b2da.png

Всё бы круто, однако хочу я получить значения z в произвольных точках (например, туда, куда я ткну мышкой — или на отрезке между центром карты и кликом мышкой). Для этого я попытался подключить интерполятор из scipy:

interpolator = scipy.interpolate.interp2d(x_mesh, y_mesh, z_mesh)

Но не тут-то было, мне говорят, что точек слишком много: OverflowError: Too many data points to interpolate

Хотя картинка всего 6001x6001px, да и сам pcolormesh как-то значения между узлами интерполирует, при увеличении-то...

Имею спросить: а как же мне эту сволочь интерполировать?

 

Yak ()

GDAL: как из содержимого Geotiffки получить XYZ-координаты?

I want to get an XYZ-like surface from a Geotiff with GDAL in Python. Собственно, делаю я вот что:

1) Качаю Geotiff отсюда: http://srtm.csi.cgiar.org/SELECTION/inputCoord.asp

2) Пишу вот такой код:

from osgeo import ogr, osr, gdal

file_path = os.path.join(os.path.dirname("/home/yak/dump/srtm_62_05.tif")
gdal_data = gdal.Open(file_path, gdal.GA_ReadOnly)
raster_band = gdal_data.GetRasterBand(1)
raster = raster_band.ReadAsArray()

Всё круто, только, во-первых, ни разу не понятно, в каких попугаях измеряется возвышение (написано, что в метрах, но относительно каких единиц? Да и в тех местах, где море, стоят какие-то страшные -32000 с гаком) — а во-вторых, мне бы это сконвертировать в обычные декартовы XYZ-координаты.

Собственно, имею спросить: а как бы это проделать-то? Явно же есть какие-то стандартные средства в самом GDAL?

 ,

Yak ()

Разыскивается Python-разработчик (NumPy / SciPy), 120-150K

Дизайн-центр ФРТК МФТИ ищет ещё одного Python-разработчика (NumPy/SciPy).

О главном

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

Что за проект?

  • Проект – библиотека алгоритмов для моделирования РЛС.
  • Основной язык разработки – Python, с использованием NumPy / SciPy. Отдельные части написаны на C++.
  • Часть вычислений будет выполняться на dask-кластере.

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

  • Опыт программирования на Python, знание NumPy и SciPy.
  • Знание цифровой обработки сигналов (DSP) и математики вообще (особенно линейной алгебры и матстатистики).
  • Хороший технический английский.
  • Опыт в обработке изображений – приветствется.
  • Опыт именно в радиолокации тоже приветствуется, но не обязателен: если надо, научим = )

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

  • Участвовать в разработке библиотеки: реализовывать, отлаживать и оптимизировать известные алгоритмы обработки радиолокационных данных.
  • Интегрировать сторонние решения, в том числе написанные на С/C++.

Что ещё от нас?

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

Подробнее о наших радиолокационных проектах — по ссылке: http://miptdesigncenter.tilda.ws/radars

Если интересно — пишите на почту: mipt-dc@yandex.ru

 , , ,

Yak ()

Нужна доработка LaTeX-пакета для генерации отчёта по ГОСТу (open-source)

Всем привет! Нам нужно доработать один из пакетов LaTeX: (https://github.com/latex-g7-32/latex-g7-32).

Есть немножко денег (около 10K), плюс проектом будет можно и нужно поделиться с окружающими. В идеале — вообще сделать Pull Request в основной репозиторий (желательно так, чтобы там его приняли = )

Кто хочет помочь прогрессивной общественности писать отчёты по-человечески — вот мои контакты:

  • Skype: nuclear_carlson
  • Мыло: nuclear_carlson@ngs.ru

P.S. Увы, сам сделать не могу: плохо в LaTeXе разбираюсь, только как пользователь.

 

Yak ()

PyQt-программист (Москва, МФТИ): 110-150 т.р.

Всем привет!

Наша команда разрабатывает софт для моделирования радиолокаторов, в связи с чем нам требуется опытный GUI-программист. Вилка — 110-150K чистыми.

Немного о проекте:

Наш проект — САПР для моделирования радиолокаторов с Simulink-подобным интерфейсом (пользователь собирает граф обработки данных из параметризуемых блоков, соединяет их порты между собой и запускает расчёт). Посмотреть, как это делается, можно на примере RapidMiner.

Задачи будут довольно сложными, хотя и интересными: зачастую из области 2D-графики, визуализации данных, тонкой логики взаимодействия с пользователем и др.

Проект новый, так что legacy-кода почти не будет.

Ваши будущие задачи:

  • Проектирование и реализация графического интерфейса
  • Опционально — взаимодействие с привлекаемыми специалистами (дизайнером, иллюстратором, мануальным тестировщиком и пр.)

Для нас важно:

  • Опыт разработки на Qt5 / PyQt5
  • Знание Python либо стойкое желание его изучить
  • Умение делать красивый и удобный GUI для сложной логики.
  • Умение писать юнит-тесты к своему GUI.
  • Хорошее ООП и умение писать понятный код.
  • Культура командной разработки: контроль версий, управление задачами и т.п.

Также будет полезно:

  • Уметь применять QML / QtQuick.
  • Понимать технический английский.
  • Если вы работали с ГИС-системами (например, ArcGIS Runtime) — это плюс.
  • Если вы работали с движками 3D-графики / 3D-визуализации данных (или сами что-нибудь писали на OpenGL) — это тоже плюс.

Наш офис:

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

Мы предлагаем:

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

P.S.

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

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

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

 , ,

Yak ()

SIP: а как происходит преобразование типов данных между C++ и Python?

Есть у меня C++ный класс. Хочу я сделать для него SIP-обёртку, чтобы дёргать его методы из Python'а.

Однако никак не могу найти никакой таблички соответствия между типами Python и типами C++. А таки хочется понять, в какой питоний тип будет сконвертирован какой С++ный аргумент.

Не сталкивался ли кто уже с такой проблемой?

 , ,

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 ()

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