Doskonały interaktywny edytor wyrażeń regularnych obslugujący kilka ich standardów (m.in popularne PCRE)
https://regexr.com
Nie dość, że sam regex jest trudny, to jeszcze ma kilka standardów.
Zaloguj się aby komentować
Społeczność
Nie dość, że sam regex jest trudny, to jeszcze ma kilka standardów.
Zaloguj się aby komentować
Dla uzupełnienia: jest i serwis działający w drugą stronę: https://dogbolt.org/
@mike-litoris proszę o więcej jakościowych wpisów, bardzo ładnie pewnie OPie
Kozak narzędzie, dzięki!
Zaloguj się aby komentować
Zaloguj się aby komentować
Niesamowite że ktoś pomyślał że może z tym nie być problemu - zawsze powinno się budować, uruchamiać testy na docelowym sprzęcie (przecież tam będzie to wszystko działać na nie na kompie programisty lol). Dobrym pomysłem jest nawet redundancja, macie joba który uruchomi testy na x86_64 i joba na ARM, oba muszą przejść. Gdybyście kompilowali, to również im więcej kompilatorów tym lepiej. W embedded trzeba spodziewać się niespodziewanego.
A już totalną ignorancją okazali się prowadzący ten projekt jeśli uruchamiacie testy na 64 bitowej platformie, a docelową platformą jest 32 bitowy ARM
Najgorzej jak znajdziesz buga w Firefoxie i okazuje się że podobny błąd został zgłoszony w 2006 roku i od 18 lat toczy się pod nim dyskusja. Co jakiś czas ktoś pyta kiedy to będzie naprawione, następnie ktoś z mozilli odpowiada że nad tym pracuje by za dwa lata znowu dostać pytanie o postępy xD
Zauważyłem np że firefox na androidzie bardzo często odświeża strony po powrocie do niego, tak jakby od razu po przeskoczeniu do innej apki czyścił dane strony z pamięci. Oczywiście zgłoszony bug wisi od paru lat w backlogu bo niby ważny błąd ale jakoś tak nie umieją go odtworzyć
(sorki za offtop xD)
Używacie biblioteki scipy i się dziwicie… zaciągnijcie normalnie z github a nie z jakiejś cipy…
Zaloguj się aby komentować
@qarmin - ale do przesyłania plików weź ty użyj czegoś normalnego jak scp, rsync, robocopy, gołe SSH, sftp a nawet ftp(s).
Zaloguj się aby komentować
@krokietowy Jest do Pythona jakaś libka z bindingami rustowymi? W Ruby mamy https://github.com/matsadler/magnus i czasem nam to sprawiało problemy. No chyba że w Rust jest osobny serwis, to wtedy inna śpiewka.
@krokietowy wybacz za bezpośrednie pytanie ale czy dostałeś znaczącą podwyżkę? Bo to chyba najlepszy moment na negocjacje.
Pokazałeś dużo zapału, warto by ktoś go docenił.
@krokietowy no wszystko spoko tylko jest jedno ale - uczenie się języka na produkcyjnej aplikacji to koniec końców i tak jej pisanie raz jeszcze po skończeniu nauki. Niestety znam to
Zaloguj się aby komentować
Zaloguj się aby komentować
@krokietowy ustaw sobie ramdysk jako target do kompilacji, tam przechowywanie objfile zlinkują sięjak trzeba a po tym procesie zyskasz binarkę na fizycznym storage'u
@mike-litoris Ramu w github CI jest chyba tylko 7GB i większość jest używana, więc raczej to nie jest mozliwe(nie wiem czy ramdysk w CI jest możliwy do zrobienia)
@krokietowy do rzeczy, jaki masz błąd, ile logów jesteś w stanie załączyć?
A nie dałoby rady budować bibliotek (.a) z poszczególnych komponentów i na koniec z linkować je do końcowej binarki?
@m_h a czasem nie tak działa proces kompilacji i linkowania wszystkich śmieci do ELF'a?:D
@krokietowy Z czystej ciekawości, co to za projekt. Bo to musi być niezła kobyła, w co nie za bardzo chcę mi się wierzyć.
@groman43 podpinam się
@groman43 Ano kobyła, dużo zależności nie linkowanych dynamicznie, ale wklejanych bezpośrednio w projekt.
Razem z zależnościami, ma 1.8 miliona linii w C i podobną ilość w C++.
Niestety projekt prywatny, więc nie mogę udostępnić.
@mike-litoris
Bezpośredni błąd to:
Unhandled exception. System.IO.IOException: No space left on device : '/home/runner/runners/2.315.0/_diag/Worker_20240410-010354-utc.log'
at System.IO.RandomAccess.WriteAtOffset(SafeFileHandle handle, ReadOnlySpan`1 buffer, Int64 fileOffset)
at System.IO.Strategies.BufferedFileStreamStrategy.FlushWrite()
at System.IO.StreamWriter.Flush(Boolean flushStream, Boolean flushEncoder)
at System.Diagnostics.TextWriterTraceListener.Flush()
at System.Diagnostics.TraceSource.Flush()
at GitHub.Runner.Common.TraceManager.Dispose(Boolean disposing)
at GitHub.Runner.Common.TraceManager.Dispose()
at GitHub.Runner.Common.HostContext.Dispose(Boolean disposing)
at GitHub.Runner.Common.HostContext.Dispose()
at GitHub.Runner.Worker.Program.Main(String[] args)
System.IO.IOException: No space left on device : '/home/runner/runners/2.315.0/_diag/Worker_20240410-010354-utc.log'
at System.IO.RandomAccess.WriteAtOffset(SafeFileHandle handle, ReadOnlySpan`1 buffer, Int64 fileOffset)
at System.IO.Strategies.BufferedFileStreamStrategy.FlushWrite()
at System.IO.StreamWriter.Flush(Boolean flushStream, Boolean flushEncoder)
at System.Diagnostics.TextWriterTraceListener.Flush()
at GitHub.Runner.Common.HostTraceListener.WriteHeader(String source, TraceEventType eventType, Int32 id)
at GitHub.Runner.Common.HostTraceListener.TraceEvent(TraceEventCache eventCache, String source, TraceEventType eventType, Int32 id, String message)
at System.Diagnostics.TraceSource.TraceEvent(TraceEventType eventType, Int32 id, String message)
at GitHub.Runner.Worker.Worker.RunAsync(String pipeIn, String pipeOut)
at GitHub.Runner.Worker.Program.MainAsync(IHostContext context, String[] args)
System.IO.IOException: No space left on device : '/home/runner/runners/2.315.0/_diag/Worker_20240410-010354-utc.log'
at System.IO.RandomAccess.WriteAtOffset(SafeFileHandle handle, ReadOnlySpan`1 buffer, Int64 fileOffset)
at System.IO.Strategies.BufferedFileStreamStrategy.FlushWrite()
at System.IO.StreamWriter.Flush(Boolean flushStream, Boolean flushEncoder)
at System.Diagnostics.TextWriterTraceListener.Flush()
at GitHub.Runner.Common.HostTraceListener.WriteHeader(String source, TraceEventType eventType, Int32 id)
at GitHub.Runner.Common.HostTraceListener.TraceEvent(TraceEventCache eventCache, String source, TraceEventType eventType, Int32 id, String message)
at System.Diagnostics.TraceSource.TraceEvent(TraceEventType eventType, Int32 id, String message)
at GitHub.Runner.Common.Tracing.Error(Exception exception)
at GitHub.Runner.Worker.Program.MainAsync(IHostContext context, String[] args)
Jednak przy bliższym przepatrzeniu, okazało się że to nie bezpośrednio problem linkowania, ale kopiowania po linkowaniu - nie mogę niczego podobnego znaleźć w sconstruct(używamy scons) i wygląda mi to trochę jakby to sam scons wykonywał to topiowanie
scons -j2
Linking Static Library core/libitem.x86_64.a ...
Ranlib Library core/libitem.x86_64.a ...
Linking Program bin/project.x86_64 ...
scons: done building targets.
[Time elapsed: 00
34.621]
cp: error writing '../project.x86_64': No space left on device
Zaloguj się aby komentować
@Bezbronny Dobrą praktyką jest nie przesyłanie wartości true/false jako parametr i tworzenie warunków, tylko stworzenie osobnej funkcji dla każdego przypadku. W twoim kodzie było by to podzielenie funkcji "url" na: "url" i "urlSaveParams" gdzie pierwszy wariant obsługiwałby to co jest w "else" a drugi to co jest w "if". Widać potem lepiej jak działa program podczas wywoływania funkcji. Oprócz tego możesz zrobić if($arg) zamiast if($arg!=nulll), a nawet użyć if/else jednolinijkowego
$url .= $arg ? "$arg=$val/" : "$val/";
Tę listę ifów też bym zmienił, jako np. listę z możliwymi parametrami i osobną funkcją do pobiewrania, np.
$paramsCanBeSaved = [['name' => 'id', 'inUrl' => true], ['name' => 'foo', 'inUrl' => false]];
foreach($paramsCanBeSaved as $param) {
getSavedParam($param); //funkcja wywołuje to co w if, lub po prostu wklejasz tu to co masz w if
}
Wtedy masz do edycji tylko listę zamiast dodawania kolejnego warunku, potem możesz dodać tę listę do bazy danych i stamtąd dynamicznie dodawać sobie kolejne parametry do sprawdzenia bez konieczności edycji kodu.
Tak nawiasem mówiąc to dodawanie tego w ścieżce jest trochę niekonwencjonalne, ja użyłbym query buildera, wtedy masz jedną funkcję: https://www.php.net/manual/en/function.http-build-query.php
I link wygląda tak: www.foobar.com?name=asd&sort=desc
Widzę, że to będzie coś grubszego. Ja jestem skromnym Technikiem Informatykiem. Serwis zrobię, ale kodu php nie napiszę. Ten, który napisał ten kod, już dawno w bibliotece nie pracuje. Teraz Serior admin czy jak to się zwie w korpo, i "nie mam czasu na takie pierdoły"
Zaloguj się aby komentować
@wombatDaiquiri Django spięte z CI/CD.
No zależy. Update u mnie dzielą się na 2: te co można cofnąć i te, których nie da rady cofnąć ze względu na zależności z aplikacją. Każda migracja leci w blue/green deployment razem z softem, gdzie pierw migruje się kopia bazy, później testy, później apka i testy i przelaczenie blue green apkii. Liquibase na migracjach db. Jak testy nie przechodzą to nie przełącza Blue green. Baza leci ze snapshot z aws pierw do testów a później leci migracja na produkcji.
Piszę do DevOpsów ( ͡° ͜ʖ ͡°)
Zaloguj się aby komentować
Smacznej kawusi. Ja sobie gadam z AI i nawet nie muszę uruchomić kąkutera ani telefonu. Jeszcze się dąsa.
@rayros a Tosie też mogą?
Eee, kolbowy... Sprzedaj to czym prędzej i kup coś normalnego ( ͡° ͜ʖ ͡°)
Zaloguj się aby komentować
@qarmin O widzę kolega natknął się na bramę indyjską. No niestety.
Jak tak miałem, to dzwoniłem do supportu US.
@vinclav - jak naprawiałem kiedyś kompy i musiałem na przykład aktywować klucz windy bez netu lub przez neta były problemy to zawsze dzwoniłem na numer supportu w Juesej - tam mnie nigdy nie zawiedli - gdzie support w Polsce to był śmiech na sali.
@koszotorobur nadal jest
Zawsze uważałem ffmpeg za nadprogram ale teraz to jeszcze większy szacuneczek.
@Catharsis ffmpeg chyba każdy używa XD
@Klopsztanga - ale nie każdy trzepie na nim miliony
Zaloguj się aby komentować
Zaloguj się aby komentować
Zaloguj się aby komentować
Mi się właśnie wydaje że dużo programistów to dynamiczniaki
Zaloguj się aby komentować
I nikt nie napisze gdzie doszło do naruszenia bezpieczeństwa? Ludzie, wy macie jakieś pojęcie o dokumentowaniu rzeczy? A wystarczy dodać:
Backdoor in upstream xz/liblzma leading to SSH server compromise [CVE-2024-3094]
Ten dopisek ma też od razu funkcje, że dobrze się sprawdza w Google.
@qarmin Jak się kładłem spać to widziałem już o tym jakiś artykuł. Jak po obudzeniu się odpaliłem kompa to od razu mi się odpaliła przeglądarka bo nowy wpis w "arch news" a tam żeby szybko zaktualizować system bo jest backdoor w paczce. No to szybkie pacman -Syu i patrzę, mam już zainstalowaną wersję bez backdoora, taki Arch moment bo nawet nie wiem kiedy zrobiłem ten update xD
@qarmin szczerze powiedziawszy, to mnie wcale nie dziwi, AI i te gówno czaty GPT pchają oprogramowanie w closed source.
Taki zabieg ma na celu coś takiego " ej no nie dajmy tak sobie puszowac komustam coś w sieć, zablokujemy dostęp do kodu".
Na co tępe masy przystaną, nadzieja dziwna epoka, w której programiści będą się uczyć, lub też nie, języków na zlecenie pracodawców, a to już nie będzie indiańskie eldorado.
Zaloguj się aby komentować