@snickersfgh: u mnie w firmie pytaja o:
- jak implementujesz wielowatkowosc w Go, jak komunikujesz sie pomiedzy goroutines (“don't communicate by sharing memory, instead share memory by communicating), do czego sluza wait groups
- cross compilation, jak mozna to zrobic i do czego sluzy
- jak pisac testowalny kod (czyli male pakiety, interfejsy, dependency injection)
  • Odpowiedz
Przy testowaniu pakietu algorytmu odkryłem rzecz która mnie bardzo zastanawia, mianowicie czas wykonywania pętli. Ktoś mądry odpowie mi dlaczego te czasy wykonania pętli są tak różne?

Kod

Gdy zakomentuje funkcje anonimowaw i puszcze tylko go fuzzy.EditDistance(str1, str2+strconv.Itoa(i)) czas wykonania to ok 330ms

for
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@CandyCancer: Dwie mozliwe rzeczy. Pierwsza z nich to ze twoj kod jest inaczej optymalizowany przez kompilator. Druga - pewnie branch prediction ma na to wplyw (czyli procesor lepiej 'przewiduje' co sie stanie a co nie). Widzialem kiedy przyklad ze usuniecie linijka ktora nic nie robila (to chyba bylo przypisanie do samego siebie wartosci), przyspieszalo sporo dzialanie programu.
  • Odpowiedz
@CandyCancer: U mnie jest 318ms, 1s-2s, 541ms (sama pierwsza funkcja, sama druga, obie). Drugi czas potrafi się sporo wahać.

Sprawdziłem wygenerowane kody, wyglądają całkiem podobnie. Jeśli odpalę z GOMAXPROCS=1, to jest 1.60s, 1.85s, 3.20s, więc podobnie. IMHO optymalizacje kompilatora odgrywają małą rolę w tym przypadku ;p

perf stat -e cache-references,cache-misses pokazuje 1.5%, 40%, 2% cache misses, więc pewnie problem leży w tym jak scheduler GO wykonuje te funkcje :)
  • Odpowiedz
Treść przeznaczona dla osób powyżej 18 roku życia...
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@shdw: 1 / 2: https://golang.org/ref/mem
2. locki i mutexy jak w każdym innym języku, skomplikowany temat, ale jest pełno informacji w necie
3. panic używasz jak błąd, który wystąpił nie pozwala na kontynuowanie pracy programu, sam musisz zdecydować kiedy taka sytuacja ma miejsce. Error używasz jeśli błąd chcesz przekazać dalej i obsłużyć / zignorować. Możesz tworzyć swoje "errory" wystarczy zaimplementować metodę Error w strukturze.
Później można wygodnie to obsłużyć w
  • Odpowiedz
@shdw:

- pointers vs. values, kiedy i dlaczego


- Wskaźniki używaj dla dużych struktur. Kopiowanie całej struktury żeby dokonać w niej zmian jest zbyt kosztowne. Value receivers operują na oryginalnej kopii elementu, a im więcej tych kopii utworzysz tym wiadomo, że będzie to mniej opłacalne dla
  • Odpowiedz
Zrobiłem pewne zadanie (coś z liczbami pierwszymi) i napisałem w dwóch językach program aby działał na tej samej zasadzie i porównałem czasy.
Kod wykonany w #python:

Time elapsed: 15.20987582206726


Ten "sam" kod wykonany w #golang
  • 19
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@noke: tak tylko brakuje ci troche zrozumienia o czym mowisz, to tak jakbys wzial nóż i widelec a pożniej mówił, że widelcem ciężko się kroi chleb. no tak, to jest prawda ale takie twierdzenie nic nie wnosi.

to, że python działa wolniej wynika z tego, że wirtualna maszyna pythona wykonuje kod linijka po linijce i kazda linia jest osobno interpretowana. w go dziala to inaczej bo kod jest skompilowany do
  • Odpowiedz
Poszukuje programisty go do wykonania niewielkiej integracji (implementacja metod interfejsu w aplikacji open-source w celu odpowiedniego wywołania metod w naszej bibliotece REST-API, zapewne niemal 1:1). Gdzie warto szukać zleceniobiorcy?

#golang #go #programowanie
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Poszukuje osoby do wykonania integracji oprogramowania Docker-Machine z platformą HyperOne.

W Hyperone tworzymy polską chmurę obliczeniową. Chcemy ułatwić naszym użytkownikom korzystanie z Docker-Machine, czyli Docker-Engine na zdalnym serwerze.

