Implements an image recognition captcha.

"; break; case 'admin/modules#description': case 'admin/modules/textimage': case 'admin/textimage': $output = t('Implements an image recognition captcha.'); break; } return $output; } function textimage_captchachallenge(&$form) { $form['captcha_response'] = array ( '#type' => 'textfield', '#title' => t('Captcha Validation'), '#default_value' => '', '#required' => TRUE, '#validate' => array('_captcha_validate' => array()), '#description' => t('Please type in the letters/numbers that are shown in the image above.'), '#prefix' => 'Captcha Image: you will need to recognize the text in it.', ); return $form; } function textimage_captchavalidate(&$captcha_word, &$correct) { $captcha_word = drupal_strtolower($captcha_word); if (($_SESSION['captcha'] != '') && $captcha_word == $_SESSION['captcha']) { $correct = true; } else { $correct = false; form_set_error('captcha_response', t('The image verification code you entered is incorrect.')); } } /** * Implementation of hook_menu(). */ function textimage_menu($may_cache) { $items = array(); $suffix = ''; if (arg(2)!=null) $suffix='/'.arg(2); $items[] = array( 'path' => '_textimage/image'.$suffix, 'title' => t('textimage'), 'callback' => '_textimage_image', 'access' => user_access('access textimages'), 'type' => MENU_CALLBACK ); return $items; } function textimage_perm() { return array('access textimages'); } function textimage_settings() { $fonts_path = variable_get("textimage_fonts_path", ""); $images_path = variable_get("textimage_images_path", ""); //check for GD if (!function_exists(imagecreate)) drupal_set_message(t('Image library not available. Textimage needs the GD library extension to be installed. Please install GD.')); //check for TTF support elseif (!function_exists(imagettftext)) drupal_set_message(t('Your image library does not seem to have TrueType font support. Textimage will work, but will use the default inbuilt font.'),'status'); //check for valid font path elseif ($fonts_path!="" && !is_dir($fonts_path)) drupal_set_message(t('The current font path is invalid. The default font will be used.')); //check for valid image path if ($images_path!="" && !is_dir($images_path)) drupal_set_message(t('The current images path is invalid. No images will be used.')); //Fonts settings $form['fonts'] = array( '#type' => 'fieldset', '#title' => t('Fonts settings'), '#collapsible' => TRUE, '#collapsed' => FALSE ); $form['fonts']['textimage_use_only_upper'] = array( '#type' => 'checkbox', '#title' => t('Use only Uppercase'), '#default_value' => variable_get('textimage_use_only_upper',0) ); $form['fonts']['textimage_fonts_path'] = array( '#type' => 'textfield', '#title' => t('TrueType Fonts Path'), '#default_value' => $fonts_path, '#size' => 30, '#maxlength' => 255, '#description' => t('Location of the directory where the Truetype (.ttf) fonts are stored. If you do not provide any fonts, the module will use the default font for text. Relative paths will be resolved relative to the Drupal installation directory.'), ); $form['fonts']['textimage_font_size'] = array( '#type' => 'textfield', '#title' => t('Font Size'), '#default_value' => variable_get('textimage_font_size',24), '#size' => 5, '#maxlength' => 2, '#description' => t('Font size of Captcha text (in pixels).'), '#validate' => array("_textimage_number_validate" => array("textimage_font_size")), ); $form['fonts']['textimage_char_spacing_max'] = array( '#type' => 'textfield', '#title' => t('Character Spacing'), '#default_value' => variable_get('textimage_char_spacing_max',10), '#size' => 5, '#maxlength' => 4, '#description' => t('Sets the kerning between letters in Captcha. Higher numbers indicate more spacing.'), '#validate' => array("_textimage_number_validate" => array("textimage_char_spacing_max")), ); $form['fonts']['textimage_char_jiggle_amount'] = array( '#type' => 'textfield', '#title' => t('Character Jiggle'), '#default_value' => variable_get('textimage_char_jiggle_amount',5), '#size' => 5, '#maxlength' => 2, '#description' => t('Sets the amount of up and down movement in the Captcha letters. Higher numbers indicate more jiggling.'), '#validate' => array("_textimage_number_validate" => array("textimage_char_jiggle_amount")), ); $form['fonts']['textimage_char_rotate_amount'] = array( '#type' => 'textfield', '#title' => t('Character Rotation'), '#default_value' => variable_get('textimage_char_rotate_amount',5), '#size' => 5, '#maxlength' => 2, '#description' => t('Sets the amount of rotation in the Captcha letters (in degrees, only works with non-default fonts).'), '#validate' => array("_textimage_number_validate" => array("textimage_char_rotate_amount")), ); $form['fonts']['textimage_char_size_amount'] = array( '#type' => 'textfield', '#title' => t('Character Size Adjustment'), '#default_value' => variable_get('textimage_char_size_amount',2), '#size' => 5, '#maxlength' => 2, '#description' => t('Sets the amount of variation in size between the different letters in the Captcha (in pixels).'), '#validate' => array("_textimage_number_validate" => array("textimage_char_size_amount")), ); //Image settings $form['images'] = array( '#type' => 'fieldset', '#title' => t('Image settings'), '#collapsible' => TRUE, '#collapsed' => FALSE ); $form['images']['textimage_images_path'] = array( '#type' => 'textfield', '#title' => t('Background Images Path'), '#default_value' => $images_path, '#size' => 30, '#maxlength' => 255, '#description' => t('Location of the directory where the background images are stored. If you do not provide a directory, solid colors will be used. Relative paths will be resolved relative to the Drupal installation directory.'), ); $form['images']['textimage_image_noise'] = array( '#type' => 'textfield', '#title' => t('Image Noise (pixels)'), '#default_value' => variable_get('textimage_image_noise',4), '#size' => 5, '#maxlength' => 4, '#description' => t('Sets the amount of noise (random pixels) in the Captcha image. Higher numbers indicate more noise.'), '#validate' => array("_textimage_number_validate" => array("textimage_image_noise")), ); $form['images']['textimage_image_lines'] = array( '#type' => 'textfield', '#title' => t('Image Noise (lines)'), '#default_value' => variable_get('textimage_image_lines',4), '#size' => 5, '#maxlength' => 4, '#description' => t('Sets the amount of noise (random lines) in the Captcha image. Higher numbers indicate more noise.'), '#validate' => array("_textimage_number_validate" => array("textimage_image_lines")), ); $form['images']['textimage_image_margin'] = array( '#type' => 'textfield', '#title' => t('Image Margin'), '#default_value' => variable_get('textimage_image_margin',10), '#size' => 5, '#maxlength' => 4, '#description' => t('Set a distance between the Captcha letters and the edges of the image.'), '#validate' => array("_textimage_number_validate" => array("textimage_image_margin")), ); $form['info'] = array( '#type' => 'fieldset', '#title' => t('Image and font information'), '#collapsible' => TRUE, '#collapsed' => FALSE ); if (isset($fonts_path)) { $imagefontinfo .= t('Number of fonts found: ').count(_textimage_font_list()); } if (isset($images_path)) { $imagefontinfo .= '
'.t('Number of background images found: ').count(_textimage_image_list()); } $gdinfo = gd_info(); $imagefontinfo .= '
'.t('GD Version: ').$gdinfo["GD Version"]; $imagefontinfo .= '
'.t(' FreeType Support: '); $imagefontinfo .= ($gdinfo["FreeType Support"]==true) ? 'True' : 'False'; $imagefontinfo .= '
'; $form['info']['captcha_info'] = array ( '#type' => 'item', '#value' => $imagefontinfo, ); return $form; } function textimage_settings_form_validate ($form_id,$form) { //check for valid font path if ($form['textimage_fonts_path'] !="" && !is_dir($form['textimage_fonts_path'])) form_set_error('textimage_fonts_path', t('The entered font path is invalid')); //check for valid image path if ($form['textimage_images_path'] !="" && !is_dir($form['textimage_images_path'])) form_set_error('textimage_images_path', t('The entered image path is invalid')); } function _textimage_number_validate ($field,$fieldName) { if (!is_numeric($field['#value'])) { form_set_error($fieldName,t("The value for")." ".t($field['#title'])." ".t("must be a number")); } } /** * Prints an image containing a textimage code. */ function _textimage_image() { //if we don't have GD2 functions, we can't generate the image if (!function_exists('imagecreatetruecolor')) return; // Set headers header('Expires: Mon, 01 Jan 1997 05:00:00 GMT'); header('Cache-Control: no-store, no-cache, must-revalidate'); header('Cache-Control: post-check=0, pre-check=0', false); header('Pragma: no-cache'); header('Content-type: image/png'); $string = _textimage_code(); // Get truetype font list $fonts = _textimage_font_list(); // Get the background images list $images = _textimage_image_list(); // Randomization amounts: $charSpacingMax = variable_get('textimage_char_spacing_max',10); // Letter spacing max (pixels) $charSpacingMin = max($charSpacingMax*.5,0); // Letter spacing minimum (pixels) $charJiggleAmount = variable_get('textimage_char_jiggle_amount',5); // Up and down randomization (pixels) $charRotateAmount = variable_get('textimage_char_rotate_amount',5); // Character rotation amount (degrees) $charSizeAmount = variable_get('textimage_char_size_amount',2); // Character size amount (pixels) $imageRotateAmount = variable_get('captcha_image_rotate_amount',12); // Image rotation amount (degrees) // Static amounts: $charInitialSize = variable_get('textimage_font_size',24); // Initial Font $imageNoise = variable_get('textimage_image_noise',4); // Amount of noise added to image $imageLines = variable_get('textimage_image_lines',4); // Amount of noise added to image $imageMargin = variable_get('textimage_image_margin',10); // Margin around image (pixels) // write text using a truetype font if (function_exists(imagettftext) && count($fonts) > 0) { // Initialize variables for the loop $characterDetails = array(); // contains the final info about each character // Build a list of character settings for the captcha string for ($i=0;$i $charSize, "angle" => $charAngle, "x" => $x, "y" => $y, "color" => $foreground, "font" => $font, "char" => $char ); // Increment the image size $imageWidth = $x + $charWidth; $imageHeight = max($imageHeight,$y+$charJiggleAmount); } // Create the image based off the string length and margin if (count($images) > 0) { // We're going to be using an image, and need a tranparent background to start with $im = _textimage_create_transparent_image($imageWidth+2*$imageMargin, $imageHeight+2*$imageMargin); $noisecolor = imagecolorallocatealpha($im, 0, 0, 0, 127); } else { // Just make a plain-jane color brackground $im = imagecreatetruecolor($imageWidth+2*$imageMargin, $imageHeight+2*$imageMargin); $background = imagecolorallocate($im, rand(180, 250), rand(180, 250), rand(180, 250)); $noisecolor = $background; imagefill($im, 0, 0, $background); } // Specify colors to be used in the image $foreground = imagecolorallocate($im, rand(0, 80), rand(0, 80), rand(0, 80)); foreach($characterDetails as $char) { // draw character imagettftext($im,$char['size'],$char['angle'],$char['x']+$imageMargin,$char['y']+$imageMargin,$foreground,$char['font'],$char['char']); } } else { // write text using a built-in font $x = 0; $y = 0; $imageWidth = 60 + drupal_strlen($string)*$charSpacingMax*.35; $imageHeight = 30 + $charJiggleAmount; // Create the image if (count($images) > 0 && function_exists(imagecolorallocatealpha)) { // We're going to be using an image, and need a tranparent background to start with $im = _textimage_create_transparent_image($imageWidth, $imageHeight); $noisecolor = imagecolorallocatealpha($im, 0, 0, 0, 127); } else { // Just make a plain-jane color brackground $im = imagecreatetruecolor($imageWidth, $imageHeight); $background = imagecolorallocate($im, rand(180, 250), rand(180, 250), rand(180, 250)); $noisecolor = $background; imagefill($im, 0, 0, $background); } // Add the text for ($i=0;$i 0) { // Prepare a larger image with a background image $im2 = _textimage_create_transparent_image($imageWidth, $imageHeight); } else { // Prepare a larger image with a solid color $im2 = imagecreatetruecolor($imageWidth, $imageHeight); imagefill($im2, 0, 0, $background); } $result = imagecopyresampled ($im2, $im, $imageMargin, $imageMargin, 0, 0, $imageWidth, $imageHeight, imagesx($im), imagesy($im)); $im = $im2; } // strikethrough imageline($im, rand(0, 120), rand(0, 120), rand(0, 120), rand(0, 120), $foreground); // Add Noise for ($x=0; $x<$imageWidth; $x++) { for ($row=0; $row<$imageNoise;$row++) { $y = rand(0,$imageHeight); imagesetpixel($im, $x, $y, $noisecolor); } } // Add Lines and Ellipses for ($x=0; $x<$imageLines;$x++) { imageline($im, rand(0, $imageWidth), rand(0, $imageHeight), rand(0, $imageWidth), rand(0, $imageHeight), $noisecolor); imageellipse($im, rand(0, $imageWidth), rand(0, $imageHeight), rand(0, $imageWidth), rand(0, $imageHeight), $noisecolor); } // Fill image with a random background image if available if (count($images) > 0) { $image = $images[rand(0,count($images)-1)]; _textimage_apply_background_image($im,$image); } //output to browser imagepng($im); imagedestroy($im); } /** * Returns a random string for use in a captcha */ function _textimage_code() { $consts='bcdgjxvmnprst'; $vowels='aeiou'; for ($x=0; $x < 6; $x++) { mt_srand ((double) microtime() * 1000000); $const[$x] = drupal_substr($consts,mt_rand(0,drupal_strlen($consts)-1),1); $vow[$x] = drupal_substr($vowels,mt_rand(0,drupal_strlen($vowels)-1),1); } $string = $const[0] . $vow[0] .$const[2] . $const[1] . $vow[1] . $const[3] . $vow[3] . $const[4]; $string = drupal_substr($string,0,rand(4,6)); //everytime we create a new code, we write it to session $_SESSION['captcha'] = drupal_strtolower($string); if(variable_get('textimage_use_only_upper',0)) $string = drupal_strtoupper($string); return $string; } /** * Returns an array of files with TTF extensions in the specified directory. */ function _textimage_font_list() { $fontdir = variable_get("textimage_fonts_path", ""); $filelist = array(); if (is_dir($fontdir) && $handle = opendir($fontdir)) { while ($file = readdir($handle)) { if (preg_match("/\.ttf$/i",$file) == 1) $filelist[] = $fontdir.'/'.$file; } closedir($handle); } return $filelist; } /** * Returns an array of files with jpg, png, and gif extensions in the specified directory. */ function _textimage_image_list() { $imagesdir = variable_get("textimage_images_path", ""); $filelist = array(); if (is_dir($imagesdir) && $handle = opendir($imagesdir)) { while ($file = readdir($handle)) { if (preg_match("/\.gif|\.png|\.jpg$/i",$file) == 1) $filelist[] = $imagesdir.'/'.$file; } closedir($handle); } return $filelist; } /** * Overlays an image to the supplied image resource */ function _textimage_apply_background_image (&$imageResource,$imageFile) { $backgroundResource = image_gd_open($imageFile,substr($imageFile,-3)); // Copy the text onto the background $backX = imagesx($backgroundResource); $backY = imagesy($backgroundResource); $textX = imagesx($imageResource); $textY = imagesy($imageResource); $randomBackX = rand(0,$backX-$textX); $randomBackY = rand(0,$backY-$textY); // Place the text onto a random location of the background image imagecopyresampled($backgroundResource,$imageResource,$randomBackX,$randomBackY,0,0,$textX,$textY,$textX,$textY); // Crop the background image to the original image size imagecopyresampled($imageResource,$backgroundResource,0,0,$randomBackX,$randomBackY,$textX,$textY,$textX,$textY); } /** * Creates transparent image resources for images with graphic backgrounds */ function _textimage_create_transparent_image($x, $y) { $i = imagecreatetruecolor($x, $y); $b = imagecreatefromstring(base64_decode(_text_image_blankpng())); imagealphablending($i, false); imagesavealpha($i, true); imagecopyresized($i, $b ,0 ,0 ,0 ,0 ,$x, $y, imagesx($b), imagesy($b)); return $i; } function _text_image_blankpng() { $c = "iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m"; $c .= "dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAADqSURBVHjaYvz//z/DYAYAAcTEMMgBQAANegcCBNCg"; $c .= "dyBAAA16BwIE0KB3IEAADXoHAgTQoHcgQAANegcCBNCgdyBAAA16BwIE0KB3IEAADXoHAgTQoHcgQAAN"; $c .= "egcCBNCgdyBAAA16BwIE0KB3IEAADXoHAgTQoHcgQAANegcCBNCgdyBAAA16BwIE0KB3IEAADXoHAgTQ"; $c .= "oHcgQAANegcCBNCgdyBAAA16BwIE0KB3IEAADXoHAgTQoHcgQAANegcCBNCgdyBAAA16BwIE0KB3IEAA"; $c .= "DXoHAgTQoHcgQAANegcCBNCgdyBAgAEAMpcDTTQWJVEAAAAASUVORK5CYII="; return $c; } ?> Анекдоты | Odesskiy Listok

