Update consulting and magprog

This commit is contained in:
Alexander Nozik 2022-06-15 14:53:36 +03:00
parent 8bc8f5348d
commit ba883b5b11
No known key found for this signature in database
GPG Key ID: F7FCF2DD25C71357
10 changed files with 166 additions and 46 deletions

View File

@ -1,37 +0,0 @@
---
type: page
title: Consulting
language: en
---
## We do
The centre provides a number of commercial services:
* Developing analysis algorithms and platforms for various scientific and industrial application.
* Scientific expert activity (analyzing existing software, proposing ways to improve it).
* Architecture for scientific applications.
* Scientific open source project development and support.
<hr>
## How our work is different
Scientific software is different. You can't just make it by requirements because creating requirements is a major part of the job.
We work together with a customer in a tight collaboration to better understand the problem and provide the best way to solve it. We do research. Our team consist not of programmers, but of scientists so when deep understanding is important, it is our work.
On the other hand, our team have a lot of expertise in industrial programming, so we do not do only research code in notebooks, we provide **MVP** or **product** grade development.
<hr>
## Our limitations
Our work is focused on research software. We do not have facilities to provide full-scale industrial development and deployment. But we have qualification and desire to work with technical specialists inside companies to integrate our research expertise with company industrial capabilities.
<hr>
## How to start?
Please contact us via email below. We will discuss your problem for free and tell you if we can do it and how much will it cost. Since we do research, each task needs individual approach and estimation. We provide discounts for open research and open source software development.
email: <a href="mailto:&#114;&#101;&#115;&#101;&#097;&#114;&#099;&#104;&#064;&#115;&#099;&#105;&#112;&#114;&#111;&#103;&#046;&#099;&#101;&#110;&#116;&#101;&#114;">&#114;&#101;&#115;&#101;&#097;&#114;&#099;&#104;&#064;&#115;&#099;&#105;&#112;&#114;&#111;&#103;&#046;&#099;&#101;&#110;&#116;&#101;&#114;</a>

View File

