Pisanie open source w pracy

Pisanie open source w pracy

Wątek przeniesiony 2017-03-16 21:04 z Nietuzinkowe tematy przez somekind.

ShookTea
  • Rejestracja:około 12 lat
  • Ostatnio:prawie 6 lat
  • Lokalizacja:Wrocław
  • Postów:629
2

Prowadzący zajęcia parę razy wciskał nam coś, co później okazało się być bzdurą, np. że nazwa "round robin" wzięła się od ptaka - rudzika albo że jedynym poważnym źródłem zarobków Microsoftu jest subskrypcja Office365 i praktycznie nic innego już nie sprzedają.

Ostatnio znowu coś powiedział, a ponieważ pierwszy raz usłyszałem o czymś takim, postanowiłem napisać tutaj pytanie z prośbą o weryfikację.

W wielu firmach, w których programiści pracują nad projektami komercyjnymi, podpisują specjalne umowy zabraniające im w razie opuszczenia firmy pisania podobnego kodu przez następne parę lat. Programiści omijają ten proceder, publikując napisany przez siebie kod na licencji otwartej typu MIT, po czym importując go do projektu komercyjnego jako bibliotekę. W razie zmiany miejsca pracy, będą mogli w ten sposób skorzystać z już gotowego kodu swojego autorstwa i jednocześnie nie złamią postanowień umowy.

Wiem, że to brzmi śmiesznie, ale mimo wszystko chciałbym rozwiania moich wątpliwości przez osoby z doświadczeniem komercyjnym xD


Ktos
Miał prawie dobre informacje - bardzo dużym źródłem przychodów Microsoftu jest Azure. Więc nie Office 365, nie jedynym i coś innego jednak sprzedają, ale jednak prawie dobrze. Jak z tymi rowerami na Placu Czerwonym.
Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
3

Hm generalnie to bzdura, bo nie możesz ot tak sobie opublikować kodu pisanego w pracy, bo tenże jest własnością twojego pracodawcy. Pewnie mógłbyś po godzinach sklecić jakąś bibliotekę a potem użyć jej w pracy, ale znów często umowa zabrania ci takich rzeczy, jeśli ta biblioteka jest związana z tym co robisz w pracy. No i też zwykle nie możesz ot tak importować sobie biblioteki noname z d**y w projekcie w pracy, bo cie jakiś architekt nabije na pal :D

Niemniej wiele firm pisze rzeczy open source i faktycznie udostępnia je dla innych, ale to wszystko odbywa się za zgodą i wiedzą pracodawcy.


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
edytowany 1x, ostatnio: Shalom
ShookTea
  • Rejestracja:około 12 lat
  • Ostatnio:prawie 6 lat
  • Lokalizacja:Wrocław
  • Postów:629
0

Dokładnie tak samo myślałem, ale według tego pana tak robią wszyscy, którym umowa zabrania pisania podobnego kodu w przyszłości. Podobnie twierdzi w kwestii używania zewnętrznych bibliotek: jeśli tylko licencja na to pozwala, można używać wszelkich bibliotek, jakie się znajdzie, bo "po co wynajdować koło na nowo".


Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:około 11 godzin
0

Pewnie mógłbyś po godzinach sklecić jakąś bibliotekę a potem użyć jej w pracy, ale znów często umowa zabrania ci takich rzeczy, jeśli ta biblioteka jest związana z tym co robisz w pracy. No i też zwykle nie możesz ot tak importować sobie biblioteki noname z d**y w projekcie w pracy, bo cie jakiś architekt nabije na pal :D

U nas w projekcie (w międzynarodowym banku) jest sporo takich bibliotek naklepanych przez poprzedni zespół po godzinach. Biblioteki są dostępne na Google Code i/ lub GitHubie.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
0