Анекдоты

Анекдот дня по итогам голосования за 22 ноября 2017

В Омске суд наказал мужика, который на своей "Газели" бесплатно возил односельчан. Логично. А то так начнут самостоятельно людей перевозить, дороги ремонтировать, детские площадки строить. Потом додумаются спросить: "А на хрена нам вообще такая власть?"
Категории: Анекдоты

История дня по итогам голосования за 22 ноября 2017

Случилось это году так в 1992, в бытность мою студентом Бауманки.
Вела у нас термех Виляевская. Не знаю, сколько было ей тогда лет, но думаю за 70. Ходила она медленно, шаркающей походкой, говорила тихо. Предмет свой знала, от студентов требовала жёсткой дисциплины, не пускала опоздавших.
Занятия у нас по её предмету проходили поздно вечером, в дальнем крыле основного корпуса. Бауманка к вечеру пустела и во многих длинных коридорах в целях экономии выключали свет. Высокие потолки, мрачные стены - прямо "Хогвардс".
Однажды, заходя в алма матер, прочитали вывешенный некролог с фотографией Виляевской. Ну да, жалко "бабушку", но всё же возраст. А кто же теперь будет у нас термех преподавать?

Вечером того же дня вся группа ожидала в дальней аудитории нового преподавателя.
Света в примыкающем коридоре не было, а за окном ветер качал огромные деревья, которые отбрасывали корявые тени. Дверь в аудиторию была открыта. Вдруг в коридоре послышались шаркающие старческие шаги. Студенты оживились, побежали шутки о среднем возрасте предподавательского состава кафедры термеха, сравнения с генсеками и даже шутки о привидении Виляевской. Шаги неумолимо приближались и всё более походили на те, что мы привыкли слышать. Воцарилась натянутая тишина.