@ -0,0 +1,16 @@
---
type: page
title: Development
language: en
---
## Infrastructure for NICA project
Together with [mipt-npm](https://npm.mipt.ru) laboratory we are working on developing infrastructure services for [NICA](https://nica.jinr.ru/) project. Those services include:
* Web-based data visualization.
* Web services for supercomputer task execution scenarios.
* Big data access and indexing services.
## Controls systems integration for [BabyIAXO](https://iaxo.desy.de/) experiment
Integration of different SCADA systems and development of device servers.

View File

@ -0,0 +1,14 @@
---
type: page
title: Expert activity
language: en
---
## Software design consultations for Tavrida Electric
Design of SCADA system, asynchronous message passing and consultation on Kotlin language.
## Library and framework design for SkolTech
Design of libraries and frameworks for applied research (machine learning).

View File

@ -0,0 +1,73 @@
---
type: page
title: Consulting
language: en
---
## Where does science begin?
In recent years, the rate of introduction of scientific developments into the industrial and even domestic spheres has accelerated significantly. No more waiting for many years before what was the cutting edge of science is put into practice. Such a rapid introduction also imposes its own limitations - close cooperation between scientists and industry became quite important.
In any industry, and especially in the science-intensive one, a clear technical requirements are of great importance. In order to do proper technical requirements one needs to have extensive knowledge. Our team includes specialists engaged in research in a variety of scientific areas - from elementary particle physics to biotechnology and computer science. This makes it easy for our experienced, highly qualified specialists to find the optimal solution even in the subject area. Regardless of the subject area, we work closely with the customer to better understand the task and its full-fledged solution.
Our research, which primarily includes open source projects, has already been appreciated by the international scientific community.
## We do
<section id="one" class="tiles">
<article>
<span class="image">
<img src="images/pic03.jpg" alt="" />
</span>
<header class="major">
<h3><a href="consulting/research" class="link">Research</a></h3>
<p>Analytics, prototyping and research for fundamental science and industry.</p>
</header>
</article>
<article>
<span class="image">
<img src="images/pic04.jpg" alt="" />
</span>
<header class="major">
<h3><a href="consulting/expert" class="link">Expert activity</a></h3>
<p>Analysis and improvement of existing scientific software and projects.</p>
</header>
</article>
<article>
<span class="image">
<img src="images/pic05.jpg" alt="" />
</span>
<header class="major">
<h3><a>Architecture</a></h3>
<p>Design the architecture for scientific and technological applications.</p>
</header>
</article>
<article>
<span class="image">
<img src="images/pic06.jpg" alt="" />
</span>
<header class="major">
<h3><a href="consulting/development" class="link">Development</a></h3>
<p>The development and support of open-source and in-house solutions( libraries, frameworks and end-user application).</p>
</header>
</article>
</section>
<hr>
## How our team works
The primary feature of our work is research. We do not just do what customer tells us to do. We conduct a full-scale research and devise a way (algorithm, technology, etc), which would produce the best results.
Our team is deeply engaged in [education activity](/magprog). It allows us to invite the most promising young researchers and developers to work with us both on part-time and full-time basis and get a constant feedback on new technologies and methods. The connection to fundamental science allows to be aware of the latest technological and methodical advances.
Another unique feature of our work is that our team have experience both in research and industrial IT. That means that we not only produce "research code" and prototypes, but also able to provide **MVP** or even small-scale **product** development.
<hr>
## How to start?
Please contact us via email below. We will discuss your problem for free and tell you if we can do it and how much will it cost. Since we do research, each task needs individual approach and estimation. We provide discounts for open research and open source software development.
email: <a href="mailto:&#114;&#101;&#115;&#101;&#097;&#114;&#099;&#104;&#064;&#115;&#099;&#105;&#112;&#114;&#111;&#103;&#046;&#099;&#101;&#110;&#116;&#101;&#114;">&#114;&#101;&#115;&#101;&#097;&#114;&#099;&#104;&#064;&#115;&#099;&#105;&#112;&#114;&#111;&#103;&#046;&#099;&#101;&#110;&#116;&#101;&#114;</a>

View File

@ -0,0 +1,13 @@
---
type: page
title: Research
language: en
---
## Analysis of oil wells monitoring data for Aramco Innovations
Classical analysis of temperature data from simulation and real-life measurements. Full-cycle research from technical requirements and scientific overview to software integration.
## Public and fundamental research
See more at [research page](/research).

View File

@ -7,7 +7,7 @@ language: ru
Чтобы принять участие в программе, необходимо:
* заполнить **[анкету](https://docs.google.com/forms/d/e/1FAIpQLSf9w0zxHY90zI5Mze5XRKHLO7gxa__bro8PDC2PlwsPfcMkfw/viewform?usp=sf_link)**. В анкете надо указать одного или нескольких научных руководителей, с которыми вы бы хотели работать;
* **до 30 июня** пройти собеседование с научными руководителями и согласовать предполагаемый план обучения;
* подать документы в магистратуру МФТИ согласно [правилам поступления](https://pk.mipt.ru/master/) (направление **ЛФИ "Математика и физика"** или **ФПМИ "Информатика"**). Если есть соглашение с научным руководителем, но не удалось пройти по конкурсу, то обучение с большой вероятностью будет оплачено нашими партнерами.
* подать документы в магистратуру МФТИ согласно [правилам поступления](https://pk.mipt.ru/master/) (направление **ЛФИ "Прикладная математика и физика"**, **ЛФИ "Ядерная физика и технологии"** или **ФПМИ "Информатика и вычислительная техника"**). Если есть соглашение с научным руководителем, но не удалось пройти по конкурсу, то обучение с большой вероятностью будет оплачено нашими партнерами.
<span class="badge badge-danger">ВАЖНО:</span> предварительное согласование с научным руководителем является **обязательным** для обучения в вузе.

View File

@ -5,6 +5,9 @@ section_title: О программе
language: ru
---
<iframe width="100%" height="315" src="https://www.youtube.com/embed/pniPs5ne294" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
Магистерская программа МФТИ **"Научное программное обеспечение"** (старое название: **"Разработка и применение программного обеспечения в физических исследованиях"**) создана при поддержке двух школ МФТИ: Физтех-школы физики и исследований им. Ландау ([ЛФИ](https://mipt.ru/education/departments/lpr/)), Физтех-школы прикладной математики и информатики ([ФПМИ](https://mipt.ru/education/departments/fpmi/)) а также ряда академических и промышленных партнеров. В ее основе лежит взаимодействие студента и [научного руководителя](#mentors).
Цель создания программы &mdash; объединение усилий ученых и программистов для разработки лучших компьютерных решений и применения этих решений в области фундаментальной и прикладной науки и инженерии.

View File

@ -349,6 +349,14 @@ internal fun Application.spcMaster(context: Context, dataPath: Path, prefix: Str
div("inner") {
nav {
ul {
li {
a(href = "/"){
i("fa fa-home") {
attributes["aria-hidden"] = "true"
}
+"SPC"
}
}
sections.forEach { section ->
li {
a(href = "#${section.id}") {

View File

@ -11,11 +11,12 @@ import io.ktor.server.routing.*
import kotlinx.html.*
import space.kscience.dataforge.context.Context
import space.kscience.dataforge.context.fetch
import space.kscience.dataforge.data.filterByType
import space.kscience.dataforge.data.forEach
import space.kscience.dataforge.meta.Meta
import space.kscience.dataforge.meta.get
import space.kscience.dataforge.meta.string
import space.kscience.dataforge.names.Name
import space.kscience.dataforge.names.parseAsName
import space.kscience.dataforge.names.*
import space.kscience.dataforge.values.string
import space.kscience.snark.*
import java.nio.file.Path
@ -71,7 +72,7 @@ context(PageContext) internal fun Route.spcPage(subRoute: String, meta: Meta, fr
context(PageContext) internal fun Route.spcPage(
subRoute: String,
dataPath: Name = subRoute.replace("/",".").parseAsName(),
dataPath: Name = subRoute.replace("/", ".").parseAsName(),
more: FlowContent.() -> Unit = {},
) {
val data = resolveHtml(dataPath)
@ -83,7 +84,26 @@ context(PageContext) internal fun Route.spcPage(
} else {
application.log.error("Content for page with path $dataPath not found")
}
}
/**
* Route a directory
*/
context(PageContext) internal fun Route.spcDirectory(
subRoute: String,
dataPath: Name = subRoute.replace("/", ".").parseAsName(),
) {
data.filterByType<HtmlFragment> { name, _ -> name.startsWith(dataPath) }.forEach { html ->
val pageName = if (html.name.lastOrNull()?.body == PageContext.INDEX_PAGE_NAME) {
html.name.cutLast()
} else {
html.name
}
spcPage(pageName.tokens.joinToString(separator = "/"), html.meta) {
htmlData(html)
}
}
}
context(PageContext) internal fun Route.spcPage(
@ -306,11 +326,11 @@ internal fun Application.spcHome(context: Context, rootPath: Path, prefix: Strin
}
}
spcPage("consulting")
spcDirectory("consulting")
spcPage("ru/consulting")
spcSpotlight("team") { _, m -> m["type"].string == "team" }
spcSpotlight("research") { _, m -> m["type"].string == "project" }
spcSpotlight("research") { name, m -> name.startsWith("projects".asName()) && m["type"].string == "project" }
}
}
}

View File

@ -11,11 +11,17 @@ import space.kscience.dataforge.meta.Meta
import space.kscience.dataforge.meta.get
import space.kscience.dataforge.meta.string
import space.kscience.dataforge.names.Name
import space.kscience.dataforge.names.plus
import space.kscience.dataforge.names.startsWith
import space.kscience.snark.PageContext.Companion.INDEX_PAGE_NAME
import java.nio.file.Path
data class PageContext(val path: String, val pageMeta: Meta, val data: DataSet<*>) {
val language: String? by pageMeta.string()
companion object {
const val INDEX_PAGE_NAME: String = "index"
}
}
/**
@ -23,13 +29,17 @@ data class PageContext(val path: String, val pageMeta: Meta, val data: DataSet<*
*/
fun PageContext.resolveRef(name: String): String = "${path.removeSuffix("/")}/$name"
fun PageContext.resolveRef(name: Name): String = "${path.removeSuffix("/")}/${name.tokens.joinToString ("/")}"
fun PageContext.resolveRef(name: Name): String = "${path.removeSuffix("/")}/${name.tokens.joinToString("/")}"
/**
* Resolve a Html builder by its full name
*/
fun PageContext.resolveHtml(name: Name): HtmlData? = data.getByType<HtmlFragment>(name)?.takeIf {
it.published //TODO add language confirmation
fun PageContext.resolveHtml(name: Name): HtmlData? {
val resolved = (data.getByType<HtmlFragment>(name) ?: data.getByType<HtmlFragment>(name + INDEX_PAGE_NAME))
return resolved?.takeIf {
it.published //TODO add language confirmation
}
}
/**