@ShookTea a jeśli w tej bibliotece jest jakaś luka bezpieczeństwa albo poważny bug to co? ;) Jasne że "można", ale często architekt na to nie pozwoli. Widziałem już takie biblioteki co to fajnie działały dla HelloWorld, ale w dużym projekcie powodowały wywalenie się aplikacji z out of memory :D I co potem powiesz klientowi któremu system nagle przestaje działać? ;) Zewnętrzne zależności zawsze niosą pewne ryzyko, ale jednak można mieć nadzieje że bibliotekę standardową języka ktoś przetestował, tak samo jakiś popularny framework. Ale już noname lib z randomowego githuba?
@Wibowit jw, pytanie kto to utrzymuje potem.


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
edytowany 2x, ostatnio: Shalom
TR
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 2 lata
  • Postów:731
0

dobrze, że ktoś zadał to pytanie, bo się nad tym zastanawiałem
Z drugiej strony ciekawi mnie postać prowadzącego, bo jego myślenie jest zaskakujące: napisz liba na licencji MIT, idź do pracy, praca się nie podoba to zmieniasz i idziesz do innej, korzystasz z tego samego liba. Same profity a manna leci z nieba. Trzeba mieć tylko wyjątkowy fart, żeby np. na przestrzeni choćby 2 lat, trafić do innej firmy, która robi konkurencyjny projekt i jest na tym samym etapie co pierwsza firma 2 lata temu. Teoria światów równoległych to przy tym betka.


musica curat corpus at animam
1

Nie ma czegoś takiego jak zakaz pisania podobnego kodu.
Jak niby sprawdzić podobieństwo nie mając dostepu do kodu w nowej firmie byłego pracownika?
Jeżeli zakaz dotyczyłby konkretnych sektorów, to już zupełnie bzdura, bo to by oznaczało, że jak pracujesz w bankowości to później już nie możesz i bardzo szybko ścieżk by się pozamykały.

Jeżeli ktoś coś takiego w umowei ma, to to jest tyle samo warte ile zakaz konkurencji jeżeli pracodawca nie spełni dodatkowych warunków.
Konkretnie każdy tego typu zapis który stawia Cię w gorszej pozycji po zakończeniu współpracy wiąże się z koniecznością jawnego podania kwoty rekompensaty za taki zakaz.

Jeżeli nie będzie w umowie konkretnie napisane, że za to, że nie możesz konkurować dostajesz X zł miesięcznie lub X rocznie to wtedy w sądzie znaczy to tyle samo co jakby pracodawca napisał zamiast tego punktu, że lubi placki ziemniaczane.
Znaczy, że zapis jest zupełnie bez mocy prawnej.

MO
  • Rejestracja:prawie 10 lat
  • Ostatnio:około 2 godziny
  • Lokalizacja:Tam gdzie jest (centy)metro...
0

Nie wiem co nawygadywał prowadzący (dokładnie). Niemniej jednak bibliotek nie wprowadza się do projektu bezrefleksyjnie. Często architekt lub wymagania projektu określają by było szybkie i merytoryczne komercyjne wsparcie dla wprowadzonego elementu kodu. Często może to wykluczyć bibliotekę Open Source (np. ma wsparcie ... żadne....). Inną sprawą jest potencjalny brak kontroli nad procesem rozwoju takiego włączanego produktu. Nie wiadomo czy i kiedy zmieni się jego API lub w jakim kierunku będzie rozwijała się nowsza wersja modułu/biblioteki/narzędzia oraz czy nie zostanie porzucona.
Co do twierdzenia odnośnie pisania na licencji MIT w pracy i "chytrej operacji".. Jeśli to ma być "chwyt" na "krwiopijcę-pracodawcę" to ... jest to działanie nieetyczne. Dobrym programistom raczej dobrze się płaci i mają szacunek tak do pracodawcy jak i do swojej pracy. Ci inni... opowiadają klechdy z krainy mchu i paproci :-) Także IMHO warto skupić się na merytorycznych zagadnieniach przedstawianych przez prowadzącego a te inne pominąć milczeniem :-)


Każdy problem w informatyce można rozwiązać, dodając kolejny poziom pośredniości,z wyjątkiem problemu zbyt dużej liczby warstw pośredniości — David J. Wheeler
DE
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 8 lat
  • Postów:5
0