... из тёмного проёма в открытую дверь аудитории, кутаясь в шаль, вошла ... Виляевская!
Некоторые в предобморочном - большинство в шоке. Ведь некролог с фотографией все читали. Виляевская обвела взглядом нащи растерянные лица:
- Моя сестра-близнец умерла, тоже у нас на кафедре работала.
Категории: Анекдоты

Фраза дня по итогам голосования за 22 ноября 2017

Проблема предстоящих выборов не в том, чтобы просто поменять команду, а поменять её так, чтобы ни одна сука не успела метнуться зарубеж с награбленным.
Категории: Анекдоты

Анекдот дня по итогам голосования за 21 ноября 2017

Представьте себе ресторан, в котором ни шеф-повар, ни технолог, ни директор сами не едят. Да ещё и демонстративно ходят в другой ресторан, и детей отправляют туда же. Представили? Зная это, пошли бы вы в этот ресторан? А теперь подумайте о российском здравоохранении, образовании и общественном транспорте.
Категории: Анекдоты

История дня по итогам голосования за 21 ноября 2017

ВАСЯ И РЕТРОГРАДНАЯ АМНЕЗИЯ

Виктор Семёнович – высокий, вполне ещё крепкий, семидесятилетний старик, уже четыре месяца как похоронил жену и учился жить один. Получалось плохо, как будто бы он вообще никогда без неё не жил. Частенько стал разговаривать с самим собой, чтобы получать от себя ценные советы по ведению домашнего хозяйства.

