Es vai @Rihards Olups var uztaisīt jaunu repo priekš ta (jāizdomā nosaukums) un iedot Tev maintainer/collaborator tiesības.
Labi, uztaisi tad repo tur. Teorētiski nosaukums, ko pa ātro ieliku, ir "Osmalyzer" - es tur OSM datus parsēju sev pārsvarā, ko nevar normāli overpass uzrakstīt. Ceļi tur gandrīz vienīgais, ko esmu publiski izlicis rezultātu. Bet nu nosaukumu var arī vēlāk nomainīt, nav jau kritiski
8 messages were moved here from #general > LVC ceļi by HellMap.
https://github.com/OSMLatvija/Osmalyzer
Jābūt arī collaborator invite'am.
Jā, emailu saņēmu, linku nospiedu, vīrusu ieinstalēju, repo redzu
collaborator tas ir atsevišķi?
github valodā collaborator = maintainer?
Tu tagad esi collaborator ar maintainer tiesībām šim repo. Collaborator nozīmē ārpus organizācijas (teorētiski varam vēlāk pārtaisīt par member'u, bet vajag ar Rihardu to aprunāt, jo viņš ir "finansiāli atbildīgs" par organizāciju). Maintainer nozīmē, ka Tu vari ar to repo darīt visu izņemot "destructive" lietas.
Ielādēju to, kas ir
Noderētu vēl kaut kāds apraksts, kā to nokompilēt un palaist.
Tur ļoti daudz kas noderētu. Tāpēc jau es nekur to nebiju (vēl) licis. Man to palaist ir F5 nospiest :upside_down: Kaut kad jau uzrakstīšu, kādus failus tam vajag.
Sākumam noderētu arī informācija, kur Tu spied to F5 :D
Uz klaviatūras :grinning_face_with_smiling_eyes: Gan jau uzrakstīšu, kad būs vispār lietojams. Te jau uzreiz kļūda būs, jo nav jau datu failu. Un vispār nokārsies, jo vajag 6+ GB atmiņas... Vispār jau jautājums, kas tieši to kaut kur laidīs. Ja kaut ko labot, tad jau saprot kaut cik C# un tad jau projekts it kā skaidrs. Bet tā pat palaist laikam jau tāpēc github actions bija domāts, lai nav kaut kur jālaiž.
Uzrakstīju tev ļoti īsi galveno. Kaut kad varbūt tikšu sakārtot to. Man nav ne jausmas kā github actions strādā un kurā vietā varētu reportus likt.
@HellMap, nezinu, vai GitHub atsūtīs Tev notifikāciju... es pakomentēju par vienu no vakardienas komitiem.
Es esmu pierakstīts visam GitHubā, tā kā es redzēšu ja tu kaut kam kaut ko rakstīsi vai sūtīsi
@HellMap, vai vari kaut ko pateikt par šo?
/usr/share/dotnet/sdk/7.0.302/Microsoft.Common.CurrentVersion.targets(1229,5): error MSB3644: The reference assemblies for .NETFramework,Version=v4.8 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks [/home/runner/work/Osmalyzer/Osmalyzer/Core/Core.csproj]
Salaboju projektu un worfklow'u - tagad palaižās
Tagad šķiet, ka ReadMe atpalika... Kas ir stops.txt
?
Unhandled exception. System.IO.DirectoryNotFoundException: Could not find a part of the path '/home/runner/work/Osmalyzer/Osmalyzer/RS/stops.txt'.
readme atpalika jau pēc pirmās dienas :grinning_face_with_smiling_eyes:
Tur ir faili, ko es esmu manuāli sabāzis folderī - kods nemāk tos novilkt un man nav ne jausmas, kā tos var ielikt githubā neliekot tos pašā repo
tur vajag daudz ko organizēt, ja grib lai github palaiž visus analīzes un tur vajag visus datu failus novilkt (galvenokārt OSM latvija, kas ir 100+ MB - kaut kur to vajag cache'ot)
un rezultātu fails/u arī nekur nav izprintēts un to kaut kā vajag mācēt dabūt ārā
konkrēti Rīgas Satiksmes dati ir no zipa https://data.gov.lv/dati/lv/dataset/marsrutu-saraksti-rigas-satiksme-sabiedriskajam-transportam
HellMap said:
tur vajag daudz ko organizēt, ja grib lai github palaiž visus analīzes un tur vajag visus datu failus novilkt (galvenokārt OSM latvija, kas ir 100+ MB - kaut kur to vajag cache'ot)
Viņš māk cache'ot, tā nebūs problēma. ;)
Bet novilkt katru reizi 100 MB arī nav liela problēma.
failu cachošana drošvien notiek pirms vai pēc programmas - tad ir jātaisa atsevišķa, kas novelk OSM failu, tad github nocacho, tad iedod to nākamajai programmai - un tad tā to var izmantot... laikm
Var protams pa taisno katru reizi - bet tad testēšana gan būs ilga un katreiz repo atjaunojot vilks tos 100 MB - tā var arī kaut kādus bandwidth limitus norauties
(Ja ne github, tad iespējams arī Geofabrik, ja vienu un to pašu failu velk visu laiku)
Es kaut kad vēlāk paskatīšos, kā to darīt. Jālasa doci
HellMap said:
konkrēti Rīgas Satiksmes dati ir no zipa https://data.gov.lv/dati/lv/dataset/marsrutu-saraksti-rigas-satiksme-sabiedriskajam-transportam
Nav baigi forši, ka viņi liek jaunus failus ar jauniem nosaukumiem, baigi neērti priekš automatizācijas. Man liekas, es pat mēģināju par to rakstīt, bet laikam caur to formu, kas ir uz data.gov.lv, varbūt neviens neizlasīja...
Šeit ir vēl tāds URL - http://saraksti.rigassatiksme.lv/riga/gtfs.zip - to būtu vieglāk izmantot, bet cik tas ir oficiāls... :shrug:
Mazliet pabīdīju uz priekšu, tagad ir tāds error:
Unhandled exception. System.ComponentModel.Win32Exception (13): An error occurred trying to start process '/home/runner/work/Osmalyzer/Osmalyzer/Rigas Satiksme report.txt' with working directory '/home/runner/work/Osmalyzer/Osmalyzer'. Permission denied
Kāpēc mēs gribam palaist .txt failu? :confused:
Process.Start(reportFileName);
Spriežot pēc https://www.transit.land/feeds/f-ud1h-r%C4%ABgassatiksme, RS mājaslapā esošais fails ir aktuālais un tiek atjaunots biežāk. Saiti uz to gan pašas RS lapā neatrodu. Lielos vilcienos gan tie paši RS dati GTFS formātā vien ir. Protams, ja dikti grib piesieties, tad gan jau var iebilst pret to izmantošanu OSM.
Atvērto datu portālā, ja datu kopai atver lapas kodu, tad apakšā ir saites uz resursu sarakstu dažādos formātos. Attiecīgi no turienes var paņemt failu nosaukumus, apstrādāt tos (mēnesi pārcelt uz beigām un sakārtot dilstoši) un tādējādi izgūt jaunāko. Čakarīgi, bet ne neiespējami. Izvēlētos gan ņemt no RS lapas vienkāršības un aktualitātes labad.
i-ky said:
HellMap said:
konkrēti Rīgas Satiksmes dati ir no zipa https://data.gov.lv/dati/lv/dataset/marsrutu-saraksti-rigas-satiksme-sabiedriskajam-transportam
Nav baigi forši, ka viņi liek jaunus failus ar jauniem nosaukumiem, baigi neērti priekš automatizācijas. Man liekas, es pat mēģināju par to rakstīt, bet laikam caur to formu, kas ir uz data.gov.lv, varbūt neviens neizlasīja...
Šeit ir vēl tāds URL - http://saraksti.rigassatiksme.lv/riga/gtfs.zip - to būtu vieglāk izmantot, bet cik tas ir oficiāls... :shrug:
Lapā norādīts atbalsts@vraa.gov.lv - noteikti vērts uz to uzrakstīt. Būtu jau forši, ja dati nebūtu jāmeklē pa dažādu organizāciju lapām, kuras jebkurā brīdī var mainīties vai pazust :)
i-ky said:
Kāpēc mēs gribam [palaist .txt failu]
Tāpēc, ka Windowsā tas atver failu Notepadā un ļauj man skatīties uz to - arī pēc tam, kad programma aizverās. Es tur pēc tam bīdu, skatos un piezīmes lieku labojot.
i-ky said:
Nav baigi forši, ka viņi liek jaunus failus ar jauniem nosaukumiem, baigi neērti priekš automatizācijas.
Ja godīgi, tā kā man tas viss ir programēšanas vidē, to uzrakstīt ir sīkums (salīdzinot, cik es pašus datus paršet kodu rakstīju) - tur jau ir HTML parseris un datu lapā katram elementam klase. Pat ja nav secīgi - sameklēt datumu nav problēma. No visām problēmām, tā vismazākā :)
Heh, tu jau to centies visu ar github actioniem... nu teorētiski jau var, bet nu tad tas kaut kur svešās vietās. Te tev veicās, ka viens zips un viss.
Īstenībā, es gan negaidīju, ka HTML lapu varēt novilkt un saglabāt tādā veidā
A wget automātiski cacho? Tur es skatos ir iespēja salīdzināt http headera timestampu ar lokālā faila un tad viņš nevilks pa jaunu
Te gan laikam vispirms tam failam jābūt nokešotam kaut kā
HellMap said:
Heh, tu jau to centies visu ar github actioniem... nu teorētiski jau var, bet nu tad tas kaut kur svešās vietās. Te tev veicās, ka viens zips un viss.
Nesapratu par "svešām vietām"...
i-ky said:
Nesapratu par "svešām vietām"...
Nav svarīgi, es tā - domāju pārāk skaļi :)
Tikai tagad izdomāt, kā output failus ārā dabūt. Es viņus varu noformatēt kā vajag. Jautājums, kur tos likt. Drošvien gribētos, kā kaut kādu HTML uz kādu repo un lai github.io skatāms
Drošvien varētu likt vispirms folderī kaut kādā, jo es visu tā pat sametu, kur executable
:tada: https://osmlatvija.github.io/Osmalyzer/Rigas%20Satiksme%20report.txt
Es tā saprotu, ka tas deploy ir kaut kāds īpašs veids, kā tu iedod to lapu GitHub Pages? Kā Github Pages izdomā, kur to ielikt? Tev kaut kāda konfigurācija kaut kur?
HellMap said:
A wget automātiski cacho? Tur es skatos ir iespēja salīdzināt http headera timestampu ar lokālā faila un tad viņš nevilks pa jaunu
Cik es saprotu (nekad neesmu lietojis), lai tas wget -N/--timestamping
strādātu, vajag, lai fails paliktu neaiztikts uz failu sistēmas starp wget
izsaukumiem. Visticamāk, uz GitHub Action runner'iem tā nebūs. Pat ja mēs no'cache'osim failu un pēc tam no ta cache dabūsim, nav garantijas, ka faila timestamp būs pareizs. wget
uzskatīs, ka fails no cache ir jauns un neko nenolādēs (kad vajadzētu).
Bet GeoFabrik piedāvā arī faila checksum, var pārbaudīt to...
Ja tu vari atrast, kā ielikt failu cachā un izņemt ārā no cacha, es to pārbaudi varu uztaisīt kodā un pats (ne)novilkt, ko vajag.
Tipa, ja būtu kaut kāds "cached" folderis - kur es varu ielikt failus un kur būs failu no iepriekšējās reizes
Teorētiski es vienkārši paskatītos datumu, kas rakstīts https://download.geofabrik.de/europe/latvia.html lapā
HellMap said:
Ja tu vari atrast, kā ielikt failu cachā un izņemt ārā no cacha, es to pārbaudi varu uztaisīt kodā un pats (ne)novilkt, ko vajag.
Šitais ir laikam oficiālais cache priekš GitHub Actions. (Es neesmu vēl to nekur lietojis, man vajag lasīt dokumentāciju.)
HellMap said:
Es tā saprotu, ka tas deploy ir kaut kāds īpašs veids, kā tu iedod to lapu GitHub Pages? Kā Github Pages izdomā, kur to ielikt? Tev kaut kāda konfigurācija kaut kur?
Var palasīt par to GitHub dokumentācijā. Konfigurācija ir daļēji GitHub Actions workflow failos, daļēji repo setting'os (kurus Tu šim repo laikam neredzi). Publiskots viss parasti zem http(s)://<organization>.github.io/<repository>
.
Ā, tas ir tur settingos. Es redzu šito
this.png
HellMap said:
Ā, tas ir tur settingos. Es redzu šito
this.png
Jā, tas ir tas.
A tad sanāk, ka tas deploy katru reizi visu pa jaunu ieraksta uz Pages? Tur vecie faili nepaliek?
HellMap said:
A tad sanāk, ka tas deploy katru reizi visu pa jaunu ieraksta uz Pages? Tur vecie faili nepaliek?
Jā.
Uztaisīju cachu https://github.com/OSMLatvija/Osmalyzer/actions/caches un tagad novelk failus kodā un pārbauda vai nav jau kešā ar pēdējo datumu (cerams)
Izskatās, ka strādā.
Izskatās, ka ja bija cache hit, tad cache neatjaunosies:
Cache hit occurred on the primary key txLyWHOIazMqZvNZixBh, not saving cache.
Tā kā cache key ir nemainīgs, action vienmēr dabūs šodienas failus no cache. Un sākot ar rītdienu vilks jaunus failus kartu reizi.
āāāāā... viņš tā to dara. Viņam manuāli jāpasaka, lai cachu novāc un pa jaunu savāc.... paga, bet kā es to varu izdarīt, ja es nezinu, vai man vajadzēt cachu līdz es palaižu programmu. key man taču jāiedod PIRMS palaišanas.
Labs jautājums. Es pagaidām neko nevaru ieteikt, vajag vairāk palasīt dokumentāciju.
Es to dokumentāciju nepareizi sapratu - tur piemēru vispār nav
Man liekas, mēs pārāk iespringām 100 MB dēļ. Cik bieži mums vajadzēs palaist to action? GeoFabrik fails atjaunojas reizi dienā, vienkārši pielāgosim schedule:
un vienu reizi dienā laidīsim, nav problēma, ka katru reizi vilks 100 MB.
Nu galvenokārt - es gribētu patestēt, piemēram tos pašus github pages taisot vai mainot actions
Es jau pa šodienu mierīgi gigabaitu salasīju
Un jebkurā gadījumā - es gribu datus, piemēram datumu RS datiem - to no actioniem nevar dabūt
Arī OSM datiem tur datuma nav pašā failā
Man šie abi datumi tavā pirmajā reizē report failam bija nepareizi
Un ja es gribētu palaist nevis visus analīzes, bet katru pa vienai - un ļaut viņiem arī ar exception izlidot - tad katram būtu jāvelk pa jaunu tie 100 MB
Savādāk, ja kļūda vienā analīzē, tad vispār nekas nestrādā - piemēram, rīgas satiksmei saits 404 šodien
HellMap said:
āāāāā... viņš tā to dara. Viņam manuāli jāpasaka, lai cachu novāc un pa jaunu savāc.... paga, bet kā es to varu izdarīt, ja es nezinu, vai man vajadzēt cachu līdz es palaižu programmu. key man taču jāiedod PIRMS palaišanas.
Šeit aprakstīts, kā saglabāt cache katru reizi.
HellMap said:
Arī OSM datiem tur datuma nav pašā failā
Datums ir Last-Modified
HTTP header'ī:
$ curl --head https://download.geofabrik.de/europe/latvia-latest.osm.pbf
HTTP/1.1 200 OK
Date: Tue, 13 Jun 2023 18:46:26 GMT
Server: Apache
Last-Modified: Tue, 13 Jun 2023 03:17:54 GMT
ETag: "694e2a1-5fdfa47ee3c80"
Accept-Ranges: bytes
Content-Length: 110420641
Content-Type: application/octet-stream
X-Cache: MISS from download-proxy8
X-Cache-Lookup: MISS from download-proxy8:80
Via: 1.1 download-proxy8 (squid/5.6)
Connection: keep-alive
Bet neprasi man, kā to var dabūt C#'ā :D
Jā, C# pluginā nebija, kā dabūt ārā metadatus. Es gan to varētu izvilkt, ja ļoti gribētu. Bet nu tas tā.
Bet tikai tu jau te no servera saņēmi to datumu, ne jau no faila
Pašā PBF struktūrā it kā esot datums, bet tur viss ir nenormāli saencodots
HellMap said:
Pašā PBF struktūrā it kā esot datums, bet tur viss ir nenormāli saencodots
Tas laikam būtu osmosis_replication_timestamp
.
Nu it kā uztaisīju, lai katru reizi cache taisa pa jaunu, bet sākumā izliek iepriekšējo - tikai tagad katrs cache ir saglabāts līdz GitHubs tos automātsiski dzēsīs sasniedzot limitus
Te kā izdzēst, bet man tagad slinkums to studēt https://docs.github.com/en/rest/actions/cache?apiVersion=2022-11-28#delete-github-actions-caches-for-a-repository-using-a-cache-key
HellMap said:
Nu it kā uztaisīju, lai katru reizi cache taisa pa jaunu, bet sākumā izliek iepriekšējo - tikai tagad katrs cache ir saglabāts līdz GitHubs tos automātsiski dzēsīs sasniedzot limitus
Hm, varbūt nevajadzēja likt run_id
iekš key?
Bet tad būs cache hit
Ideja bija saglabāt cache neatkārīgi no hit.
Bet cache ir read-only/immutable - es tavu linku lasot sapratu, ka tur tik un tā ir jauns key katreiz, bet vienkārši restore un save ir atsevišķi, tāpēc save vajag zināt to key no restore. Un always save cache nenozīmē, ka var pārrakstīt esošo - tikai to, ka var rakstīt cache neatkarīgi no tā, kas notika ar to visu procesu. Vismaz es tā uz 85% pārliecību sapratu.
Hmmmm.... pamēģināšu to if always
"Failed to save: Unable to reserve cache with key osmalyzer-cache, another job may be creating this cache. More details: Cache already exists."
Es nevaru izmantot jau esošu cache key
Vakar mēģināju cīnīties ar #if
un ExtraDefineConstants
(te un te), bet tā arī nedabūju tos strādāt. Tad man apnika, cerams es neko nesalauzu Tavā vidē.
Jā, es redzēju, paldies. Tas constants tur nestrādāja jau no sākuma un es tā arī nesalaboju, jo nesapratu kāpēc. Vakar redzēju, ka dēļ tā data path neaizgāja, bet es aizbraucu un nesalaboju uzreiz.
Gribēju vēl uzprasīt - a kas ir Gitpod?
Un vēl - šitais ir priekš kaut kāda konkrēta mērķa Githubā - https://github.com/OSMLatvija/Osmalyzer/commit/27818df6615dff5e95fcfda3e108784f517dfa8a ?
Jo teorētiski visi tie folderi jau ir zem bin/ un gits tos neņem
HellMap said:
Gribēju vēl uzprasīt - a kas ir Gitpod?
Gitpod ir cloud-based programmēšanas vide. Neko nevajag instalēt uz sava datora, vienkārši atver browser'ī un sāk kodēt.
HellMap said:
Jo teorētiski visi tie folderi jau ir zem bin/ un gits tos neņem
Tā laikam notiek, ja palaiž ar F5 no Visual Studio. :D
Ja palaiž ar dotnet build ...
un dotnet run ...
, kā to dara GitHub Actions, tad cache/
, output/
un RS/
ir repo saknes dir'ā. Uz GitHub Actions runner'a tas nevienam netraucēs, bet es vakardien debugoju Gitpod vidē un arī laidu ar dotnet ...
no konsoles.
GitHub Actions laikam gan to pareizi dara: https://github.com/OSMLatvija/Osmalyzer/actions/runs/5275464016/jobs/9540972443#step:6:9
Ja es pareizi sapratu, palaižot projektu, viņš pārliek OS tekošo folderi uz to folderi - tāpēc viss strādā bez papildus folderiem (izņemot to data, kas ir repo un "agrāk")
HellMap said:
Ja es pareizi sapratu, palaižot projektu, viņš pārliek OS tekošo folderi uz to folderi - tāpēc viss strādā bez papildus folderiem (izņemot to data, kas ir repo un "agrāk")
Uz kuru "to folderi"? Kur atrodas programmas executable?
Pamēģināšu saprast... dotnet run pa jaunu build taisa - tāpēc pazūd tas define
also "Osmalyzer/Osmalyzer/Osmalyzer/" hihihi
Cik es saprotu, workingDirectory
var norādīt launchSettings.json failā, un tad laist dotnet run ...
ar --launch-profile
opciju.
Es pačakarēšos - es nekad neesmu nodarbojies ar low-level buildiem šitā. Es tā saprotu, ka dotnet run
vispār it tikai CLI un tas nemaz netaisa palaižamu projektu ar visiem failiem.
Vispār, kāpēc C#? :D
Man šis topiks jau vairākas dienas atgādina par somu runātāja "jab at" MS/Windows konferencē :D
Rihards Olups said:
Man šis topiks jau vairākas dienas atgādina par somu runātāja "jab at" MS/Windows konferencē :D
Now with our crossplatform .NET you can suffer on Linux just like you did on Windows!
i-ky said:
Vispār, kāpēc C#? :D
A ko tu piedāvātu? ¯\_(ツ)_/¯ Tāpēc, ka es gribu programēt jebko, ko izdomāju, nevis skriptēt tikai to, kas un kā pieejams. Ar IDE tas ir daudz ātrāk un ērtāk darāms un galvenais palaižams. Un es tagad ar to Github actions esmu ilgāk čakarējies ar buildiem nekā dzīvē ar 500 projektiem. Bet tas ir tāpēc, ka mēģina palaist to visu dīvainos veidos. Es nezinu, kā es varētu uzprogramēt to loģiku, ko es esmu sabāzis tām analīzēm savādāk bez "pilnas" programēšanas valodas.
Kaut kādi Javas un Rusti jau nav labāki. Visādi Pythoni vispār prasa, lai tu pats novelc kompilātoru.
Starp citu dotnet run
pa taisno strāda - jo tad viņš arī restore un build taisa reizē. Tu speciāli sadalīji pa soļiem to vai arī tas bija kaut kādā dokumentācijā?
HellMap said:
Starp citu
dotnet run
pa taisno strāda - jo tad viņš arī restore un build taisa reizē. Tu speciāli sadalīji pa soļiem to vai arī tas bija kaut kādā dokumentācijā?
Man bija ļoti minimāla pieredze ar C# pirms Osmalyzer, tāpēc es paņemu piemēru, ko piedāvāja GitHub Actions dokumentācija, tikai aizvietoju dotnet test
ar dotnet run
. Es īpaši neiedzīļinājos, kāpēc tur dara dotnet restore
, build
un test
atsevišķi, bet pieļauju, ka tas varētu būt, lai būtu uzreiz skaidrs, kādā stadijā (compile-time, runtime) notika kļūda, nelasot logus.
Hmm (running from "/home/runner/work/Osmalyzer/Osmalyzer/Osmalyzer/bin/Release/net6.0", current path at "/home/runner/work/Osmalyzer/Osmalyzer")
Jā, izskatās, ka working folderis ir root nevis executable. Protams var jau cd
uztaisīt, bet nu... who cares?
Tas define constants nekur nestrādā :sob:
HellMap said:
Tas define constants nekur nestrādā :sob:
Cik saprotu, Tev arī nav lielas pieredzes ar C#?
Man ir ļoti liela pieredze ar C# programēt, bet es nekad nečakarējos ar šitādiem low level CLI. Ja man ir ar roku kaut kas jāraksta konsolē, tad mans IDE ir mani nofeilojis.
Pēc tam pielikšu varbūt dotnet test
arī - tad varēs unit testus uzrakstīt :D
Bet tagad es beidzot izlasīju dokumentāciju un vairāk vai mazāk sapratu, ko tie dotnet soļi dara vispār.
#if !REMOTE_EXECUTION
string executionPoint = "Remote";
Interesanti jā, kāpēc nestrādā... :man_facepalming:
Man kaut kā neiet kopā Tava "ļoti liela pieredze ar C# programmēt" un nespēja dabūt #if
strādāt...
Es pieļauju, ka Tu programmē priekš sevis, tāpēc vienmēr palaist ar F5 no IDE ir OK.
Tādēļ, ka tas izskatās šādi, ja to grib darīt pareizi IDE define-const-in-rider.png
Tas ar to ExtraDefineConstants viss ir massive hackery - es gribēju pa ātro, bet ar pirmo reizi nesanāca un es nemaz nemēģināju tālāk. Bet tu to pēc tam mēģināji izlabot. Tikai tas jau sākotnēji diemžēl bija nepareizi izdarīts.
Bet tagad es vismaz zinu, kā tā var iehakot konstantus netaisot konfigurāciju. Pēc tāda gan no darba kantora izmetīs :grinning_face_with_smiling_eyes:
HellMap said:
Kaut kādi Javas un Rusti jau nav labāki. Visādi Pythoni vispār prasa, lai tu pats novelc kompilātoru.
Java un Rust es pats nemāku. Bet Python, manuprāt, ir labs variants. Jā, tam vajag interpretatoru, bet vismaz python script.py
strādā gan uz Windows, gan uz Linux.
Perl FTW!
/me ducks
Te varbūt tūlīt būs daļa postu jāpārvieto uz topiku "valodu fleims" :)
TODO: Mapillary route analysis for user home location guess
Rihards Olups said:
Perl FTW!
/me ducks
Te varbūt tūlīt būs daļa postu jāpārvieto uz topiku "valodu fleims" :)
Neko neteikšu par Perl kā valodu... :)
Bet uz Windows pieredze ar Perl, man liekas, nav īpaši laba (ja neizmanto WSL).
It's pronounced pjē:face_vomiting:ōrl. Īstenībā, neko nezinu par Perlu
Nu tā https://osmlatvija.github.io/Osmalyzer/
Varu pajautāt par <TargetFramework>
? Obligāti jābūt 6.0? Gitpod'ā ir 7.0, es nomainīju uz net7.0
un viss itkā strādāja.
7.0 ir teorētiski Beta
HellMap said:
7.0 ir teorētiski Beta
Who cares? Live fast, die young! :rock_on:
IDE principā nav labi likt preview versijas. 99.9% jau ka nekas slikts nebūs un nesalūzīs, bet nu...
Var arī norādīt abus:
<TargetFrameworks>net6.0;net7.0</TargetFrameworks>
Bet tad divreiz ilgāk build'ojas un ar dotnet run
vajag norādīt --framework
:(
Bet nē, obligāti nav jābūt. Lokāli vari likt, kas patīk. Tur kods 90% sader starp versijām.
Nu jā, ja tu gribi 2 buildus katrai versijai. Bet actionos jau buildot nav jēgas? Tur jau tikai vienu reizi outputu ar jebkuru versiju. A lokāli kā kurš grib. Nu vienīgais tev tas cloud drošvien pa taisno no repo paņem un katru reizi uz 7.0 jāliek... hmm
Ja tev ērtāk, pārliec uz 7.0.
HellMap said:
Nu vienīgais tev tas cloud drošvien pa taisno no repo paņem un katru reizi uz 7.0 jāliek... hmm
Jā, bet to var automatizēt.
HellMap said:
7.0 ir teorētiski Beta
6.0 un 7.0 abi ir "Active", bet 6.0 ir "Long Term Support" un 7.0 ir "Standard Term Support". 8.0 ir "Preview".
https://dotnet.microsoft.com/en-us/download/dotnet
Ā, ups, es laikam 7->8 sajaucu
Who reads documentation?
i-ky said:
Var arī norādīt abus:
<TargetFrameworks>net6.0;net7.0</TargetFrameworks>
Bet tad divreiz ilgāk build'ojas un ar
dotnet run
vajag norādīt--framework
:(
Ir tāds <RollForward>
... Man tikko Gitpod'ā nostrādāja ar DOTNET_ROLL_FORWARD=LatestMajor
. Ja likt to .csproj failā nevēlams, tad es pielikšu DOTNET_ROLL_FORWARD
Gitpod'ā.
Laikam nevēlams - jo tas pie sevis domā, ka visas vides būs automātiski arī ar pēdējo versiju. Ja man piemēram IDE lifetime licenze tikai līdz kaut kādam brīdim, man var nemaz nebūt tas.
Man uz XP nestrādās!
i-ky said:
i-ky said:
Var arī norādīt abus:
<TargetFrameworks>net6.0;net7.0</TargetFrameworks>
Bet tad divreiz ilgāk build'ojas un ar
dotnet run
vajag norādīt--framework
:(Ir tāds
<RollForward>
... Man tikko Gitpod'ā nostrādāja arDOTNET_ROLL_FORWARD=LatestMajor
. Ja likt to .csproj failā nevēlams, tad es pielikšuDOTNET_ROLL_FORWARD
Gitpod'ā.
Īstenībā pietiek ar Major
, kurš, manuprāt, nav tik bīstams:
Roll-forward to the next available higher major version, and lowest minor version, if requested major version is missing. If the requested major version is present, then the
Minor
policy is used.
HellMap said:
āāāāā... viņš tā to dara. Viņam manuāli jāpasaka, lai cachu novāc un pa jaunu savāc.... paga, bet kā es to varu izdarīt, ja es nezinu, vai man vajadzēt cachu līdz es palaižu programmu. key man taču jāiedod PIRMS palaišanas.
Man liekas, es sapratu, kā to var izdarīt. Step'iem var būt output parametri, citi step'i tos var vēlāk izmantot.
Mūsu gadījumā viens step varētu ātri pārbaudīt .osm.pbf faila datumu/checksum/etag un saglabāt to output'ā, tad cache step varētu to izmantot kā key. Tas izskatītos aptuveni šādi:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- id: check-date
run: echo "date=$(curl https://download.geofabrik.de/europe/latvia.html | grep --only-matching -P '(?<=contains all OSM data up to )([^\.]+)(?=\.)')" >> "$GITHUB_OUTPUT"
- id: cache
uses: actions/cache@v3
with:
path: latvia-latest.osm.pbf
key: ${{ steps.check-date.outputs.date }}
- if: ${{ steps.cache.outputs.cache-hit != 'true' }}
run: wget https://download.geofabrik.de/europe/latvia-latest.osm.pbf
Es uztaisīju testam private repo, pēc pāris dienām varēsim redzēt, cik cache tur sakrājas.
Lai izskatās smukāk, mēs varētu ģenerēt HTML ar Jekyll. Cik es saprotu, viņš prot pildīt template'us ar datiem no YAML, JSON, CSV un TSV failiem. Nevajadzēs ģenerēt HTML no analīzes koda.
Pirms gari runāt par to, kur to likt gitā - scenārijs tāds. Es novelku HTML lapu, paskatos vai tur ir jauns links sarakstā un vai tas ir maniem datiem un vai nav vēl limits skatīšanai - ja viss ok, eju linkā, novelku lapu un saglabāju. Beigās sazipoju, jo tur 5000 faili, katram savs datums un vēl metafails par to, kas bija pēdējais skatīts un vilkts. Kā tu to githubā uzrakstīsi? Un precīzāk - kā es to githubā uzrakstīšu taisot to, pat ja to var uzrakstīt. Un vēl galvenokārt - kā es lokāli tos pašus failus dabūšu, ja visa loģika ir githubā? Galu galā, man tas viss projekts ir tāds, lai es varētu ātri jaunas analīzes izdomāt uz sarakstīt. Tagadējā versija viss strādā - es varu jebkurā brīdī pielikt vai noņemt failus un tie pat gan lokāli gan gihubā cachojās. Ja tu gribi pats to taisīt tā, lai githubā daļu dara - uz priekšu, kods jau publisks tagad. Bet ņem vērā, ka viss salūzīs katru reizi, kad es kaut ko neparedzētu ielikšu un nevarēšu githubā izlabot - jo es tomēr rakstu to visu lokāli. Tad tā labošana būs uz tevi. Man liekas tas nav tā vērts, bet nu skaties pats.
Par HTML var jau protams - bet tikai šeit ir līdzīga problēma kā augstāk, ja es outputu uztaisīšu tikai mašīnlasāmu - man tad arī lokāli jāinstalē tas Jekyll, jāpalaiž katru reizi kompilējot un tikai tad es dabūšu outputu. Vai arī tam man vajag pašam savu output versiju.
Par to teorētisko scenāriju - https://www.ezeri.lv. Paņemt ezera koordinātes un apskatīties, vai tāds ir OSM, un, ja nav, iedot linku uz to vietu, lai varētu manuāli vismaz iezīmēt ūdens kontūru. Normāla API un nekā tāda saitā nav - jāskatās vairākos sarakstos, kur vēl var linki atkārtoties. Un vēl dienā max 100 ieraksti pirms hard limitu uzliek. Ja neseko līdzi katrai lapai un pēdējam skatījuma datumam un kas reāli pēdējais atjaunots, tad noparsēt visu nav nekādi iespējams.
Minēšu, ka @i-ky viens no mērķiem bija šos rīkus gan padarīt pieejamus kopienai, gan palielināt to lietderību.
Tas uzlabotu gan iesaisti, gan popularizēšanu, gan datu kvalitāti ilgtermiņā.
Vēl viens ļoti vienkāršots faktors - bus factor palielināšana :)
Bet šis jau tāds kādā klātienes tusā apspriežams gandrīz. Kā man teica Tomas, lietuviešu kopienā primārais saziņas kanāls esot tikšanās krogos =)
Also, kāda ir datu licencēšana ezeri.lv ? ;)
Nekāda - tos nevar izmantot.
Jā, bet te bus factor tieši pāriet no manis uz manis plus iky. Es rakstu analīzes, iky raksta githubu. Tagad autobusam atliek nobraukt jebkuru. :oncoming_bus:
HellMap said:
Jā, bet te bus factor tieši pāriet no manis uz manis plus iky. Es rakstu analīzes, iky raksta githubu. Tagad autobusam atliek nobraukt jebkuru. :oncoming_bus:
...bet jau uzrakstītas analīzes paliek strādāt uz GitHub Actions => , jo GitHub'u, cerams, neviens autobuss nepārbrauks.
HellMap said:
Par to teorētisko scenāriju - https://www.ezeri.lv. Paņemt ezera koordinātes un apskatīties, vai tāds ir OSM, un, ja nav, iedot linku uz to vietu, lai varētu manuāli vismaz iezīmēt ūdens kontūru.
Ezerus var ņemt no vietvārdu datubāzes tur CC0 autortiesības
Es domāju, ja es pielikšu kaut ko, kas strādā tikai lokāli. Githuba actioni tev jātaisa.
HellMap said:
Es domāju, ja es pielikšu kaut ko, kas strādā tikai lokāli. Githuba actioni tev jātaisa.
Galvenais, neliec jaunas analīzes pa taisno main
'ā. Uztaisi branch'u, uztaisi jaunu lietu, pasaki man, lai es pieliktu actions daļu, kad viss pabeigts - merge'ojam main
'ā un publiskojam Pages.
Mani kā pagaidu variants pilnīgi apmierinātu, ka tikai es maintain'oju actions. Cerams ar laiku vairāk cilvēku pieslēgsies.
Atliek tikai:
kā es lokāli tos pašus failus dabūšu, ja visa loģika ir githubā?
Piemēram. Es novilkšu failus kodā. Tu pēc tam pārtaisīsi to uz github. Pēc tam es github novilkšu, lai kaut ko izlabotu. Bet tur vairs nav failu novilkšanas kodā, vai arī cita sintakse es nevaru lokāli testēt. Tad man atliek revert uz iepriekšējo versiju un pazaudēt labojumus. Un tev atkal jātaisa, jo es tur komatu vienā vietā pieliku :)
Ja šo visu vēl aprakstīs blogpostā kaut kur, varbūt pareklamēsim un radīsies plašāka interese.
Vispār šīs visas idejas varētu nodot ģeo/ĢIT studentiem, te tik daudz iespēju veidot patiesi derīgus un interesantus kursa, noslēguma utt darbus...
HellMap said:
Atliek tikai:
kā es lokāli tos pašus failus dabūšu, ja visa loģika ir githubā?
Vienmēr var paskatīties .github/workflows/, un saprast (vismaz aptuveni), ko tie dara un no kurienes ņem datus. Ja nevar saprast, tad jāuzraksta Readme cilvēciskā valodā. Kā arī loģiku var pēc iespējas iznest no .github/workflows/ uz skriptiem, kurus varēs izmantot gan Actions kontekstā, gan jebkur citur.
HellMap said:
Par to teorētisko scenāriju - https://www.ezeri.lv. Paņemt ezera koordinātes un apskatīties, vai tāds ir OSM, un, ja nav, iedot linku uz to vietu, lai varētu manuāli vismaz iezīmēt ūdens kontūru. Normāla API un nekā tāda saitā nav - jāskatās vairākos sarakstos, kur vēl var linki atkārtoties. Un vēl dienā max 100 ieraksti pirms hard limitu uzliek. Ja neseko līdzi katrai lapai un pēdējam skatījuma datumam un kas reāli pēdējais atjaunots, tad noparsēt visu nav nekādi iespējams.
Teorētiskus scenārijus apspriedīsim tad, kad tie kļūs par praktiskajiem. :wink:
HellMap said:
Par HTML var jau protams - bet tikai šeit ir līdzīga problēma kā augstāk, ja es outputu uztaisīšu tikai mašīnlasāmu - man tad arī lokāli jāinstalē tas Jekyll, jāpalaiž katru reizi kompilējot un tikai tad es dabūšu outputu. Vai arī tam man vajag pašam savu output versiju.
Mēs visi varētu izmantot Gitpod. Uzinstalēt tur Jekyll nebūtu problēma.
i-ky said:
Es uztaisīju testam private repo, pēc pāris dienām varēsim redzēt, cik cache tur sakrājas.
Izskatās, ka viss labi, šobrīd ir 9 caches, vecie tiek dzēsti.
Salīdzinājumam - Osmalyzer'am šobrīd sakrājas 38 caches.
Last updated: Dec 22 2024 at 04:13 UTC