Wycieki pamięci, zawieszanie programu, problemy z kompatybilnością są niczym wobec prawdziwych, życiowych problemów, z którymi muszą borykać się programiści! Znalezione na StackOverflow.com:
Jestem programistą pewnego oprogramowania do tworzenia drzew genealogicznych (napisany w C++ i Qt). Nie miałem żadnych problemów, aż jeden z moich klientów wysłał na skrzynkę pocztową raport z błędem. Problem polega na tym, że ma dwoje dzieci z własną córką i nie może użyć mojego programu z powodu tego błędu.
Te błędy są wynikiem moich różnorakich założeń dotyczących funkcjonowania drzewa genealogicznego (przykładowo, po przejściu cyklu, program zakłada, że X nie może być jednocześnie ojcem i dziadkiem Y).
Jak mogą rozwiązać te problemy bez usuwania wszystkich założeń dotyczących funkcjonowania drzewa genealogicznego?
Jak wy byście rozwiązali ten problem?
Prosty skrypt, który zrobiłem dla znajomego, pozwalający automatycznie oddać głos w ankiecie (może to nie za bardzo etyczne, ale kogo to obchodzi).
Przykładowa forma głosowania (update, dzięki Tomek) wygląda tak:
<html><body>
<form name="Poll" action="vote.php" method="post">
<input type="hidden" name="param1" value="param 1 value" />
<input type="hidden" name="param2" value="param 2 value" />
<input type="hidden" name="param3" value="param 3 value" />
<input type="submit" value="Submit" />
</form>
</body></html>
Forma zawiera 3 ukryte pola (może to być np. identyfikator głosowania) oraz button Submit, należy również zwrócić uwagę na sposób przesyłania danych, tzn. POST lub GET. Skrypt do głosowania:
<?php
$url = 'http://www.example.com/vote.php';
// lista przegladarek
$agents = array("Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; Media Center PC 5.0)",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)",
"Opera/9.63 (Windows NT 6.0; U; ru) Presto/2.1.1",
"Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5",
"Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.8.1.18) Gecko/20081203 Firefox/2.0.0.18",
"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.16) Gecko/20080702 Firefox/2.0.0.16",
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-us) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/3.2.1 Safari/525.27.1"
);
$ch = curl_init();
// parametry
$fields = array('param1' => urlencode('param 1 value'),
'param2' => urlencode('param 2 value'),
'param3' => urlencode('param 3 value'),
'submit' => urlencode('Submit vote')
);
// zbuduj poprawny ciag dla cURL
foreach($fields as $key => $value)
{
$fields_string .= $key.'='.$value.'&';
}
rtrim($fields_string, '&');
$ch = curl_init();
// adres strony
curl_setopt($ch, CURLOPT_URL, $url);
// ilosc parametrow
curl_setopt($ch, CURLOPT_POST, count($fields));
// parametry POST
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
// przegladarka
curl_setopt($ch, CURLOPT_USERAGENT, array_rand($agents));
// zwroc tylko wynik
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
// wyswietl wynikowy kod html
//echo $result;
?>Skrypt wymaga zainstalowanej biblioteki cURL.
Napisał bartek w kategorii
Programowanie Programowanie
Jeśli jesteś ciekawy ile linijek kodu napisałeś, a ile jest w nich komentarzy, w twoim projekcie, który wydaje Ci się duży, możesz to łatwo sprawdzić i pozbyć się wszelkich złudzeń 
CLOC (Count Lines of Code) to program, który dokładnie analizuje pliki źródłowe w kilkudziesięciu językach programowania, pokazująć ile tak naprawdę jest samego kodu w kodzie 
http://cloc.sourceforge.net
Chciałbym serdecznie Was zaprosić na stronę domową Wojtka Muły, który zebrał na niej sporą liczbę algorytmów oraz ciekawych snippetów napisanych w assemblerze z wykorzystaniem najnowszych rozszerzeń procesora (od x86 po SSE4).
Najlepszym przykładem talentu Wojtka jest biblioteka sse2string, czyli najczęściej wykorzystywane funkcje znanej z języka C, biblioteki string.h, napisane w assemberze z wykorzystaniem rozszerzeń SSE2.
Wojtek prowadzi również bloga, gdzie można znaleźć ciekawe snippety w assemblerze, pierwszy z brzegu przykład warunkowej wymiany rejestrów:
sbb edx, edx ; part of step 2. - edx = 0xffffff if CF=1, 0x000000 otherwise
mov ecx, eax
xor ecx, ebx ; step 1
and ecx, edx ; completed step 2. - now C is 0 or (A xor B)
xor eax, ecx ; step 3
xor ebx, ecx ; step 4
Myślę, że każdy fanatyk assemblera znajdzie tam coś dla siebie.
Strona domowa — wm.ite.pl
Blog — wmula.blogspot.com
Znakomity przegląd optymalizacji wykonywanych przez kompilatory HLL, przedstawiony w formie prezentacji autorstwa Rolfa Rollesa.

Prezentacja — Binary Literacy — Static — 6 — Optimizations
Pobieranie adresu EIP to jedna z ważniejszych czynności w kodzie wirusów, exe-pakerów, exploitów etc., poniższy artykuł prezentuje standardowe metody jak delta offset oraz te mniej znane na uzyskanie własnego adresu EIP.
http://corkami.blogspot.com/2010/03/si-cest-ton-corps-qui-bouge-cest-ton.html
Jeśli ktoś zna inne metody — dopiszcie się do komentarzy.