Но, Виктора Семёныча это пока не особо беспокоило, ведь по профессии он психиатр и привык все держать под контролем. От стресса, с людьми ещё не то происходит, так что перекинуться парой слов с умным человеком - вполне ещё в пределах нормы.

Эх, ему бы детей с внуками, но детей не нажили, не получилось.

Как-то воскресным утром, зазвонил телефон и вытащил Виктора Семёныча из тёплой ванны. Виктор Семёныч не ждал от этого ничего хорошего, он уже четыре месяца не ждал от жизни ничего хорошего и в своих прогнозах никогда не ошибался.

Звонил дворник-узбек и на узбекско-русском что-то рассказывал.

Это было очень странно и тревожно, ведь никаким дворникам Виктор Семёныч не раздавал своих номеров, он даже имён их не знал, просто здоровался, проходя мимо.

Старик прислушался к смыслу и с трудом выяснил, что дворник нашёл какую-то потерявшуюся «белий собачка», увидел на ошейнике номер телефона и позвонил.

Одним словом, они ждут внизу у подъезда. Главная странность заключалась в том, что у Виктора Семёновича ничего похожего на «белий собачка» нет, никогда не было и быть не может, он вообще был противником животных в доме.

Но, спорить старик не стал, ведь без жестикуляции, с узбеком особо-то и не поспоришь.
Нехотя накинул пальто поверх пижамы, на всякий случай сунул в карман перьевую ручку для самообороны, и вышел из подъезда.