W wielu firmach, w których programiści pracują nad projektami komercyjnymi, podpisują specjalne umowy zabraniające im w razie opuszczenia firmy pisania podobnego kodu przez następne parę lat.

Nie ma czegoś takiego. Jeśli już jest zakaz konkurencji i tyczy się on tylko krytycznych stanowisk w każdej firmie, a nie każdego podrzednego programisty. Jakby to miało wyglądać? Pracujesz w firmie A jako developer Django i po tym nie możesz przez 5 lat pracować z Django? Dwa zakaz konkurencji jest odpowiednio regulowany przez prawo, a także rekompensowany przez pracodawce. To poważne i i obudowane wieloma paragrafami umowy. Nie ma opcji by obejść to bez wyroku sądu. Nie ma czegoś takiego jak zakaz pisania "podobnego kodu". Nie możesz korzystać z własności intelektualnej swojego poprzedniego pracodawcy bez jego zgody, jest to przestępstwo, ale nie możesz być ograniczony do wytwarzania czegoś własnego. Co za bzdury.

edytowany 1x, ostatnio: def
somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:około 2 godziny
  • Lokalizacja:Wrocław
0

Typowy kod w pracy jest osadzony w jakimś stosie technologicznym, w architekturze projektu, i rozwiązuje projektowe problemy. Jak to niby zbibliotekować, a potem przenieść do innego projektu?

Zobacz pozostałe 3 komentarze
somekind
Ale czym innym jest zaprojektowanie i wykonanie oddzielnej biblioteki, a czym innym wycięcie kawałka kodu z jakiegoś taska w pracy i próba zrobienia z niego czegoś uniwersalnego.
LukeJL
"To zależy" :) Kod kodowi nierówny. Czasem byłoby to piekło, czasem w miarę łatwe zadanie. Zależy co ten kod robi, w jaki sposób byłby zintegrowany z projektem (dobrze napisany moduł łatwiej by można było przenieść, niż moduł, który używa tysiąca zmiennych globalnych i ma w zależności 30 innych modułów w projekcie). Chociaż myślę, że pojawia się też kolejne pytanie - czy jest sens? Niektóre rzeczy po prostu nie miałyby sensu poza określonym projektem i byłaby to sztuka dla sztuki.
LukeJL
no i czasem zbibliotekowanie spowodowałoby, że kod musialby być bardziej skomplikowany (widzę to po różnych projektach open source, gdzie rzecz, którą w realnej sytuacji w pracy zrobiłoby się w godzinę w jakieś kilka linijek kodu - to tam ma to np. z 1000 linii i robią to miesiącami). No bo w sumie jak coś ma być do jednego projektu to można zrobić to prosto, a jak coś ma być "wspólne" to się zapewnia możliwość konfiguracji wszystkiego, zaczyna się dodawać jakieś dziwne ficzery, bo jakiś user sobie tak zażyczył itp. jakieś corner casy trzeba obsłużyć itp.
somekind
Niektóre rzeczy po prostu nie miałyby sensu poza określonym projektem - no mi właśnie o to chodzi, tylko ja uważam, że tak jest z większością, a nie niektórymi rzeczami. Kod w pracy jest zazwyczaj zbyt mocno osadzony w konkretnym projekcie, żeby można go było sobie tak po prostu wydzielić.
LukeJL
swoją drogą ciekawe jak to było dokładnie z Reactem (wiem, że FB tego używa w pracy, ale nie wiem czy było na zasadzie "wydzielamy istniejącą rzecz", czy "tworzymy od zera reużywalną bibliotekę).
Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:około 11 godzin
0

Typowy kod w pracy jest osadzony w jakimś stosie technologicznym, w architekturze projektu, i rozwiązuje projektowe problemy. Jak to niby zbibliotekować, a potem przenieść do innego projektu?

Dużo zależy od tego jak rozwinięty jest ekosystem dla języka w którym piszesz. Gdy poprzedni zespół zaczynał tworzenie systemu to ekosystem Scali był dużo mniej rozbudowany niż teraz. Wobec tego popisali sami biblioteki, które dzisiaj już czasem mają popularne odpowiedniki. Przykłady:

  • klient HTTP,
  • biblioteka do obsługi CSV,
  • mikroframework do RESTowych enpointów z próbkami (healthchecki) oraz proste narzędzie monitorujące odpalające te próbki w kółko na bieżąco i pokazujące stan systemu,
  • infrastruktura dla testów integracyjnych dla mikroserwisów: mikroframework do RESTowych endpointów w serwisach by wywołać konkretne akcje czy sprawdzenia + narzędzie pozwalające odpalać testy napisane we własnym DSLu, które korzystają z tych endpointów,
  • testy przeglądarkowe, czyli:
    • nakładka na selenium (fluent interface)
    • mechanizm, który pozwala odpalać pulę JVMek i przeglądarek, by odpalić N instancji aplikacji i mieć szybsze wykonanie testów,

Jako że ekosystem Scali mocno się zmienił w ciągu ostatnich kilku lat to obecnie staramy się raczej szukać sprawdzonych otwartych bibliotek, niż rozwijać biblioteki od kolegów z poprzedniego zespołu, bo przede wszystkim te biblioteki nie mają żadnej dokumentacji albo jakieś szczątkowe. Na pierwszy ogień poszedł klient HTTP, później biblioteki do CSV w razie potrzeby. Dodajemy też nowe sposoby monitorowania (Kamon/ Grafana). Następna w kolejności będzie infrastruktura testowa dla testów przeglądarkowych jeśli zmienimy architekturę systemu i zastąpimy komponentowy framework server-side za pomocą RESTa na backendzie i SPA na frontendzie.

@ShookTea a jeśli w tej bibliotece jest jakaś luka bezpieczeństwa albo poważny bug to co? ;) Jasne że "można", ale często architekt na to nie pozwoli. Widziałem już takie biblioteki co to fajnie działały dla HelloWorld, ale w dużym projekcie powodowały wywalenie się aplikacji z out of memory :D I co potem powiesz klientowi któremu system nagle przestaje działać? ;) Zewnętrzne zależności zawsze niosą pewne ryzyko, ale jednak można mieć nadzieje że bibliotekę standardową języka ktoś przetestował, tak samo jakiś popularny framework. Ale już noname lib z randomowego githuba?

