Termin #database na dziś:
primary key - klucz główny - kolumna lub zestaw kolumn, nie zawierających NULL, których wartości jednoznacznie identyfikują rekord w tabeli. Tylko jeden primary key (klucz główny) może być zdefiniowany dla tabeli. Mowa o tym w: .
Chcesz wiedzieć więcej ?
#oracle #programming #sql #plsql #backend #coding #development #mysql #postgresql #sqlserver #dba4dev #marcinbadtke
Termin #database na dziś:
optimizer - optymalizator - fragment oprogramowania instancji wyznaczający najefektywniejszy sposób wykonania komendy SQL poprzez analizę informacji o obiekatach do których odwołuje się komenda SQL oraz wyspecyfikowanych warunków. Chcesz wiedzieć więcej ?
#oracle #programming #sql #plsql #backend #coding #development #mysql #postgresql #sqlserver #dba4dev #marcinbadtke
https://gvenzl.github.io/free-oracle-for-devs/#/ - listing produktów Oracle do wykorzystania ZA DARMO. Społecznościowy.
#database #oracle #sql #plsql #free #cloud #coding #development #programming #java #virtualbox #oraclelinux #mysql #apex #nosql #dba4dev #marcinbadtke
Simple Polymorphic Engine SPE32 - prosty silnik polimorficzny napisany w assemblerze dla MASM32, dzięki któremu można się dowiedzieć jak w ogóle zbudowane są silniki polimorficzne oraz jak funkcjonują.
https://github.com/PELock/Simple-Polymorphic-Engine-SPE32
#assembler #masm #encryption #programming #itsec #hacking #shellcode #reverseengineering
Przecież właśnie na tym polegał twój trolling. Zgłosiłeś repozytoria zawierające 3 linijki kodu z użyciem biblioteki GLP jako naruszenie twoich praw autorskich, mimo że z "twoim" kodem nie miały nic wspólnego, ale, jak to sam zresztą pisałeś na wykopie, psuły ci biznes
:D
No ale ja cię rozumiem, w końcu trzeba mieć co do garnka włożyć i każdy orze jak może. Wbrew bajkom które opowiadasz, tego twojego softu przecież nikt nie kupuje (w ogóle stawianie puloka obok vmprotecta w jednym zdaniu to kuriozum jakieś), więc musisz uciekać się do takich tanich sztuczek, żeby było za co kupić czokoszoki na kolejny miesiąc :) Szkoda trochę, bo ponoć kiedyś faktycznie byłeś dobrym RE, a dziś tylko bicie piany :( Żaliłeś sie tam wyżej że zablokowali mnie (...) na wykopie w AMA
a to przecież nie prawda. Zabanowali cię moderatorzy, za trolling, flood i bicie piany, zresztą oceny twoich komentarzy mówiły też same za siebie, że nie była to jakaś odosobniona ocena :)
@Shalom taki mały człowiek, a tyle jadu, na twój ból d**y nie pomoże najlepsza maść z wyciągu ze śliny ślimaka... PELocka i tak nie potrafisz rozpakować, nie mówiąc już o przełamaniu jego zabezpieczeń. Poszukaj sobie w Google czy komuś się udało złamać v2. A złamane wersje VMprotecta, czy Themidy krążą po sieci. Taki jesteś zorientowany.
"Coding is an art" nabiera prawdziwego znaczenia. Wpadłem dzisiaj na artykuł DJS OF THE FUTURE DON'T SPIN RECORDS—THEY WRITE CODE. Fajna odskocznia od codziennych CRUD'ow, CRM i ECommerce ;)
A przy okazji tematyki audio to polecam zajrzeć na filmy z konferencji AudioDeveloperConference. Sporo wiedzy technicznej z zakresu embedded, realtime. Czacha dymi :)
#embedded #programming #audio
Ciekawy ten pomysł z tworzeniem muzyki poprzez kodowanie. Widziałem ten wpis na mikroblogu przed przesłuchaniem odcinka z Katarzyną Gajewską nt. pracy w przyszłości, ale dopiero po przesłuchaniu skojarzyłem, że Ty też jesteś DJ-em, i stąd zapewne wpadł Ci on w oko. Jak mówił Twój gość, w przyszłości mogą stać się ważne "miękkie" umiejętności; czy sztuka by się zaliczała?
** Typowany Python?**
Witam, po przerwie, jak w tytule, co tam z tzw. "type annotations" w Pythonie, otóz mają się nieźle; mypy coraz lepiej zintegrowane z trójką (najlepiej działa 3.5>=). Praca polega (przynajmnije na Linux) na zainstalowaniu mypy
:
$ python -m pip install mypy
Co ono robi? Sprawdza typy zgodnie z naszymi annotacjami, które [te annotacje] nie mają wpływu na wykonanie programu, tzn.:
$ python my_file.py
będzie działać, chociaż:
$ mypy my_file.py
zwróci błędy. Czyli do istniejącego kodu, można je dodawać stopniowo i sprawdzać, testować, etc... Kilka przykładów, jak ktoś chce to znajdzie resztę:)
Deklaracja wygląda tak:
from typing import List
x: List[int] = []
x.append(1)
mypy
zaprotestuje, jeśli dodamy do listy cokolwiek innego niż int
.
Mamy generyki i type variables :
from typing import Generic, TypeVar
A = TypeVar('A')
class Tree(Generic[A]):
def __init__(self, value: A, left: 'Tree[A]', right: 'Tree[A]') -> None:
self.payload = value
self.left_tree = left
self.right_tree = right
Żeby interpreter się nie wysypał, parametry typów w __init__
umieszczamy w apostrofach. Funkcja zwracająca None
, to odpowiednik void
z Javy, czy C/C++.
Kolejna funkcja to mapa
(w sensie jak w programowaniu funkcyjnym), zwracająca stream
- w Pytonie są to generatory. Callable[[A], A]
- przyjmuje argument typu A
i zwracająca takiż element : (A) -> A
. Drugi argument Iterable[A]
jest supertypem dla listy (może to być, również Dict, Tuple, Range
):
from typing import Callable, Iterable, Generator
def my_map_generator(f: Callable[[A], A], xs: Iterable[A]) -> Generator:
for x in xs:
yield f(x)
Jak akurat nie chcemy strumienia, to proszę bardzo:
def my_map(f: Callable[[A], A], xs: List[A]) -> List[A]:
for ind, x in enumerate(xs):
xs[ind] = f(x)
return xs
Ta wersja bierze taką samą funkcję, jak poprzednia, i listę typu A
, a zwraca listę typu A
.
To tyle, opcja warta rozważenia w dużych projektach, przy skryptach, to typowy "overkill". Pozdrawiam.
#Python #python #theory #programming
Pracowałem w korpo pythonowym projekcie na Python'ie 2 gdzie w sumie wdrazylem MyPy.
Samo narzedzie jest fajne, ale dalej, Python byl, jest i bedzie dynamicznie typowany.
Spielismy to z CI, napisalismy wlasne toole, ktore pozwalaly na ustawianie roznych poziomow skanowania i walidacji w roznych podprojektach i pakietach.
Ogolnie wg mnie MyPy dziala, ale to tylko proteza, ktora mimo ze pomaga, ma swoje wady i czesto natrafialismy na sciane gdzie musielismy pisac wlasne stub'y.
Najwiekszym plusem bylo to, ze PyCharm po prostu zaczal dzialac.
O wiele lepszym rozwiazaniem jest po prostu statycznie typowany jezyk.
ładnie :)