На пороге курили дворники в оранжевых жилетах, а в ногах у них дрожал малюсенький, мокрый от дождя, белый бультерьерчик и с опаской озирался по сторонам.

Но как только пёсик заметил Виктора Семёновича, он перестал дрожать, громко заскулил и с пробуксовкой кинулся к старику, как утопающий бросается к спасательному кругу. Щенок скакал вокруг поражённого Виктора Семёновича, непременно стараясь запрыгнуть к нему на ручки. В конце концов, пёсику это удалось.
Дворники заулыбались и сказали: «Узнал хозяина, маладес», подхватили свои лопаты с мётлами, попрощались и ушли, а старик с обслюнявленным лицом, остался стоять под моросящим дождём и со странным любвеобильным щенком на руках. На ошейнике действительно была медная пластинка с гравировкой номера телефона и именем: «Виктор Семёнович»

- Что делать? А? Куда его? Вот, сука, запачкал лапами новое пальто.
- Ну, теоретически, собака, хоть и полнейшая антисанитария, но для человека в твоём положении, вещь полезная, тем более, этот пёсик сразу полюбил тебя, как родного сына. Неси его скорей домой, а то простынешь тут после ванны.
- Нет, и думать нечего, нужно срочно его куда-нибудь отнести.
- А куда ты в пижамных штанах и домашних тапочках его понесёшь? К тому же на ошейнике телефон и имя хозяина. Твоё имя.
- Так-то да, но может это чья та злая шутка?
- А юмор в чём?
- Ну, всё равно, его ведь нужно: выгуливать, кастрировать, вязать, развязывать, кормить, лечить, потом ещё эти прививки от бешенства, плюс когти подрезать каждый месяц. Разве ты разберёшься со всем этим?
- У тебя два высших образования, ничего, справишься, зато ежедневные прогулки на свежем воздухе тебе не повредят, тем более, что когти – это, вроде, у котов.
- Нет, глупости, не смешно даже. Тебе же на лекции почти каждый день. Как ты его дома оставишь? В общем, нужно скорее сдать его в собачий питомник, приют, скотобазу, или как это у них называется?
- Скотобазу? Ну, ну. Посмотри правде в глаза. А вдруг это твой пёс, ты завёл его, потерял и от того так разволновался, что аж вычеркнул эти события из памяти? В твоём состоянии такое ведь возможно, не зря же тут табличка. И ты, вот так запросто сможешь его выбросить? Подумай, старый идиот, каково будет этому пёсику, который, кстати, тебя знает и любит, оказаться в непонятном месте, среди совсем чужих людей? Если забыл кличку, зови пока Вася и не выпендривайся, потом вспомнишь. От какого-нибудь синдрома Корсакова ещё никто не умирал. Возьми себя в руки, иди домой, попей витамины и успокойся.

