© 2018 Piotr Przybył. Licensed under Simplified BSD license.
https://www.computerscience.gcse.guru/theory/von-neumann-architecture
https://www.google.pl/maps/search/ul.+Wroc%C5%82awska/@51.1583222,17.1091039,12z/data=!3m1!4b1
https://www.google.pl/maps/search/polna/@51.1611543,17.1445451,13z
Poczta Polska S.A. nr 11
function validateEmail(email, form){
if(email.length == 0){
return true;
}
if (email.match("^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$")) {
return true;
}
form.wynik.value = "Niepoprawny format adresu email";
return false;
}
https://rezerwacja.powiatkepno.pl:8443/WAN/js/form_validate.js
email@domain.com firstname.lastname@domain.com email@subdomain.domain.com firstname+lastname@domain.com email@123.123.123.123 email@[123.123.123.123] "email"@domain.com 1234567890@domain.com email@domain-one.com _______@domain.com email@domain.name email@domain.co.jp firstname-lastname@domain.com
http://codefool.tumblr.com/post/15288874550/list-of-valid-and-invalid-email-addresses
plainaddress #@%^%#$@#$@#.com @example.com Joe Smithemail.example.com email@example@example.com .email@example.com email.@example.com email..email@example.com あいうえお@example.com email@example.com (Joe Smith)
http://codefool.tumblr.com/post/15288874550/list-of-valid-and-invalid-email-addresses
$match = preg_match("'\b(([\w-]+://?|www[.])[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|/)))'", $url);
if ($match) {
return true;
}
return false;
CREATE TABLE jakas-wazna-tabela {
id long,
utworzono long
}
CREATE TABLE jakas-wazna-tabela {
id long,
utworzono varchar(20)
}
CREATE TABLE jakas-wazna-tabela {
id long,
utworzono_data long,
utworzono_godzina int
}
CREATE TABLE jakas-wazna-tabela {
id long,
utworzono timestamp with time zone
}
private static DateTime? ParseDate(string raw)
{
// YYYY-MM-DDTHH:MM:SSZ
if (String.IsNullOrEmpty(raw)) return null;
bool utcInd = false, lenGood;
if (raw.Length == 10) raw += "T00:00:00";
if (raw.Length == 20 && (raw[19] == 'Z' || raw[19] == 'z')) { utcInd = true; lenGood = true; } else lenGood = raw.Length == 19;
if (!lenGood) throw new FormatException();
int year, month, day, hour, minute, second;
try
{
year = Int32.Parse(raw.Substring(0, 4), _formatProvider);
month = Int32.Parse(raw.Substring(5, 2), _formatProvider);
day = Int32.Parse(raw.Substring(8, 2), _formatProvider);
hour = Int32.Parse(raw.Substring(11, 2), _formatProvider);
minute = Int32.Parse(raw.Substring(14, 2), _formatProvider);
second = Int32.Parse(raw.Substring(17, 2), _formatProvider);
}
catch { throw new FormatException(); }
return new DateTime(year, month, day, hour, minute, second, utcInd ? DateTimeKind.Utc : DateTimeKind.Unspecified);
}
CREATE TABLE meta-tabela-do-wszystkiego {
id long,
col01 varchar(2000),
col01_type varchar(20),
col02 varchar(2000),
col02_type varchar(20),
...
}
SELECT to, tamto, siamto FROM tabelaX JOIN dużo_metadanych
-- wygeneruj nagłówek
FOREACH ROW
FOREACH COLUMN
IF typ_kolumny = 'timestamp'
THEN formatuj_datę(kolumna)
ELSE
formatuj_varchar(kolumna) -- "wyeskejpuj jeszcze"
END;
-- nowe linie, formatowanie, itp.
psql -c "COPY ( SELECT * FROM TABLE ORDER BY id limit 10 ) TO STDOUT WITH CSV HEADER " > CSV_FILE.csv
http://blogs.harvard.edu/dlarochelle/2011/12/11/outputing-to-csv-in-postgresql/
CREATE TABLE klienci {
id char(36) CHECK --regex sprawdza format UUID,
nazwa varchar(200),
nip long,
data_utworzenia varchar(40),
stan_konta double CHECK --sprawdza precyzję
}
class Klient {
String id;
String nazwa;
Long nip;
String data_utworzenia;
Double stan_konta;
}
function operacjaZNipem(Long nip) {
if (!ValidationUtils.nipPoprawny(nip)) {
throw new IllegalArgumentException("Niepoprawny NIP!");
}
// logyka byznesowa
}
function operacjaZKlientem(String id) {
if (!ValidationUtils.idPoprawny(id)) {
throw new IllegalArgumentException("Niepoprawne ID!");
}
// logyka byznesowa
}
CREATE TABLE klienci {
id UUID,
nazwa varchar(200),
nip char(10) CHECK --checksum,
data_utworzenia timestamp with time zone,
stan_konta money
}
class Klient {
UUID id;
String nazwa;
NIP nip;
Instant data_utworzenia;
MonetaryAmount stan_konta;
}
class Klient {
IDKlienta id;
String nazwa;
NIP nip;
Instant data_utworzenia;
}
function operacjaZNipem(NIP nip) {
notNull(nip, "nip");
// logyka byznesowa
}
function operacjaZKlientem(IdKlienta id) {
notNull(id, "id klienta");
// logyka byznesowa
}
klient.id.charAt(0);
(klient.id + " " + klient.nip).getBytes("UTF-8");
//jeśli ID jest np. longiem i data utworzenia też timestampem w longu
if (Math.min(klient.id, klient.data_utworzenia)) {}