Wykop.pl Wykop.pl
  • Główna
  • Wykopalisko391
  • Mikroblog
  • Zaloguj się
  • Zarejestruj się
  • Wykop.pl
  • Ciekawostki

    Ciekawostki
  • Informacje

    Informacje
  • Rozrywka

    Rozrywka
  • Sport

    Sport
  • Motoryzacja

    Motoryzacja
  • Technologia

    Technologia
  • Ukraina

    Ukraina
  • Gospodarka

    Gospodarka
  • Podróże

    Podróże

Dostosuj Wykop do siebie

Wybierz treści, które Cię interesują
i zapisz jako Własną kategorię.

m504

m504

Dołączył 8 lat i 6 mies. temu
  • Obserwuj
  • Akcje 1650
  • Znaleziska 780
  • Mikroblog 870
  • Obserwujący 0
  • Obserwowane 67
przegrywam_przez_miasto
przegrywam_przez_miasto
20.04.2022, 09:06:24
  • 2
Jest sens uczyć się Rusta?
Znam całkiem dobrze C i Pythona, lubię sprzętowe sprawy w programowaniu i zastanawiam się nad nauką C++ albo właśnie Rust.

Jeszcze klika lat temu były opinie że Rust zastąpi w jakimś stopniu C czy tam C++, a teraz jak patrzę to prawie nie ma z tego ofert.

#rustlang #naukaprogramowania #programowanie #embedded
  • card_man
  • brightit
  • 17
m504
m504 20.04.2022, 18:04:32
  • 1
@przegrywam_przez_miasto: Moim zdaniem zdecydowanie warto spróbować. W moim doświadczeniu w Rust dużo szybciej tworzy się firmware w porównaniu z C (z C++ nie mam doświadczenia). W mojej pracy robią embedded w Rust.