Прошёл год, Профессор посвежел. Время и ежедневные прогулки на пустыре, делали своё дело. Вася превратился в огромного саблезубого коня белой масти, но с очень добрым нравом. Виктор Семёнович ежедневно приходит с ним на работу, а уже в институте освобождает от намордника, величиной с корзину для бумаг. Пёс целый день послушно сидит на кафедре и улыбается тому, кто угостит печенькой…

Однажды в кабинет профессора вошла большая группа студентов, они, понурив головы, помычали, потрепали за ухом Васю, а потом признались, что хотели как лучше и извинились за кепку. Не было никакой амнезии – это они купили Васю в элитном питомнике, заказали табличку на ошейник, подговорили дворников, но, главное, ещё перед рождением щенка, украли на кафедре старую кепку Виктора Семёновича. На этой самой кепке мама родила и вскормила Васю, поэтому он так полюбил своего хозяина, ещё задолго до их первой, исторической встречи у подъезда…
Категории: Анекдоты

Фраза дня по итогам голосования за 21 ноября 2017

Господа, не давайте женщине столько, на сколько она выглядит.
Иначе и она вам не даст.
Категории: Анекдоты

Анекдот дня по итогам голосования за 20 ноября 2017

В Москва Сити сотрудники Росгвардии, охранявшие криминального авторитета, подстрелили сотрудников полиции, охранявших ресторан другого криминального авторитета. Стрелявшие скрылись на автомобиле Майбах. При этом, один из сотрудников потерял пистолет.
Это все, что вам надо знать о проведённой реформе полиции!
Категории: Анекдоты

История дня по итогам голосования за 20 ноября 2017

