{"id":23397796,"url":"https://github.com/schonfinkel/horatius","last_synced_at":"2026-04-17T10:31:33.173Z","repository":{"id":156915607,"uuid":"209698885","full_name":"schonfinkel/Horatius","owner":"schonfinkel","description":"Part of an interview process with the .NET stack, done the functional (first) way.","archived":false,"fork":false,"pushed_at":"2019-09-25T01:04:31.000Z","size":44,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-10T07:45:17.232Z","etag":null,"topics":["docker","fsharp","nix"],"latest_commit_sha":null,"homepage":"","language":"F#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/schonfinkel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-09-20T03:37:31.000Z","updated_at":"2021-09-19T01:00:38.000Z","dependencies_parsed_at":null,"dependency_job_id":"9219f97f-4a2c-4047-9dca-689aade6b89f","html_url":"https://github.com/schonfinkel/Horatius","commit_stats":null,"previous_names":["schonfinkel/horatius","mtrsk/horatius"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/schonfinkel/Horatius","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schonfinkel%2FHoratius","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schonfinkel%2FHoratius/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schonfinkel%2FHoratius/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schonfinkel%2FHoratius/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/schonfinkel","download_url":"https://codeload.github.com/schonfinkel/Horatius/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schonfinkel%2FHoratius/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31925311,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-17T10:19:20.377Z","status":"ssl_error","status_checked_at":"2026-04-17T10:19:18.682Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","fsharp","nix"],"created_at":"2024-12-22T08:36:53.497Z","updated_at":"2026-04-17T10:31:33.148Z","avatar_url":"https://github.com/schonfinkel.png","language":"F#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Horatius\n\n[![Build Status](https://travis-ci.org/mtrsk/Horatius.svg?branch=master)](https://travis-ci.org/mtrsk/Horatius)\n[![Build Status](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fmtrsk%2FHoratius%2Fbadge%3Fref%3Dmaster\u0026style=flat)](https://actions-badge.atrox.dev/mtrsk/Horatius/goto?ref=master)\n\n```\n     Then out spake brave Horatius,\n          The Captain of the Gate:\n     \"To every man upon this earth\n          Death cometh soon or late.\n     And how can man die better\n          Than facing fearful odds,\n     For the ashes of his fathers,\n          And the temples of his gods,\n```\n[Lays of Ancient Rome - Horatius, XXVII.](https://en.wikisource.org/wiki/Lays_of_Ancient_Rome)\n\n## Structure\n\n```\n├── Dockerfile\n├── files\n│   ├── matriculasSemDV.txt\n│   └── matriculasParaVerificar.txt\n├── Horatius.sln\n├── nix\n│   ├── .nixpkgs-version.json\n│   └── pinned-nixpkgs.nix\n├── README.md\n├── shell.nix\n└── src\n    ├── App\n    │   ├── App.fsproj\n    │   ├── AppView.fs\n    │   ├── Lib.fs\n    │   └── Main.fs\n    ├── CLI\n    │   ├── CLI.fsproj\n    │   └── Program.fs\n    ├── Verification\n    │   ├── Library.fs\n    │   └── Verification.fsproj\n    └── Verification.Tests\n        ├── Program.fs\n        ├── Tests.fs\n        └── Verification.Tests.fsproj\n```\n\n### Source Code\n\n* Verification: A classlib which implements the main components of the project.\n* Verification.Test: Runs XUnit tests for the `Verification` classlib.\n* CLI: A console application that runs the `Verification` on both the `matriculasSemDV.txt` and `matriculasParaVerificar.txt`.\n* App: The GUI Application, mostly boilerplate. Created with the [AvaloniaUI](https://github.com/AvaloniaUI/Avalonia) and [it's wrapper](https://github.com/JaggerJo/Avalonia.FuncUI) for Elm-like MVU GUIs in F#.\n\n#### Running the project\n\n* Tests\n    ```sh\n    $ cd src/Verification.Tests\n    $ dotnet test\n    ```\n\n* CLI\n    ```sh\n    $ cd src/CLI\n    $ dotnet build\n    $ dotnet run\n    USAGE: horatius [--help] [--all]\n\n    OPTIONS:\n\n        --all                 Parses both files and creates new ones.\n        --help                display this list of options.\n    $ dotnet run --all\n    Loading File: ../../files/matriculasSemDV.txt\n    File written in the current directory\n    Loading File: ../../files/matriculasParaVerificar.txt\n    File written in the current directory\n    ```\n\n* GUI\n    ```sh\n    $ cd src/App\n    $ dotnet build\n    $ dotnet run\n    ```\n\u003cimg src=\"gui.png\" alt=\"GUI\" style=\"display: block; margin: 0 auto\" /\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fschonfinkel%2Fhoratius","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fschonfinkel%2Fhoratius","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fschonfinkel%2Fhoratius/lists"}