Docker-Machine jest aplikacją napisaną w Go. Odpowiada za odpowiedni cykl życia zdalnej wirtualnej maszyny, gdzie działa Docker-Engine, który uruchamia kontenery. W tym celu wykorzystuje driver. Przykładowy driver: https://github.com/docker/machine/blob/master/drivers/digitalocean/digitalocean.go . Koncept: https://docs.docker.com/machine/overview/

Platforma
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
Witam, czy sa mirko kodujacy w #golang, #java, po nauce Pythona chciałbym uczyć sie kolejnego języka programowania czy znajdzie sie jakiś dobry Mirek który mi przedstawi mocniejsze strony jednego z nich, w sensie w którym bedzie mi łatwiej po Pythonie i który mi sie bardziej przyda

Dodam o mnie lubie algorytmy, backend ale gdy sam jakąś funkcje, walidacje tworzę - niezbyt spodobała mi sie zabawa w
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Jaki inny język polecacie do nauki? Interesuje mnie kierunek: aplikacji internetowych / mobilnych. Pisanie wydzielonych workerów, które mają za zadanie brać ciężkie procesy na siebie. Nie jestem juniorem, potrafię poruszać się i tworzyć architekturę aplikacji.

#webdev #programowanie #nodejs #python #java #golang

Który język / technologie warto poznać

  • Python 33.8% (48)
  • NodeJS 19.0% (27)
  • Java 16.9% (24)
  • GoLang 25.4% (36)
  • Inny, odpowiedź podam w komentarzu 4.9% (7)

Oddanych głosów: 142

  • 14
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

via Wykop Mobilny (Android)
  • 9
@malypirat: nie wiem skąd taka popularność Pythona i niska popularność Javy.
Programowalne w Pythonie z rok i bardziej z-------o języka nie widziałem na oczy. Nawet najlepsze środowiska od jetbrains sobie z nim nie radzą. Nigdy nie wiadomo co czym jest, jakiego jest typu. Libki do testów słabe. Komunikaty błędów słabe. Ogólnie słabo, nawet samo ogarnięcie składni nie jest proste.

Natomiast java? Wydajna, silne typowanie, dobre libki do wszystkiego, pełno pomocy
  • Odpowiedz
#go #golang #googlespreadsheet

pobieram sobie int z klawiatury i chcę ją podstawić do

readRange := "B2:O2"

w miejsce 2. Da się tak w go? Czego bym nie próbował to się pluje (czy w nawiasach, czy w "" czy ("").
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

fmt.Sprintf("B%v:O%v", pierwszyint, drugiint)


@GlassOfJuice: działa, dziękuję bardzo. Chciałem coś na szybko w go przetestować a jako że cannot into programowanie to tak najprostszych rzeczy nie ogarniam. Teraz jak to podałeś to jest to "oczywiste" eh
  • Odpowiedz
Drogie mirki, od dawna słyszę o języku Go. Nawet przez chwilę o nim poczytałem, jednak zastanawia mnie- gdzie taki język ma zastosowania? Po co został stworzony i w czym najlepiej się sprawdza, skoro mamy już tyle technologii.
Serio, co wyróżnia ten język. Google nie odpowiada wystarczająco na moje pytania.
#golang #go #naukaprogramowania #programowanie
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mircy, mam do zrobienia serwer, który zbiera dane za pomocą zapytań HTTP i po protokole Modbus, a następnie zapisuje je do bazy danych.
Dodatkowo chcę postawić na nim stronę internetową, która pozwoli te dane z bazy wyświetlić (w postaci wykresów, tabelek) i pozwoli na ich analizę. Więc mile widziana jest jakaś biblioteka do wyświetlania i analizy sporej ilości danych.

W czym to zrobić? Myślałem początkowo o node (jakiś electron albo pkg) bo
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Gumaa: potrzebujesz tego hobbystycznie czy zawodowo? Chcesz outsourcowac? Zawodowo robie takie systemy -> zbieranie danych z rozproszonych sieci plc, zbieranie przez serwer i prezentacja w biznesowo przydatny sposob (tabelki, wykresy itp) przez aplikacje web spa. Wystawiam FVAT ;-)
  • Odpowiedz
@Gumaa: mini serwery do low-level komunikacji z PLC sa na raspberry / upBoard (linux + python), WebApi w .NET core / DB as Service - Mongo, Front w Aurelia.js
  • Odpowiedz