Poważne luki bezpieczeństwa są wszędzie. Banki mają specjalizowane zespoły, które wykrywają luki bezpieczeństwa w aplikacjach jako całości i komunikują się z zespołami tworzącymi te aplikacje.

Naszych klientów nie interesują specjalnie biblioteki jakich używamy. Ich interesuje to czy system działa. Jeśli coś się spieprzy to nie mówimy, że biblioteka X ma błąd i rozkładamy ręce tylko szacujemy ile coś nam zajmie czasu by to poprawić i co można zrobić na szybko by kupić sobie czas (bo np za chwilę przyjdą ważne transakcje i wtedy np trzeba zrestartować jeden mikroserwis). Równocześnie w zasadzie nie zdarza się by te biblioteki, które przytoczyłem sprawiały jakieś problemy na produkcji, bo tylko trzy na produkcji lądują i są to proste i rzadko zmieniane rzeczy: klient HTTP, biblioteka do CSV i REST z próbkami.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
edytowany 6x, ostatnio: Wibowit
Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
0

@Wibowit i co, bierzecie się za klepanie fixów w kompilatorze Scali albo w bibliotece standardowej? Wątpie. Co najwyzej wystawicie ticket developerom Scali/Akki/czego tam używacie a u siebie będziecie w międzyczasie jakieś workaroundy pakować. I to wszystko działa, dopóki jest komu wystawić ticket. Jeśli polegacie mocno na bibliotece noname ściągniętej kiedyśtam z githuba, która juz nie jest rozwijana to sytuacja wygląda trochę inaczej, bo nagle zostajecie z ręką w nocniku, bo nikt tego nie naprawi.

