ziomecki
Pytania: 4
-
2011-02-27 23:32:23
Konkurs programistyczny Google'a - startujemy?
Autor wpisu: ziomecki. Uniwersytet Waterloo ogłosił konkurs wykorzystujący elementy AI. Rzecz jest dość prosta - dwa b
-
2010-03-02 21:40:56
Sortowanie krotek w bazie
Mam dużą tabelę (20 milionów krotek) w bazie MySQL, indeks założony na pole id. Często potrzebuję wykonać sortowanie, al
-
2010-01-16 17:11:10
Polskie blogi na temat programowania
Znacie jakieś ciekawe?
-
2010-02-10 11:54:38
Obróbka plików graficznych po stronie przeglądarki
Szukam szkicu rozwiązania takiego problemu: przeglądarka ma pobrać dwa pliki graficzne i zaprezentować trzeci plik grafi
Odpowiedzi: 48
-
2010-02-05 18:42:58 Testowanie stron WWW
Proponuję, żebyś zapoznał się z Selenium - kompletnym systemem do testowania aplikacji www. W najprostszym wydaniu ma gotowe IDE oparte o Firefoxa. Do tego rozproszone środowisko do testowania z wykorzystaniem kilku serwerów. Testy można pisać w kilku językach...
-
2010-02-13 21:04:39 C++ - statystyka, programowanie gier
Mediana - wartość środkowa w uporządkowanym ciągu. Dla ciągu [1,4,5,8,10,12,14] to będzie 8. W przypadku, gdy ciąg ma parzystą liczbę elementów - bierzesz średnią arytmetyczną wartości ze środka - dla ciągu [1,4,5,8,10,12,14,15] bierzesz (8+10)/2.
Moda - wartość najczęściej występująca w ciągu.
3-5. Wszystko zależy, do czego chcesz wykorzystać te narzędzia. Rzuć okiem na ten serwis, może Cię zainspiruje: StatSheet. Świetne wizualizacje statystyk sportowych (akurat mediany i mody tam nie ma ;).
-
2010-01-14 12:45:11 Atak Brute Force na hasło w win xp [zamknięte]
Pytanie stare jak stare jest zabezpieczanie hasłem ;)
Trudno wyobrazić sobie sytuację, kiedy maszyna w sieci (lokalnej) próbuje z zewnątrz dostać się na maszynę atakując siłowo. Gdyby jednak myśleć o takim ataku - wdrożyć możliwość n prób a potem odświeżająca pauza lub 'goto admin'.
Atak z wewnątrz (jakiś trojan czy coś takiego) - polepszyć zabezpieczenia antywirusowe, wzmocnić hasła - nie ma czegoś takiego jak 'bezpieczne hasło', bruteforce'm złamiesz wszystko, kwestia czasu. Na pewno warto userom pokazać taki atak, żeby naocznie zobaczyli, co oznacza zabezpieczenie konta hasłem '111111' albo 'qwerty'.
Podejrzewam, że twój program przeglądał przestrzeń zwiększając jednocześnie długość haseł i zbiór znaków. Pod uwagę pewnie brał statystyki występowania kilku cyfr obok siebie w jakimś zbiorze testowym, co znacząco zmniejszało wielkość przestrzeni rozwiązań. Do tego poruszał się pewnie jakoś losowo po tym zbiorze. Ale wynik kilkanaście sekund dla 12-znakowego hasła i tak robi wrażenie. Przestrzeń haseł [a-z]{1,10} (małe litery, ciągi co najwyżej 10-znakowe) ma 26^10 czyli około 2^50 elementów.
Swoją drogą fajna nazwa dla tego typu softu - nikt się nie może o nic przyczepić:)
-
2010-01-17 10:40:57 Jaki jest Twój ulubiony kawał programistyczny?
W tramwaju jedzie blondynka i informatyk.
-- O, blondynka - pomyślał informatyk.
-- O, bezdomny - pomyślała blondynka.
-
2010-01-19 12:03:51 Kto jest w bazie?
SHOW FULL PROCESSLIST w jakimś kliencie MySQLowym albo phpMyAdminie.
-
2009-12-03 00:02:14 Wytyczne dotyczące hasła użytkownika w Oracle 10g
Definiujesz funkcję, która będzie weryfikowała hasło. Przykład takiej funkcji znajdziesz w katalogu {ORACLE_HOME}/rdbms/admin/utlpwdmg.sql. Tam możesz definiować ograniczenia na długość, znaki zakazane itp.
CREATE OR REPLACE FUNCTION myfunction( username varchar2, password varchar2, old_password varchar2) RETURN boolean IS n boolean; m integer; differ integer; isdigit boolean; ischar boolean; ispunct boolean; digitarray varchar2(20); punctarray varchar2(25); chararray varchar2(52); BEGIN digitarray:= '0123456789'; chararray:= 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; punctarray:='!"#$%&()``*+,-/:;<=>?_'; -- Haslo nie moze byc tozsame z nazwa uzytkownika IF NLS_LOWER(password) = NLS_LOWER(username) THEN raise_application_error(-20001, 'Password same as or similar to user'); END IF; -- Sprawdz dlugosc hasla IF length(password) < 7 THEN raise_application_error(-20002, 'Password length less than 7'); END IF; -- Sprawdz czy hasla nie ma na blackliscie IF NLS_LOWER(password) IN ('welcome', 'database', 'account', 'user', 'password', 'oracle', 'computer', 'abcd') THEN raise_application_error(-20002, 'Password too simple'); END IF; -- Check if the password contains at least one letter, one digit and one -- punctuation mark. -- Czy ma przynajmniej jedna litere, jedna cyfre i znak przestankowy -- 1. Szukaj cyfry isdigit:=FALSE; m := length(password); FOR i IN 1..10 LOOP FOR j IN 1..m LOOP IF substr(password,j,1) = substr(digitarray,i,1) THEN isdigit:=TRUE; GOTO findchar; END IF; END LOOP; END LOOP; IF isdigit = FALSE THEN raise_application_error(-20003, 'Password should contain at least one digit, one character and one punctuation'); END IF; -- 2. Szukaj litery ischar:=FALSE; FOR i IN 1..length(chararray) LOOP FOR j IN 1..m LOOP IF substr(password,j,1) = substr(chararray,i,1) THEN ischar:=TRUE; GOTO findpunct; END IF; END LOOP; END LOOP; IF ischar = FALSE THEN raise_application_error(-20003, 'Password should contain at least one digit, one character and one punctuation'); END IF; -- 3. Szukaj znaku przestankowego ispunct:=FALSE; FOR i IN 1..length(punctarray) LOOP FOR j IN 1..m LOOP IF substr(password,j,1) = substr(punctarray,i,1) THEN ispunct:=TRUE; GOTO endsearch; END IF; END LOOP; END LOOP; IF ispunct = FALSE THEN raise_application_error(-20003, 'Password should contain at least one digit, one character and one punctuation'); END IF; -- Czy nowe haslo rozni sie od starego na co najmniej 3 miejscach IF old_password is null THEN raise_application_error(-20004, 'Old password is null'); END IF; differ := abs(length(old_password) - length(password)); IF differ < 3 THEN IF length(password) < length(old_password) THEN m := length(password); ELSE m := length(old_password); END IF; FOR i IN 1..m LOOP IF substr(password,i,1) != substr(old_password,i,1) THEN differ := differ + 1; END IF; END LOOP; IF differ < 3 THEN raise_application_error(-20004, 'Password should differ by at least 3 characters'); END IF; END IF; -- Wszystko OK RETURN(TRUE); END;
Definiujesz profil, w którym wskazujesz zdefiniowaną przez siebie funkcję:
CREATE PROFILE myprofile LIMIT (...) password_verify_function myfunction;
Tworzysz użytkownika z danym profilem:
CREATE USER <user_name> IDENTIFIED BY <password> PROFILE myprofile;
That's all, folks;)
-
2009-12-09 13:03:24 HeatMap - JavaScript
Bardzo fajną biblioteką dla Pythona jest GHeat. Próbowałem - polecam.
-
2009-12-11 01:12:22 Generowanie wykresów w Pythonie lub Django [zamknięte]
Jeśli chodzi o Django - nie lepiej przerzucić to na przeglądarkę? Jest sporo fajnych bibliotek JS'owych: HighCharts, JS Charts albo Google Chart
-
2009-12-21 10:06:35 Największy system komputerowy
Co rozumiesz pod pojęciem "największy projekt"? Czy Google stanowi pojedynczy projekt/system? Facebook? Jeśli chodzi o duże systemy (internetowe), sporo informacji znajdziesz w blogu HighScalability. Helion wydał też książkę architekta Flickera - Cal Hendersona "Skalowalne witryny internetowe".
-
2009-12-24 00:11:15 wielokrotne wpisanie błędnego hasła
Wystarczy php :) Potrzebujesz dwóch rzeczy - formularza logowania i wpisu w bazie (logincount, lastlogintime) lastlogintime zawsze ustawiasz timestampem, jeśli użytkownik poprawnie się loguje ustawiasz logincount na 0, każde nieudane logowanie powiększa ten licznik o 1 Jeśli następuje próba logowania numer 3 ustawiasz jakieś flagi (jeśli masz zaprojektowane w bazie), próba logowania numer >=4 (nawet z poprawnym hasłem) o ile nie minął czas karencji nie wpuszcza użytkownika do serwisu.
(Jak tu się robi podkreślenia?)
















2
8
