<feed xmlns='http://www.w3.org/2005/Atom'>
<title>sunfish.git/opendc-common/src/main/kotlin/org, branch master</title>
<subtitle>The OpenDC BSc thesis repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.denounce.ai/sunfish.git/'/>
<entry>
<title>feat: managed to retrieve metric-by-metric from Redis in real time</title>
<updated>2026-06-17T16:08:56+00:00</updated>
<author>
<name>mjkwiatkowski</name>
<email>mati.rewa@gmail.com</email>
</author>
<published>2026-06-17T16:08:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.denounce.ai/sunfish.git/commit/?id=4562f52c9b540944200b33d4ffbd60b3cbc5ee79'/>
<id>4562f52c9b540944200b33d4ffbd60b3cbc5ee79</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>feat: migrated the past project to the sunfish repo</title>
<updated>2026-06-15T21:48:44+00:00</updated>
<author>
<name>mjkwiatkowski</name>
<email>mati.rewa@gmail.com</email>
</author>
<published>2026-06-15T21:48:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.denounce.ai/sunfish.git/commit/?id=0731bd58889df127ef87aba2590d505d79e6646f'/>
<id>0731bd58889df127ef87aba2590d505d79e6646f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Unit System v2 (#243)</title>
<updated>2025-03-18T09:31:21+00:00</updated>
<author>
<name>Alessio Leonardo Tomei</name>
<email>122273875+T0mexX@users.noreply.github.com</email>
</author>
<published>2025-03-18T09:31:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.denounce.ai/sunfish.git/commit/?id=46ba81a45f7cb10c7f870bbf6946a46207ee353c'/>
<id>46ba81a45f7cb10c7f870bbf6946a46207ee353c</id>
<content type='text'>
* Separated `Time` unit into `TimeDelta` and `TimeStamp` + small fixes

Addition and subtruction between `Timestamp`s is not allowed, but any
other `Unit` operation/comparison is. `TimeDelta`s can be
added/subtructed to/form `Timestamp`s.

Deserialization of `Timestamp`:
- `Number` -&gt; interpreted as millis from Epoch
- `Instant` (string representation) -&gt; converted to Timestamp
- `Duration` (string representation) -&gt; interpreted as duration since
  Epoch (warn msg is logged)

Deserialization of `TimeDelta` is the same as `Time` was before, with the
diference that when an `Instant` is converted to an timedelta since Epoch
a warning message is logged.

* Unit System v2

- Merged `BoundedPercentage` and `UnboundedPercentage`
- Overrided all operation defined in `Unit` in all subclasses to avoid
  as much as possible value classes being boxed in bytecode. If units are used as generics
  (hence also functions defined in Unit&lt;T&gt;) they are boxed (as double would if used as generic).
- All units companions now subclass `UnitId`, and can be used as keys
  (e.g `Map&lt;UnitId, idk&gt;`), while offering `max` `min` and `zero`
  methods.
- Division between the same unit now returns `Percentage`
- Added `Iterable&lt;T&gt;.averageOfUnitOrNull(selector (T) -&gt; &lt;specific unit&gt;)`
- `ifNeg0ThenPos0()` now is optional and not invoked on every
  constructor
- Now methods in `Unit&lt;T&gt;` are all abstract, forcing override and avoid
  boxing in some cases
- Added `@UnintendedOperation` and `UnitOperationException` for methods
  that must be defined but are not intended for use (e.g. `Timestamp` +
  `Timestamp`)</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Separated `Time` unit into `TimeDelta` and `TimeStamp` + small fixes

Addition and subtruction between `Timestamp`s is not allowed, but any
other `Unit` operation/comparison is. `TimeDelta`s can be
added/subtructed to/form `Timestamp`s.

Deserialization of `Timestamp`:
- `Number` -&gt; interpreted as millis from Epoch
- `Instant` (string representation) -&gt; converted to Timestamp
- `Duration` (string representation) -&gt; interpreted as duration since
  Epoch (warn msg is logged)

Deserialization of `TimeDelta` is the same as `Time` was before, with the
diference that when an `Instant` is converted to an timedelta since Epoch
a warning message is logged.

* Unit System v2

- Merged `BoundedPercentage` and `UnboundedPercentage`
- Overrided all operation defined in `Unit` in all subclasses to avoid
  as much as possible value classes being boxed in bytecode. If units are used as generics
  (hence also functions defined in Unit&lt;T&gt;) they are boxed (as double would if used as generic).
- All units companions now subclass `UnitId`, and can be used as keys
  (e.g `Map&lt;UnitId, idk&gt;`), while offering `max` `min` and `zero`
  methods.
- Division between the same unit now returns `Percentage`
- Added `Iterable&lt;T&gt;.averageOfUnitOrNull(selector (T) -&gt; &lt;specific unit&gt;)`
- `ifNeg0ThenPos0()` now is optional and not invoked on every
  constructor
- Now methods in `Unit&lt;T&gt;` are all abstract, forcing override and avoid
  boxing in some cases
- Added `@UnintendedOperation` and `UnitOperationException` for methods
  that must be defined but are not intended for use (e.g. `Timestamp` +
  `Timestamp`)</pre>
</div>
</content>
</entry>
<entry>
<title>Refactored exporters. Allows output column selection in scenario (#241) (#241)</title>
<updated>2024-08-22T14:45:22+00:00</updated>
<author>
<name>Alessio Leonardo Tomei</name>
<email>122273875+T0mexX@users.noreply.github.com</email>
</author>
<published>2024-08-22T14:45:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.denounce.ai/sunfish.git/commit/?id=f9ffdfb29a3f08ac11e739494e754c81ef4f5157'/>
<id>f9ffdfb29a3f08ac11e739494e754c81ef4f5157</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Added Unit of measurament system with new deserialization (#242)</title>
<updated>2024-08-22T12:40:57+00:00</updated>
<author>
<name>Alessio Leonardo Tomei</name>
<email>122273875+T0mexX@users.noreply.github.com</email>
</author>
<published>2024-08-22T12:40:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.denounce.ai/sunfish.git/commit/?id=4f98fb2bf8204f6af52cd6eeb3313d21c6ca95bc'/>
<id>4f98fb2bf8204f6af52cd6eeb3313d21c6ca95bc</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Updated package versions, updated web server tests. (#207)</title>
<updated>2024-03-05T12:23:57+00:00</updated>
<author>
<name>Dante Niewenhuis</name>
<email>d.niewenhuis@hotmail.com</email>
</author>
<published>2024-03-05T12:23:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.denounce.ai/sunfish.git/commit/?id=5864cbcbfe2eb8c36ca05c3a39c7e5916aeecaec'/>
<id>5864cbcbfe2eb8c36ca05c3a39c7e5916aeecaec</id>
<content type='text'>
* Updated all package versions including kotlin. Updated all web-server tests to run.

* Changed the java version of the tests. OpenDC now only supports java 19.

* small update

* test update

* new update

* updated docker version to 19

* updated docker version to 19</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Updated all package versions including kotlin. Updated all web-server tests to run.

* Changed the java version of the tests. OpenDC now only supports java 19.

* small update

* test update

* new update

* updated docker version to 19

* updated docker version to 19</pre>
</div>
</content>
</entry>
<entry>
<title>refactor: Replace use of CoroutineContext by Dispatcher</title>
<updated>2022-11-13T17:42:01+00:00</updated>
<author>
<name>Fabian Mastenbroek</name>
<email>mail.fabianm@gmail.com</email>
</author>
<published>2022-11-09T21:59:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.denounce.ai/sunfish.git/commit/?id=fb2672afb2d8236d5291cd028196c99d8e4d47f1'/>
<id>fb2672afb2d8236d5291cd028196c99d8e4d47f1</id>
<content type='text'>
This change replaces the use of `CoroutineContext` for passing the
`SimulationDispatcher` across the different modules of OpenDC by the
lightweight `Dispatcher` interface of the OpenDC common module.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change replaces the use of `CoroutineContext` for passing the
`SimulationDispatcher` across the different modules of OpenDC by the
lightweight `Dispatcher` interface of the OpenDC common module.
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor: Use InstantSource as time source</title>
<updated>2022-11-13T15:24:47+00:00</updated>
<author>
<name>Fabian Mastenbroek</name>
<email>mail.fabianm@gmail.com</email>
</author>
<published>2022-11-09T17:25:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.denounce.ai/sunfish.git/commit/?id=7a4b2c45a9926de59754b1d7219159656eea6e6d'/>
<id>7a4b2c45a9926de59754b1d7219159656eea6e6d</id>
<content type='text'>
This change updates the modules of OpenDC to always accept
the `InstantSource` interface as source of time. Previously we used
`java.time.Clock`, but this class is bound to a time zone which does not
make sense for our use-cases.

Since `java.time.Clock` implements `java.time.InstantSource`, it can be
used in places that require an `InstantSource` as parameter. Conversion
from `InstantSource` to `Clock` is also possible by invoking
`InstantSource#withZone`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change updates the modules of OpenDC to always accept
the `InstantSource` interface as source of time. Previously we used
`java.time.Clock`, but this class is bound to a time zone which does not
make sense for our use-cases.

Since `java.time.Clock` implements `java.time.InstantSource`, it can be
used in places that require an `InstantSource` as parameter. Conversion
from `InstantSource` to `Clock` is also possible by invoking
`InstantSource#withZone`.
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(common): Add compatibility with Kotlin coroutines</title>
<updated>2022-11-13T15:24:46+00:00</updated>
<author>
<name>Fabian Mastenbroek</name>
<email>mail.fabianm@gmail.com</email>
</author>
<published>2022-11-09T16:44:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.denounce.ai/sunfish.git/commit/?id=c22d744464f91eaa5f1aabee408351e864f36f1d'/>
<id>c22d744464f91eaa5f1aabee408351e864f36f1d</id>
<content type='text'>
This change adds support for converting a `Dispatcher` implementation
into a `CoroutineDispatcher` instance.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change adds support for converting a `Dispatcher` implementation
into a `CoroutineDispatcher` instance.
</pre>
</div>
</content>
</entry>
<entry>
<title>style: Eliminate use of wildcard imports</title>
<updated>2022-10-06T10:51:27+00:00</updated>
<author>
<name>Fabian Mastenbroek</name>
<email>mail.fabianm@gmail.com</email>
</author>
<published>2022-10-06T10:51:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.denounce.ai/sunfish.git/commit/?id=402a8f55342c4565431c2a2e7287a70592f3fe33'/>
<id>402a8f55342c4565431c2a2e7287a70592f3fe33</id>
<content type='text'>
This change updates the repository to remove the use of wildcard imports
everywhere. Wildcard imports are not allowed by default by Ktlint as
well as Google's Java style guide.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change updates the repository to remove the use of wildcard imports
everywhere. Wildcard imports are not allowed by default by Ktlint as
well as Google's Java style guide.
</pre>
</div>
</content>
</entry>
</feed>