Przecież to jest jeden z głównych powodów czemu ludzie kupują soft of dużych firm w stylu IBM. Nie dlatego że ten soft jest jakiś specjalnie dobry, ale dlatego że jest gwarancja że ktoś to będzie utrzymywał.


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
edytowany 1x, ostatnio: Shalom
aurel
Moderator
  • Rejestracja:prawie 15 lat
  • Ostatnio:około 7 godzin
2

Programiści omijają ten proceder, publikując napisany przez siebie kod na licencji otwartej typu MIT, po czym importując go do projektu komercyjnego jako bibliotekę. W razie zmiany miejsca pracy, będą mogli w ten sposób skorzystać z już gotowego kodu swojego autorstwa i jednocześnie nie złamią postanowień umowy.

  1. Wszystkie projekty open source, z jakich korzystamy w korpo, muszą być zgłoszone w specjalnym miejscu, więc ktoś mógłby zauważyć, że daję linki do własnego githuba...
  2. Moje korpo nie przejmowałoby się niuansami technicznymi i wytoczyłoby przeciwko mnie wszystkie procesy... Akurat wiem, że mają tu bardzo negatywne spojrzenie na działalność konkurencyjną i nie odpuszczają. Trzeba pamiętać o tym, że sędzia też niespecjalnie rozumie niuanse technologiczne, za to łatwo będzie mu zrozumieć intencję "wyniósł kod z firmy".
  3. Czemu w ogóle miałabym to robić? Jaki w tym sens? Przecież nowa firma zapłaci mi za napisanie tych narzędzi od nowa... Byłaby to super okazja do napisania ich lepiej...
  4. Jakby to wyszło na jaw, to przecież żadna poważna firma by cię już nigdy nie zatrudniła, bo po prostu nie będą chcieli, żebyś w przyszłości wyniósł ich kod...
Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:około 11 godzin
0

@Shalom:
Temat nie jest o zaciąganiu losowych bibliotek z GitHuba, tylko o wrzucaniu własnych. Z tych bibliotek korzystali ci sami goście, co je pisali. Więc jeśli mieli wystawiać tickety, to samym sobie, bo sami byli autorami. Sytuacja oczywiście zmieniła się po wymianie zespołu i teraz my jesteśmy trochę z ręką w nocniku, ale z drugiej strony biblioteki te są sprawdzone mocno w naszym projekcie.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
edytowany 2x, ostatnio: Wibowit
Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
0

@Wibowit czytaj wątek ze zrozumieniem w takim razie. Chodziło tu o sytuacje kiedy jeden z developerów w firmie część kodu klepie w domu jako swoją libkę a potem "na krzywy ryj" wrzuca ją do projektu w pracy. Developer kiedyś się zwolni, libka będzie miała bugi i nie będzie rozwijana. Ba, może być nawet gorzej bo co jak koleś dorzuci tylko skompilowaną wersję w projekcie? ;)
Wszystko jest ok dopóki macie do tego źródła i traktujecie to trochę jako in-house development i ktoś jednak ogarnia co się tam dzieje pod spodem. Jednocześnie nie wierzę że te bibliteki ot tak ktoś sobie kiedyś wrzucił, bez konsultowania tego z architektami/tech leadmi i bez odpowiedniego przyklepnięcia tego przez jakiegoś managera.


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:około 11 godzin
0

No partyzantka to raczej nie była.

@Wibowit czytaj wątek ze zrozumieniem w takim razie. Chodziło tu o sytuacje kiedy jeden z developerów w firmie część kodu klepie w domu jako swoją libkę a potem "na krzywy ryj" wrzuca ją do projektu w pracy. Developer kiedyś się zwolni, libka będzie miała bugi i nie będzie rozwijana. Ba, może być nawet gorzej bo co jak koleś dorzuci tylko skompilowaną wersję w projekcie? ;)

Serio? Napisałeś wcześniej:

Jeśli polegacie mocno na bibliotece noname ściągniętej kiedyśtam z githuba, która juz nie jest rozwijana to sytuacja wygląda trochę inaczej, bo nagle zostajecie z ręką w nocniku, bo nikt tego nie naprawi.