В 2000 году, став военным пенсионером, решил я заняться бизнесом. Начал с риэлтерской деятельности. Особых трудностей не было. Зато было безумно интересно – на работу шёл, действительно, как на праздник, всё получалось легко, душа ликовала от сознания того, какой я……., ну вы поняли. Параллельно занимался политикой, несколько лет был помощником депутата Гос. Думы, решал практически любые вопросы, всегда был окружен людьми, благодарными и теми, кому ещё предстояло раскрутить меня на услугу или деньги, и стать в строй «благодарных». Свой первый предпринимательский юбилей, 10 лет, отмечал с помпой. Пригласил всех своих друзей-товарищей, а их было достаточно много, и среди них выделялись пятеро, кого я считал своими особо близкими. Из этой пятерки двое были на государевой службе. Один директор градообразующего предприятия, второй зам. мэра (пишу не для понтов, а для понимания ситуации по окончании истории), остальные трое – предприниматели, причем очень не мелкие. Общение у нас было на уровне «я везде»: на рыбалку им без меня не интересно, в сауну только со мной, про Дни рождения, обмывание покупок, посидеть в кафешке - вообще молчу. И совсем крутые отношения с «лепшим другом» Игорем – каждую пятницу в загородном доме он резал барана, звал 3–4 ближних, варили шулюм, жарили шашлыки. Причем он обязательно звонил, и каждый раз подчеркивал, что он не притронется к еде, если я не приеду. Конечно, я ценил такое отношение и считал, что мне повезло с друзьями.
В 2011 году наступил новый этап жизни, меня оболгали и подставили. Нюансы здесь не уместны, важен итог – уголовное дело, подписка о невыезде, арест счетов, приостановка деятельности предприятий. И самое обидное, что в первые же дни был снят с должности пом. деп. ГД. Следствие длилось долгие восемь месяцев. Ждать, когда впаяют срок, это ещё то. Но, как бы то ни было, честное имя было возвращено, извинения принесены. Вот только всё это время работникам не платилась зарплата, долг за аренду помещений был астрономический, клиенты были растянуты конкурентами. Летом 2012 года я завидовал нищему, потому, что он просто нищий, никому ничего не должный, а я нищий с лихим долгом. На тот момент спасла семья. Сын, 16 лет, не пошёл в 10 класс учиться, а пошёл работать официантом, жена продала цацки, я целый месяц копал в навозных и мусорных ямах червей и сдавал их в рыбацкие магазины, вышло тысяч пятнадцать с них. Но было понятно, что долго не продержимся. И тогда я пошёл к «друзьям». Нет, не денег клянчить, я просил об одном – взять к себе на предприятие в качестве шофёра, или сторожа, охранника, грузчика, пофиг кем, лишь бы продержаться несколько месяцев, пока я приду в себя после депрессии. Чем закончились разговоры с ними: директор завода переориентировал меня на следующий день и пропал, совсем, не отвечал больше на мои звонки и сам не звонил; Игорь ответил: «Ну, ты понимаааааешь…. ». Да, сказал ему, понимаю, и ушел. Короче, никто, нет НИКТО не помог.
Но я выкарабкался, медленно, сильно рискуя, особенно когда продали квартиру, а потом дом, чтобы было на что крутануться. Сейчас у меня не просто всё хорошо, а даже лучше, чем было. В 2016 г. купили квартиру, а в феврале этого года выкупил назад загородный дом, правда, переплатил процентов 20, но уж очень хотелось именно его. Жене купил авто, сын продолжил учебу, каждый год отдыхает на море в забугорье.
Месяц назад разослал пятнадцати человекам («друзьям») СМС с приглашением на свой ДР (юбилей). Пришли четверо. Попарились в баньке, сели за стол, налили. Первый тост от меня: «Сегодня у меня День рождения, но подарки приготовил я для вас (вручил каждому по дорогому набору – всё для бритья, одеколон). Дорогие друзья! Я пригласил вас в знак особой признательности вам за то, что благодаря вам я имею всё, что вы видите: дом, фирма, и т.д. Спасибо, что в трудное время вы отказали мне в помощи и участии, что оказались самыми настоящими гандонами, ведь возьми меня кто-нибудь к себе грузчиком или дворником, я возможно не стал бы так сильно напрягаться, да так и мёл бы территорию на чьём-то предприятии до сих пор. Выпьем друзья за то, чтобы как бы не было трудно, никто никогда не пришёл вам на помощь, потому, что только находясь в большой заднице, человек раскрывает все скрытые резервы и возможности».
Накрытый стол остался почти не тронутым, как-то у всех образовались дела и в течении часа гости разъехались. Наверное им что-то не понравилось, не знаю, но мой тост был очень и очень искренним, правда.
Категории: Анекдоты

Фраза дня по итогам голосования за 20 ноября 2017

Необязательно жить хорошо,- достаточно так думать...
Категории: Анекдоты

Анекдот дня по итогам голосования за 19 ноября 2017

- Билл Гейтс говорит, начинали они в гаражах с одним паяльником.
- Прям как мы. Но у нас ещё утюг был...
Категории: Анекдоты

История дня по итогам голосования за 19 ноября 2017

Здесь сейчас будет жуткая история о том, как силовики кошмарят малый и средний бизнес.
В общем, в столице жил предприниматель (я намерено не называю имени), у которого был собственный магазин одежды, аксессуаров и личной гигиены. Дела шли неплохо, бизнесмен подумывал о расширении. А еще у него была в центре столицы квартира, которую он решил сдавать, дабы не простаивала. Все его проблемы начались в тот момент, когда в эту квартиру въехал совсем еще молодой сотрудник службы охраны - уроженец, к слову, одного из южных регионов страны. Этот силовик, как потом выяснилось, попал в органы по блату, благодаря кумовству и личной дружбе его родственников с высокопоставленным человеком в погонах из службы охраны.
Юный силовик вел себя отвратительно, за квартиру не платил месяцами, зато систематически закатывал у себя пьянки с друзьями. И тут, вдруг, на мелкого бизнесмена очень круто наехали. Для начала следствие арестовало его жену. Для верности, чтоб не мелочиться, ей пришили госизмену. Госизмену, Карл! Жене мелкого предпринимателя. На квартире и в магазине устроили шмон, а потом арестовали еще и самого бизнесмена. А его жилец, у которого тот, от отчаяния, просил защиты, еще сам и сдал предпринимателя в заботливые руки своих коллег.
И, что бы вы думали? Бизнесмену тоже стали шить госизмену! Еще раз, мелкого предпринимателя обвинили в госизмене! Полный абсурд и произвол. Обращались, разумеется, чудовищно. Держали в адских условиях. Допрашивали по несколько раз в сутки, в том числе, и среди ночи. Устраивали очные ставки с каким-то силовиком, который, как выяснилось, выдавал себя за другое лицо.
В конце концов, правда, бизнесмена выпустили, вынудив того сотрудничать со следствием. Когда он вернулся, то выяснилось, что его жилец домогался до жены (ее тоже отпустили) и склонил ее к сексуальной связи. На свободе бизнесмен пробыл недолго. Вскоре органы опять арестовали его жену, а затем и его самого.
Он отсидел несколько лет без приговора суда. Его просто мурыжили в СИЗО, ничего не предъявляя. Когда бизнесмена, все-таки, отпустили, он уже был полностью разорен. Магазин отжали, квартиру отобрали. Это был наглый рейдерский захват, с которым честный предприниматель не мог бороться.
Так преуспевающий столичный бизнесмен превратился в городского бомжа, жившего на милостыню.
Жилец, кстати, сделал фантастическую карьеру в службе охраны. Жену бизнесмена убили в тюрьме.
Такова грустная история парижского галантерейщика по фамилии Бонасье.
Категории: Анекдоты