Główne zalety Rust nad C:
- Unikanie głupich błędów, błędów które wychodzą dopiero na produkcji po kilku miesiącach pracy.
- Dużo bardzo dobrej jakości bibliotek (tworzonych przez społeczność (np. do STM32 https://github.com/stm32-rs)

Główne wary Rust nad C:
- Szybko
  • przegrywam_przez_miasto
m504
m504 21.04.2022, 18:31:43
  • 1
@devopsiarz: Mieliśmy kilka problemów z hal ale z czego mi wiadomo zostały poprawione w kolejnych wersjach. Tam gdzie były problemy to albo robiliśmy fork i potem MR albo używaliśmy obejścia z PAC.

Najwięcej (>90%) kodu unsafe używamy do odczytywania/modyfikowania statycznych struktur aby nie trzeba było ich alokować na stosie.

Największymi problemami z Rust w embedded moim zdaniem są:
- Zbyt szybko kończący się flash. Do tego przydaje się narzędzie https://github.com/RazrFalcon/cargo-bloat
-
  • konto usunięte

1466

Nasz mózg nie wybiera najkrótszej trasy pomiędzy dwoma punktami tylko...

Naukowcy z MIT odkryli, że nasze mózgi nie są zoptymalizowane do znajdowania najkrótszej trasy. Zamiast tego wybiera ścieżkę, która najdokładniej i w sposób najprostszy wskazuje miejsce docelowe. Publikacja na łamach Nature Computational Science. ENG+TLD

RFpNeFeFiFcL
z
nature.com
dodany: 19.10.2021, 18:21:24
  • 169
  • #
    psychologia
  • #
    technologia
  • #
    polskiedrogi
  • #
    swiatnauki
  • #
    gruparatowaniapoziomu
m504
m504 19.10.2021, 19:37:38
  • 8
@RFpNeFeFiFcL: Na google maps niebieski odcinek w prawym dolnym rogi wygląda strasznie. Bardzo wąskie chodniki, dużo samochodów (hałas), bardzo dużo przejść przez szerokie ulice. Bałbym korzystać się z tego odcinak rowerem i pieszo.

Za to czerwony odcinek jest lepiej przystosowany do rowerów. Wydzielona i szeroka trasa pierszo-rowerowa, mniej samochodów, mniej konfliktowych skrzyżowań z samochodami, przejście przez przez wodę bez samochodów.

Nie dziwię się że ludzie wolą czerwoną trasę, jest mniej stresowa.
m504
m504 19.10.2021, 19:46:41
  • 2
@RFpNeFeFiFcL: Nawet routing rowerowy nie preferuje czerwoną trasę: https://brouter.de/brouter-web/#map=14/42.3678/-71.0843/standard&lonlats=-71.102667,42.376633;-71.058577,42.36265&nogos=21.022704,52.228789,146;21.027113,52.218447,60;21.045878,52.18282,37&alternativeidx=1
hit_malinowy
hit_malinowy
27.08.2021, 11:48:21
  • 0
Czy jest możliwa w Postgresie zmiana warunku constraintów w indexie? Jeżeli tak to jak to zrobić?

#postgresql #bazydanych
  • 3
m504
m504 27.08.2021, 12:28:36
  • 1
@hit_malinowy: Stworzyć nowy indeks a stary usnąć. Gdy masz ogromną tabelę i nie chcesz blokować insertów to użyć CRETE INDEX CONCURRENTLY
  • hit_malinowy
m504
m504 28.08.2021, 20:04:28
  • 0
@hit_malinowy: Lepiej najpierw stworzyć nowy. Nowy indeks na ogromnych tabelach będzie się robić przez jakiś czas. Gdy najpierw usuniesz stary a Twoja aplikacja z niego aktywnie korzysta to może to zamulić bazę.
januszzbloku
januszzbloku
12.08.2021, 11:09:01
  • 0
Jaką książkę do rozpoczęcia programowania w języku rust polecacie?
Wiem, że jest dużo tutoriali i dokumentacji na necie, ale wolę rozpocząć od książki.
#rustlang
  • 1
m504
m504 12.08.2021, 16:36:48
  • 0
@januszzbloku: Programowanie w języku Rust, Nichols Carol, Klabnik Steve. Jest to wersja papierowa Rust Book dostępniej online.
q.....n
konto usunięte 12.05.2021, 09:26:33
  • 4
Hej,

Potrzebuję z wektora 10000 elementowego usunąć 100 elementów(po indeksie, nie po wartości).
W jaki sposób mógłbym to zrobić przy utracie jak najmniejszej wydajności?
Jeślibym po kolei zaczął usuwać elementy początkowe to za każdym razem ponad 9000 indeksów również by się przesuwało.

#rustlang #programowanie
  • dyziu3
  • NeverGiveUPek
  • m504
  • rtoip7
  • 4
m504
m504 14.05.2021, 06:01:11
  • 1
@qarmin: możesz też zamiast Vec użyć Vec>. Gdy chcesz usunąć element to ustawiasz na None i co jakiś czas robić retain().
  • rtoip7
fervi
fervi
12.04.2021, 12:39:43
  • 0
Czy jest możliwe, by w PostgreSQL pole z typem serial / bigserial nie inkrementował ID i by to było poprawne? Mam stronę, w której ID sobie rosły od 1 do 159, a potem przeskoczyło na 10169. Nie wiem czy jakiś atak był (XD) nieznanego pochodzenia czy takie akcje mogą być

#sql
  • 1
m504
m504 12.04.2021, 15:35:22
  • 0
@fervi: serial / bigserial instrumentuje się nawet gdy transakcja została przerwana lub po rallback. Możliwe że były robione inserty gdzie z niepoprawnymi polami.

Zobacz logi postgresql i apache/nginxa czy nie było błędów.
q.....n
konto usunięte 26.03.2021, 12:51:47
  • 0
Hej,
poszukuję programu do znajdywania podobnych(zduplikowanych) fragmentów kodu w C/C++ oraz Rust.
Kojarzycie jakieś darmowe narzędzie do tego?
Na internecie jest masa programów, ale póki co z tego co widzę to większość to jakieś badziewie.

#programowanie #cpp #jezykc #rustlang
  • 7
m504
m504 26.03.2021, 13:28:30
  • 2
@qarmin: plugin Rust do IntelliJ wykrywa zdublowany kod
  • DK13
  • konto usunięte
Leinnan
Leinnan
04.03.2021, 15:05:18
  • 1
Jestem programistą bardziej mobilnym/stacjonarnym, web poza podstawami jest mi obcy. Mam sobie napisany prosty "biedablog" w Ruscie z użyciem Actixa który po wybudowaniu projektu wypluł mi plik wykonywalny. Mam też wykupiony serwer na cyberfolks. Dwa pytania:
- jak powinienem bindować serwer- lokalnie testując robiłem .bind("127.0.0.1:8088") i banglało, tutaj jak to powinno wyglądać?
- jak zgodnie z "sztuką" taki serwer powinien być zainstalowany i startowany?

#rustlang #webdev
  • szmaciarzqlaku
  • 11
m504
m504 04.03.2021, 15:16:53
  • 1
@Leinnan: binduj po 0.0.0.0 lub po ip konkretnego interfejsu sieciowego.
  • Leinnan
m504
m504 14.12.2020, 12:16:42
  • 1
#google https://www.youtube.com/watch?v=y4GB_NDU43Q (w trybie incognito)

Single Point of Failure: The (Fictional) Day Google Forgot To Check Passwords
  • Tacocat
k.....j
konto usunięte 18.11.2020, 21:11:39
  • 2
Czy są jakieś firmy w Polsce które mają projekty w Rust? #programowanie #programista15k
  • lionbest
  • m504
  • 13
m504
m504 19.11.2020, 18:01:44
  • 1
@kosciej: u mnie w pracy używają Rust jako głównego języka do backendu.

PS. mogłeś użyć dodatkowo tagu #rustlang
  • konto usunięte
m504
m504 20.11.2020, 07:03:14
  • 0
@kosciej: komunikacja miejska
Snowdr0p
Snowdr0p
15.11.2020, 14:23:46
  • 3
Programistyczne świry mam dość mocno #!$%@? pytanie, a mianowicie. Jak bardzo #!$%@? pomysłem jest władować wszystko, co potrzebuję do obiektu, podać go do funkcji à la init/main eksportowanej z native module napisanego w Rustcie i przejąć ten obiekt w Rustcie i na nim operować. Jaki będzie potencjalny slowdown przy przekazywaniu obiektu? Jak bardzo to #!$%@? pomysł? Zamierzam zlockować silnik js asap w Rustcie jakby co.

#rustlang #programowanie #programista15k #electron #javascript #nodejs
  • maciej__
  • m504
  • konto usunięte
  • 12
m504
m504 15.11.2020, 17:57:36
  • 1
@Snowdr0p: Rozważ kwestie zużycia pamięci w wasm. Podobno (nigdy nie testowałem, nie mam pewności) zużycie pamięci może tylko rosnąć, nawet jak zwolnisz pamięć w Rust to po stronie JS/Webassembly.Memory nie zostanie zwolniona.

https://github.com/rustwasm/wasm-bindgen/issues/2241#issuecomment-660127263

i https://rustwasm.github.io/docs/book/what-is-webassembly.html#linear-memory

PS. nie miałem okazji pisać aplikacji w pełni w wasm wiec nie znam się. Chociaż w create yew.rs tak właśnie robią.
  • Snowdr0p
q.....n
konto usunięte 07.11.2020, 17:17:21
  • 0
Hej,
Dopiero zaczynam przygodę z wątkami i chcę wrzucić cześć kodu do wątków aby go mocno przyspieszyć(za pomocą Rayon).

Stworzyłem póki co taki kod(który oczywiście się nie kompiluje)

self.imagestocheck.paritermut().map(|fileentry| {
let image = match image::open(file
entry.path.clone()) {
Ok(t) => t,
Err() => return, // Something is wrong with image
};
let dimensions = image.dimensions();

file
entry.dimensions = format!("{}x{}", dimensions.0, dimensions.1);
let hasher = HasherConfig::withbytestype::<[u8;
  • 9
m504
m504 07.11.2020, 17:58:25
  • 2
@qarmin: Najprościej to:

1. w map() zwracać buf
2. zrobić collect() do Vec<>
3. W funkcji wyżej iterować i przekazać do struktur self.kbtree i self.image_hahses
  • Saly
  • konto usunięte
m504
m504 07.11.2020, 18:05:26
  • 1
@qarmin: A jak chcesz wstępne wyniki w czasie trwania przetwarzania to możesz użyć channels.

tak jak w tym przykładzie: https://github.com/rayon-rs/rayon/issues/210#issuecomment-551319338
  • konto usunięte
Leinnan
Leinnan
27.09.2020, 12:24:27
  • 0
Ma ktoś lepszy pomysł jak odczytać 10 ostatnich linii z wybranego pliku czy ten sposób jest ok?
https://pastebin.com/JtaLxPQ4

#rustlang #programowanie
  • 4
m504
m504 27.09.2020, 16:55:30
  • 1
@Leinnan: Możesz użyć funkcji seek() i czytać po części od końca pliku. Potem połączyć, coś jak tu proponują: https://users.rust-lang.org/t/idiomatic-way-of-reading-a-text-file-line-by-line-in-reverse/8547/6

albo użyć crate: https://crates.io/crates/rev_lines
  • Leinnan
q.....n
konto usunięte 26.09.2020, 09:38:04
  • 2
Hej,

Niby proste pytanie ale spędza mi sen z powiek, bo mimo, że przeczytałem już z 300 stron książki o Rust, to ciągle nie mam odpowiedzi na to pytanie.

A mianowicie, w jaki sposób powinienem obsłużyć dublujące się zmienne i funkcje w strukturach?
W C++ po prostu utworzyłbym klasę bazową i odziedziczyłbym zmienne oraz funkcje z niej korzystające.

Z tego co wiem to chyba takie podejście jest niemożliwe w Rust.
Traits z
  • Ishino
  • m504
  • 6
m504
m504 26.09.2020, 10:13:33
  • 1
@qarmin: Odnośnie drugiego pytania to możemy użyć Trait z już zaimplementowanymi funkcjami.

https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=fdf709bcdc62ebe33d24b74a3c95193e

ale niestety w tym przypadku kod jest dłuższy niż bez trait.

Edit: na pierwsze pytanie takie coś używać: https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=b866723b448223e6122bb082f8e3e175
  • konto usunięte
q.....n
konto usunięte 25.09.2020, 17:57:07
  • 1
Hej,

Mam taką funkcję

fn select_function(ts : &gtk::TreeSelection, tm : &gtk::TreeModel, tp: &gtk::TreePath, b :bool) -> bool{
true
}

i chcę użyć ją jako argument do funkcji, ale przy wywołaniu

tree_selection.set_select_function(Option::from(Box::new( select_function)));
wywala błąd taki jak na obrazku.

W jaki sposób mogę wywołanie tej funkcji poprawić aby pasowała do definicji?

#rustlang #programowanie
Pobierz
źródło: comment_1601056501xf36L8o4yKXrFXGtNq6LME.jpg
  • paczelok
  • 4
m504
m504 25.09.2020, 18:14:14
  • 1
@qarmin: Wydaje mi się że musisz przekazać tam objekt a nie wskaźnik do funkcji.

https://users.rust-lang.org/t/difference-between-fn-and-box-dyn-fn/39493/2

https://rustyyato.github.io/rust/syntactic/sugar/2019/01/17/Closures-Magic-Functions.html

tree_selection.set_select_function(Option::from(Box::new(move |ts, tm, tp, b| { true })));
  • konto usunięte
m504
m504 25.09.2020, 18:31:54
  • 1
@DK13: Jak opakuje Option::from w funkcje to znowu się kompiluje: https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=8ce9f20b09d0806fe43c88a990400a8e
  • DK13
q.....n
konto usunięte 22.09.2020, 18:23:49
  • 8
Hej,
Już gdzieś od miesiąca w ramach nauki Rusta kodzę sobie aplikację do znajdywania duplikatów i pustych folderów na Linuxa.

Póki co mam już zrobioną i przetestowaną dość dobrze wersję konsolową ale moim głównym celem jest stworzenie aplikacji graficznej.

Z racji, że nie jestem zbyt dobrym grafikiem(można rzec, że wręcz tragicznym), to moim głównym celem jest skopiowanie prawie 1:1 interfejsu FSlint.

Jednak myślę, że interfejs mógłby być o wiele bardziej intuicyjny, tylko
Pobierz
źródło: comment_1600798393zrGzAXgnJZd5ajuwcHJB6i.jpg
  • konto usunięte
  • qjxx
  • m504
  • napcok
  • stan
  • +3 innych
  • 5
m504
m504 22.09.2020, 19:17:10
  • 1
@qarmin: w czkawka_cli mógłbyś użyć https://crates.io/crates/gumdrop (mniejszy rozmiar binarki tworzy) albo https://crates.io/crates/structopt

ciężko się czyta ręczne parsowanie linii poleceń.
  • konto usunięte

424

Dlaczego nie mamy wzoru na obwód elipsy?

O ile obwód koła to prosty wzór, zawierający jedną zmienną, to dla elipsy sprawa się komplikuje. Nie mamy wzoru, który jest absolutnie dokładny. Możemy jednak używać pewnych przybliżeń. Kilka już używanych oraz parę własnych wzorów przedstawia Matt Parker.

KubaGrom
z
youtube.com
dodany: 18.09.2020, 15:31:18
  • 139
  • #
    nauka
  • #
    matematyka
  • #
    ciekawostki
  • #
    gruparatowaniapoziomu
m504
m504 18.09.2020, 18:33:13
  • 100
@kolnay1: O tym też Matt wspomina (czas 14:57).
m504
m504 19.09.2020, 12:09:29
  • 1
@a5f5c1: h = (a-b)^2 / (a+b)^2 gdzie a i b to przekątne i a > b. (patrz czas 1:57)
q.....n
konto usunięte 17.09.2020, 13:57:25
  • 1
Hej,

w jaki sposób mogę odczytać i zapisać dane do/z zmiennej w domknięciu?

Kod z którego korzystam raczej wymaga move |_| bo tak został stworzony GTK RS

Ten kod

let mut hashmap_buttons: HashMap<&str, bool> = Default::default();
for i in ["duplicate", "empty_folder"].iter() {
hashmap_buttons.insert(i, false);
}

buttons_search.connect_clicked(move |_| {
if *hashmap_buttons.get("duplicate").unwrap() {
buttons_select.show();
buttons_delete.show();
}
else{
buttons_select.hide();
buttons_delete.hide();
}
*hashmap_buttons.get_mut("duplicate").unwrap() = true;
}

Wywala błąd

cannot borrow `hashmap_buttons` as mutable, as it is
  • konto usunięte
  • 4
m504
m504 17.09.2020, 16:09:13
  • 0
@qarmin: Ten rozdział książki Rust Book przeczytaj: https://doc.rust-lang.org/book/ch15-00-smart-pointers.html
q.....n
konto usunięte 16.09.2020, 14:51:01
  • 0
Hej,

Mam w programie kilka linii instrukcji do debugowania np. println, które poprzedza kilka obliczeń.
W jaki sposób mógłbym wymusić aby te konkretne instrukcje kompilowały się tylko i wyłącznie w trybie debug a nie release?

#rustlang #programowanie
  • 2
m504
m504 16.09.2020, 14:59:27
  • 0
@qarmin:

możesz zrobić tak

fn mydup() {
// cos
#[cfg(feature = "debug")]
{
let x = heavy_fun();
dbg!(x);
}
}

nie testowałem ale blok powinien się zbudować tylko podczas debug. Jest jeszcze opcja z debug_assertions
  • <
  • 1
  • 2
  • 3
  • 4
  • 6
  • Strona 1 z 6
  • >

Osiągnięcia

  • Rocznica
    od 11.11.2022

    Rocznica
  • Gadżeciarz
    od 05.12.2014

    Gadżeciarz

Wykop © 2005-2023

  • Nowy Wykop
  • O nas
  • Reklama
  • FAQ
  • Kontakt
  • Regulamin
  • Polityka prywatności i cookies
  • Hity
  • Ranking
  • Osiągnięcia
  • więcej

RSS

  • Wykopane
  • Wykopalisko
  • Komentowane
  • Ustawienia prywatności

Wykop.pl