Ściąganie losowych bibliotek z GitHuba jest czymś innym niż wrzucanie bibliotek do GitHuba przez członków zespołu.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
Zobacz pozostałe 3 komentarze
Wibowit
A więc gdyby te kawałki kodu nie siedziały w na githubie , a były dostępne tylko z wewnątrz korpo to by to coś znacząco poprawiło? Nie widzę w tym logiki.
Shalom
Poprawiłoby tyle że dość jasno byłyby wtedy "własnością firmy" i tym samym byłyby przez nią, przynajmniej teoretycznie, utrzymywane.
Wibowit
Jakby były pisane po godzinach to też byłyby własnością firmy? Oczywistą oczywistością jest to, że licencja tych bibliotek nie może zabraniać firmie (czyli np późniejszym zespołom) grzebania w nich.
Shalom
Jeśli były pisane przez pracownika firmy na firmowym sprzęcie, trzymane w firmowym repo, używane w firmowych projektach i dotyczyły czegoś co firma klepała, to miałbyś dość spory problem udowodnić że nie są własnością firmy ;)
Wibowit
No u nas te biblioteki nie są w żaden sposób powiązane z dziedziną biznesową systemu - nie wymagają wiedzy z dziedziny biznesowej, ani jej nie implementują. Pewnie to jest powód dla którego ówczesny menedżer zgodził się na ich wydzielenie i wystawienie poza firmę.
several
  • Rejestracja:ponad 15 lat
  • Ostatnio:około 12 godzin
5

Disclaimer: Nie czytałem całej dyskusji tutaj.
Są dwie rzeczy, które należałoby tu rozróżnić - zapisy o zakazie konkurencji po rozwiązaniu umowy oraz IP pracodawcy.

Pracodawcy mają tendencję do umieszczania wpisów zakazujących konkurencji po wygaśnięciu/rozwiązaniu umowy, jednak w znakomitej większości nie są one wiążące nawet jeśli pod takimi się podpisałeś. Generalnie po wygaśnieciu umowy nic Cię z byłym pracodawcą nie wiążę i nie masz obowiązku przestrzegania nieważnej już umowy. Chyba, że pracodawca będzie Ci wypłacał ekwiwalent za poniesione straty. Minimalna wysokość ekwiwalentu jest ustanowiona w jakiejś ustawie, ale jeśli nie ma jej ustalonej nigdzie w umowie to niemal pewne, że pracodawca nie będzie Ci jej płacił. Brak pierwszej wypłaty (do miesiąca po rozwiązaniu umowy) automatycznie uwalnia Cię z zapisów o zakazie konkurencji.

Inny temat to IP. Na to nie trzeba żadnych dodatkowych umów, jego ochrona jest przyznawana pracodawcom przez prawo. Tylko, że tutaj temat jest inny, w praktyce konkretny kod rzadko jest przedmiotem rozszczeń związanych z kradzieżą IP - bardzo łatwo jest udowodnić, że Twój kod jest inny niż kod należący do podmiotu oskarżającego. No chyba, że rzeczywiście ukradłeś i przekleiłeś kod a nie napisałeś go od nowa, wtedy to po prostu kradzież i nie powinieneś potrzebować zapisów w umowie żeby wiedzieć, żeby tego nie robić. Jeśli chodzi o IP to tutaj operujemy raczej w kontekście rozwiązań, które mogą dać znaczącą przewagę na rynku i wiązę się też z pewną innowacją. Kod formularza czy kolejny parser JSON do nich nie należą. Ale np. proces technologiczny tranzystorów 10nm albo swego czasu Carmack's Reverse już tak.


edytowany 4x, ostatnio: several
dawciobiel
  • Rejestracja:około 21 lat
  • Ostatnio:6 miesięcy
  • Postów:58
0

Wiesz, ja odpowiem tobie tak: na studiach od razu założyłem, że prowadzący przedmioty takie jak programowanie to po prostu idioci. Wiem (!) mocne założenie, jednak prawdziwe. Powiem więcej wcześniej usłyszałem, że wykładowca (magister, doktor, profesor) na studiach to "osoba, która nie poradziła by sobie na rynku pracy i dlatego jest na uczelni". Po jakimś czasie uważam to za słuszne stwierdzenie.