Фраза дня по итогам голосования за 19 ноября 2017

Да кто я, собственно, такой, чтобы себя осуждать?
Категории: Анекдоты

Анекдот дня по итогам голосования за 18 ноября 2017

Бомж проходит мимо ВАЗа.
- Откуда у людей деньги!? Я целый день чего-то собираю и только на еду хватает...
Владелец ВАЗа проходя мимо Мерседеса.
- Откуда у людей деньги!? Я целый день на работе, плюс на огороде всё лето. Хватает семью прокормить, машину заправить, про отпуск молчу...
Владелец Мерседеса проезжая мимо огромного особняка, во дворе Порш, Феррари, Мазерати.
- Откуда у людей деньги!? Я кручусь как могу, третий ресторан открыл. Жена вторую зиму в одной и той же шубе ходит...
Чиновник, выезжая на Порше из огромного особняка, объезжает длинную пробку в сопровождении ГАИ.
- Я такие законы придумываю, что все должны пешком ходить, а они все на машинах разъезжают. ОТКУДА У ЛЮДЕЙ ДЕНЬГИ!?
Категории: Анекдоты

История дня по итогам голосования за 18 ноября 2017

Вчера вечером еду в трамвае. Спереди сидит семейство с дочкой-почемучкой. Тут заходит женщина в хиджабе и малышка выдает: - Папа, а почему это привидение чёрное? Такие разве бывают?
Категории: Анекдоты

Фраза дня по итогам голосования за 18 ноября 2017

Кредитный документ – это тоже в своём роде свидетельство о разводе.
Категории: Анекдоты

Анекдот дня по итогам голосования за 17 ноября 2017

Межсезонье у травматологов - это когда мотоциклисты уже закончились, а сноубордисты ещё не начались.
Категории: Анекдоты

История дня по итогам голосования за 17 ноября 2017

Эта история произошла с моим товарищем. Был он недавно в командировке в Охотске. Находясь дома (делили жилье с коллегами), вдруг обнаружил, что нет кошёлька. Обшарили всю квартиру - нет. Ну капец, украли по ходу. Ещё и телефон куда-то делся. Через какое-то время его нашли, разряженным. Включает. Приходит первая смс: о списании средств... в размере 1 рубля. Ну всё, думают, ворюга уже начал тратить деньги с карт. Но почему 1 рубль? Смотрят смс - покупка совершена в одном из местных магазинов. Кто-то предположил, что портмоне забыто именно там, а продавец совершил покупку на минимум, чтобы владельцу пришла смс, и он сообразил, где его кошелёк. Алексей помчался в этот магазин.
Так и вышло! Продавец оказалась не только честной, но и смекалистой. Она вернула кошелёк и даже рубль, который списала с его карты. От вознаграждения девушка отказалась и после предложения взять хотя бы шоколадку, скромно выбрала самую простую.
Категории: Анекдоты

Фраза дня по итогам голосования за 17 ноября 2017

Женщина, умеющая молча слушать, в браке всегда будет счастливее болтушки.
В молчаливой женщине всегда ощущается какой-то внутренний трагизм и мужчина инстинктивно стремится её защитить.
Категории: Анекдоты

Фраза дня по итогам голосования за 16 ноября 2017

Наука избегать ненужных стычек, пожалуй, поважней науки побеждать.
Категории: Анекдоты

Анекдот дня по итогам голосования за 16 ноября 2017

Эксгибиционист случайно оказался на нудистском пляже и потерял смысл жизни.
Категории: Анекдоты
RSS-материал