Czyli: nie słuchaj wszystkich pierdół które tobie prowadzący stara się sprzedać jako znawca tematu.

Cr0w
Lekka przesada. Tych młodszych można "sprawdzić" na LinkedIn i czasami można się nieźle zaskoczyć
somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:około 2 godziny
  • Lokalizacja:Wrocław
1

Skoro już o idiotach mowa, to idiotyczne jest założenie, że profesor albo doktor to ma być ktoś, czyim celem jest "radzenie sobie na rynku pracy".

A na niektórych uczelniach kursy technologiczne są prowadzone przez ludzi faktycznie pracujących w zawodzie. Można się zdziwić trafiając potem na prowadzącego zajęcia na rozmowie kwalifikacyjnej.

ShookTea
Tró. Swoją drogą, widziałem się kiedyś w takiej roli :P
dawciobiel
Z tym, że jest różnica między osobą prowadzącą kursy, a osobą wykładającą teorie na wykładach.
somekind
No jest - od wykładania teorii lepsi są teoretycy (o ile mają talent dydaktyczny). Ale to temat na odrębną dyskusję.
RS
  • Rejestracja:ponad 6 lat
  • Ostatnio:ponad 6 lat
  • Postów:1
0

Pozwólcie, że się wtrącę. Ten temat to jakieś pomieszanie pojęć z poplątaniem terminów.

  1. Oprogramowanie komercyjne i Free Libre Open Source Software to nie są pojęcia rozłączne - ale już free software i proprietary tak. Jestem naprawdę zażenowany, że muszę to pisać na forum programistycznym.

  2. Każde oprogramowanie, które w życiu popełniłem komercyjnie w ramach pracy zawodowej dla firm było z kategorii Free Libre Open Source Software. Tak, w tym objęte NDA.

  3. O tym, kto komu udziela licencji i jakiej decyduje właściciel kodu - czyli firma. Jeśli jest ona właścicielem, to nie jesteś nią ty. I nie ma tu znaczenia, czy firma sprzedaje później oprogramowania na licencji Free Libre Open Source Software, czy proprietary. Nie możesz samowolnie decydować o licencji kodu i o tym komu i jak go udostępnisz. Nie ma tu znaczenia, czy chodzi o sterowniki, arkusz kalkulacyjny, czy system zarządzania magazynem. Nie twoja własność - nie masz do niej prawa.

  4. To, że w pracy na firmowym sprzęcie używasz czegoś na wolnej licencji (np. napisanego specjalnie dla tej firmy), nie oznacza, że jesteś osobą której udzielono tej licencji - jest nią firma, nie ty. Jeśli udostępnisz dalej to oprogramowanie prawnicy pracodawcy będą mogli potencjalnie zrobić z ciebie sito w sądzie w świetle prawa danego kraju dotyczącego rozpowszechniania oprogramowania bez posiadania praw licencyjnych ku temu. Nie ma tu znaczenia, czy chodzi o sterowniki, arkusz kalkulacyjny, czy system zarządzania magazynem. Nie twoja własność - nie masz do niej prawa.

Jeśli coś jest tu nie jasne, to kwestia praw osób trzecich do wykorzystania nielegalnie przez ciebie opublikowanych fragmentów kodu (to, że klient otrzymał produkt końcowy np. na licencji GNU GPL lub MIT nie ma znaczenia) - i to już by wymagało analiz prawniczych pod kątem tego, co prawo odpowiedniej do rozstrzygania o tym administracji mówi na ten temat.

flowCRANE
Wtracaj się, ale do bieżących wątków, bo pytacz już rok temu zapomniał o istnieniu tego wątku.
Wibowit
Ryszard Stalczłowiek po tłumaczeniu brzmiałoby Richard Steelman, a w rzeczywistości jest przecież Richard Stallman, czyli Ryszard Stoiskoczłowiek (?)
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)