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

Дерибас из рода "чекистов"

user warning: Table './odessapage/cms_sessions' is marked as crashed and last (automatic?) repair failed query: SELECT COUNT(sid) AS count FROM cms_sessions WHERE timestamp >= 1544940559 AND uid = 0 in /home/hepa/public_html/new/includes/database.mysql.inc on line 121.

Пожалуй, одним из самых ярких воспоминаний моего детства остается огромный портрет незнакомки в длинном черном платье, украшенном нитками бус, руки в меховой муфте – молодая женщина с высокой прической грациозно расположилась в старинном кресле. Картина, казалось, занимала все пространство комнаты, и из какого угля ни глянь, обязательно "споткнешься" о темные, задумчивые глаза. Просторная и светлая, располагающая к шалостям "детская", лишь подчеркивала чужеродность "строгого" портрета. Он создавал атмосферу загадочности, взгляд безмолвной "воспитательницы" укорял и сковывал, прекращая порой чересчур шумные и подвижные игры. Может быть, еще и поэтому, перебираясь с Молдаванки в "хрущевку" на Черемушки, родители оставили картину друзьям…
И вот, через четверть века, в Виннице, в семье наших родственников Де-Спиллеров, я вновь стою перед знакомым с детства лицом. Без сомнения – это она, женщина в кресле, но… простоволосая, с легкомысленной прядью на лбу, без украшений, более милая и "домашняя". Это полотно известного одесского художника Буковецкого, оно еще крупнее "моего", но не окончено. Помню, что эту изящную даму бабушка называла "Марой".
Сегодня я, конечно, знаю гораздо больше о Марии Александровне де-Рибас, правнучке Феликса Михайловича – брата основателя Одессы. Дочь известного писателя Александра де-Рибаса, Мария (а в театральных кругах – "Мара") посвятила себя служению Мельпомене и была заметной оперной певицей начала прошлого века. Вот строки из некролога (Мария Александровна рано покинула этот мир), помещенного в журнале "Театр, клуб, кино" за 1927 год:
"С именем М.А. де Рибас связан знаменательный, переломный период в истории нашего оперного дела. 1905 год властно потребовал уничтожения аристократического пережитка; итальянская опера после упорной борьбы сдала свои позиции. Однако только в 1911 году в Гор. театре открылся первый сезон "постоянной русской оперы". М. А. де Рибас был поручен лирический репертуар. Она должна была заменить только что замолкших "заморских соловьев", несмотря на всю яркость впечатлений, оставленных ими избалованным одесситам".
Более 15 лет проработав в городском театре (после революции – в театре им. Луначарского), Мара создала немало свежих, ярких образов. Нури в "Долине", Мими в "Богеме", Лакме в опере Делиба, Мария в "Мазепе" и, наконец, мадам Баттерфляй – эти ее перевоплощения завоевали признание отечественных и европейских театралов.
"Если вспомнить, - заключает автор некролога, - что Мария Александровна в то же время являлась камерной певицей и пианисткой, то становится ясным, что тяжелый недуг (туберкулез, - авт.), издавна подтачивавший ее здоровье, унес в ее лице выдающуюся артистическую натуру".
Безусловно, рассказ о жизненном и творческом пути Мары де-Рибас – привлекательной женщины, незаурядной драматической актрисы, блестящей одесской примадонны – был бы интересен сам по себе. Однако не она является героиней нашего повествования, хоть мы с ней и не прощаемся. На сцену, увы, не театральную, а реальную, историческую выходит главный персонаж …
Имя Терентия Дерибаса можно без труда обнаружить в ряде справочников, а также в последнем издании Большой Советской Энциклопедии. Этот крупный чекист соседствует здесь со знаменитым адмиралом Иосифом де-Рибасом. Насколько случайно данное совпадение? – вот предмет нашего исследования!
Из БСЭ мы узнаем, что Терентий Дмитриевич Дерибас родился в местечке Онуфриевка, ныне Кировоградской области 9 апреля 1883 года. Умер же 22 августа 1939-го, и сам год его смерти может многое подсказать понимающему читателю. Профессиональный революционер, Дерибас вступил в партию в 1903 году, активно участвовал в революции 1905-1907 г.г. Неоднократно арестовывался, был в ссылке. К Октябрьским событиям руководил большевистской организацией г. Троицка Оренбургской области. В 1918-19 г.г. воевал против белоказаков и белочехов, возглавлял политотдел дивизии. В 1920-м направлен в органы ВЧК, участвовал в подавлении Кронштадтского мятежа. С 1929 г. – в органах ОГПУ-НКВД на Дальнем Востоке. Избирался в члены ЦК ВКП(б), в 1935-м – комиссар госбезопасности 1-го ранга, член коллегии ОГПУ. Награжден орденом Ленина и двумя орденами Красного Знамени. Этим сообщением энциклопедия и ограничивается; более же подробно о деяниях и закате карьеры чекиста нам расскажут другие источники.
Некоторые детали, касающиеся биографии Дерибаса, мне любезно сообщил доцент истфака ОГУ Иван Калмакан (ныне покойный). Так, в частности, Иван Кириллович обнаружил, что Терентий быстро освоился в "органах" и уже через год стал помощником начальника, а вскоре и начальником секретного отдела ВЧК-ГПУ. А в конце 1921 года партия доверила молодому чекисту весьма ответственное задание – надзор за лидером ЦК партии левых эсеров (еще недавно союзников большевиков) Спиридоновой, которая к тому времени уже дважды задерживалась за "антисоветскую деятельность".
По-видимому, это был первый случай, когда Терентий Дмитриевич обнаружил редкую способность "бить своих". Уже в 1923 году товарища Дерибаса направляют в Одессу с целью "разобраться" с руководителями местного отдела НКВД, который в ту пору фактически представлял собой "крышу" для уголовного элемента (подробно об этом см. у В. Лебедева, "Совершенно секретно", №12 за 1998 г.). Здесь "ревизор" быстро выявляет коррумпированных "коллег" и выходит на крупнейшего одесского контрабандиста Нафталия Френкеля. Тот предлагает Дерибасу огромную взятку; чекист для вида соглашается, а на самом деле ведет тонкую игру, докладывая о ее развитии непосредственно Дзержинскому. Результатом становится арест всей верхушки Одесской ЧК и контрабандиста № 1; впоследствии все (кроме Френкеля) расстреляны.
Выясняется, однако, что этот визит в Одессу был для Терентия Дерибаса не первым. Оказывается, революционер уже "бывал в Одессе, и на своей улице жил, даже в том самом доме (некогда принадлежавшем Феликсу де-Рибасу, - авт.). Только, увы, в подвале: у сапожника скрывался от царской охранки в 1906 году".
Это выдержка из повести М. Письманика "Комиссар Государственной безопасности". В ней автор сообщает также об участии Терентия в разгроме Антоновского мятежа, о его дружбе с Маяковским, теплых отношениях с Горьким, Ярославом Гашеком, Гамарником, Фурмановым и Блюхером.
Опять-таки из беллетристики нам известен финал профессиональной деятельности чекиста. А. Светланин в своей книге "Дальневосточный заговор" так описывает это событие:
"По Приморскому краю "разнеслась самая оглушительная новость: на заседании бюро крайкома, по шифровке из Москвы, был обезоружен, скручен комиссар госбезопасности Терентий Дерибас! Мне приходилось видеть этого известного чекиста, о котором с похвалой отзывался еще Ленин, раза два на парадах. Это был совершеннейший заморыш и неправдоподобный карлик с бородкой Иисуса (он явно работал под Дзержинского). В его длиннополой шинели тяжелого драпа и шапке-буденовке, Дерибас казался игрушечным солдатиком. Просто не верилось, что это ничтожное существо может наводить ужас на население огромного края. Но наводило…".
Характеристику Терентия дополняет Лебедев: "…Дерибас был ярко выраженным вырожденцем. Карлик с огромными оттопыренными ушами, шелушащейся кожей и скрипучим фальцетом. Типичный садист, он ненавидел все и всех, не упускал случая причинить боль. Если коллегию ОГПУ считать ножом гильотины революции, то Дерибас был, безусловно, острием этого ножа".
Живописная страшилка, не правда ли? Классический образ злодея-недомерка в чекистской форме. Мы, впрочем, не намерены оспаривать неприятные душевные качества Терентия, хотя все тот же Письманик, например, запомнил Дерибаса как "очень энергичного, доброго и большого человека". И если мы предположим, что эпитет "большой" относится к высокой должности чекиста, то, вероятно, ошибемся. Поскольку автор Владимир Листов в своей книге "Комиссар Дерибас" (Москва, Воениздат, 1985 год), опираясь на воспоминания племянницы Дзержинского, описывает Дерибаса как человека "высокого роста" и даже как "детину". Передает он и другие слова племянницы, между прочим, работника центрального аппарата:
"Мне неоднократно приходилось слышать, как Феликс Эдмундович разговаривал по телефону с товарищем Дерибасом. Я знала, что в чекистской среде Дерибас пользовался большим уважением, как авторитетный руководитель и хороший товарищ. Не раз я слышала, как Дзержинский советовал своим сотрудникам: "Поговорите с Дерибасом" и неоднократно говаривал, что Терентий Дмитриевич " в чекистской работе является профессором"…
Однако что это? Развивая тему "чекиста-каннибала", уже цитируемый нами Вадим Лебедев делает неожиданное сообщение:
"Одесситы слишком часто подшучивали над историей, - замечает автор, - теперь история подшутила над одесситами. Дерибас был отпрыском известной в городе фамилии. Прапрадед чекиста строил Одессу".
Любопытно, что это не единственное свидетельство подобного рода. Например, Борис Ширяев в документальном романе "Неугасимая лампада", изданном в Нью-Йорке в 1954 году, намекая на дворянское происхождение большевика, указывает, что "Вальтер де-Рибас превратился в Терентия Дерибаса, чекиста"!
Обоих авторов вроде бы не назовешь пристрастными; с другой стороны, редкий публицист преодолеет искушение явить читателю сенсационное "открытие". Но вот что думает по этому поводу лицо, что называется, "заинтересованное". Биограф рода де-Рибас, дальний родственник адмирала де-Рибаса по материнской линии, ныне покойный Сергий Положенский пишет в письме своему племяннику Александру Сабиру-де-Рибасу:
"… Имейте в виду (может, вы этого не знаете), что фамилия де-Рибас жестоко оскандалилась за последнее время, выдвинув из своей среды самого лютого чекиста, ставленника и ближайшего сподвижника-любимца самого Дзержинского. Историки описывают его как некую "лейденскую банку" зла, заряженную самим Сатаной. Он ненавидел все живое и старался напакостить каждому, кому только мог, а "мог" он очень многим. Его боялись даже прочие чекисты и, в конце концов, вынудили его к самоубийству. Сей "герой" приходится мне и вашему отцу приблизительно пятиюродным братцем, он потомок Феликса де-Рибаса".
В следующем письме Положенский развивает эту тему:
"Благодаря кузине Виктории (Виктория Варрлих, урожденная Яхненко, - авт.) кое-что удалось связать между собой. От нея я вызнал, что брат ее деда имел дочь, знаменитую в свое время в Одессе оперную певицу, которая была замужем за своим троюродным братом де-Рибасом. Это известная "Мара" де-Рибас. Она имела сына и дочь. Боюсь, что это сын и был знаменитым чекистом. До революции он был католиком, Вальтером де-Рибасом, после революции перекрестился и стал вдруг Терентием – очевидно, в честь своего прадеда по матери Терентия Яхненко. Записался же в крестьянские сыновья потому, что чекистом ему, конечно, неудобно было быть "из аристократов". Вот так круг замкнулся".
Но замкнулся ли? До сих пор мы бросали аргументы лишь на одну чашу весов, образовав тем самым серьезный перевес в пользу присутствия в Терентии "голубой крови". Между тем, как быть со свидетельством сына чекиста, Андрея Терентьевича Дерибаса, автора следующих строк о родителе:
"Вам, наверное, будет интересно узнать, как сложилась судьба одного из крестьян, отпущенных на волю Дерибасами (здесь, видимо, неточно: "раскрепостить" могли лишь отца будущего чекиста, - авт.), жившими в Одессе, работавшими в библиотеках (речь идет о старшем в ту пору де-Рибасе, Михаиле Феликсовиче, - авт.), действительно ставшими просветителями, а не крепостниками. Крестьяне-вольноотпущенники сохранили их фамилию Дерибас".
Мы располагаем также письмом внука комиссара, доктора физико-математических наук, лауреата Ленинской премии Андрея Андреевича Дерибаса, который настаивает, что родина деда "в Кировоградской области, около Кременчуга, и расстояние до Одессы вроде небольшое…".
И верно, Онуфриевка от нас недалече, через область, но с чего бы отцу Терентия, судя по отчеству сына – Дмитрию, срываться с "насиженных мест", уподобляясь перелетной птице? Впрочем, давайте предоставим слово официальному документу, а именно автобиографии, собственноручно заполненной Терентием.
Из нее мы узнаем, что будущий комиссар все же "родился в Онуфриевке, в семье богатых крестьян. Учился в Кременчугском реальном училище, но был арестован во время выпускных экзаменов в 1904 году. Экзаменов не держал, с семьей порвал. В 1910 году женился на Нине Ивановне Рождественской – профессиональной революционерке, секретаре окружной партийной организации".
И о происхождении фамилии чекиста. Уже упомянутый нами ранее автор Письманик приводит следующее разъяснение, данное ему Терентием: "Неверно фамилию мою знаменитую произносите. Скорее всего, надо: Дери-бас. Видать у какого-то предка моего голос дюже зычный был, истинно запорожский"…
Что же касается Мары де-Рибас, то мы, к сожалению, не владеем ее полной биографией. Но и того, что нам известно, достаточно для опровержения версии ее "материнства" по отношению к Терентию-Вальтеру. Мужем Марии Александровны был не гипотетический ее троюродный брат по фамилии де-Рибас, а вполне реальный господин Икономиди. И были у Мары два сына – Рафаил и Аристид, двое симпатичных щекастых малышей (судя по фотографии, между ними два-три года разницы) без признаков вырождения, вроде бы свойственных Терентию. Однако самый "убийственный" для версии Положенского довод состоит в том, что Мара, умершая далеко не старой в 1927 году, должна была приходиться чекисту скорее сестрой, чем матерью. На этом мы без сожаления расстаемся с поэтичной байкой, где мать – добрая красивая фея, а сын – противный злой карлик, и полагаем "прекрасную незнакомку" из моего детства полностью реабилитированной.
Вместе с тем мы не спешим брезгливо отказывать Терентию в принадлежности к знаменитой фамилии. Дело в том, что генеалогия де-Рибасов вообще, а тем более их "одесской ветви", весьма запутанна. Нам, действительно, известно о родстве де-Рибасов с Яхненками (а это известная и многочисленная одесская фамилия середины XIX века. Наиболее заметный ее представитель – Семен Яхненко – городской голова), причем в нескольких поколениях, поэтому происхождение Терентия сразу от двух ветвей де-Рибасов – Яхненко теоретически возможно. Нас не смущает и тот факт, что мы не находим ни Дмитрия, ни любого другого де-Рибаса, годящегося в отцы чекисту – раскидистое "древо" фамилии, увы, не изучено до "последнего листочка".
Приведем еще одну любопытную мысль Положенского: "Крестьянином он (Терентий) вряд ли был. Такое типичное вырождение крестьянским семьям не свойственно". Зато часто бывает результатом браков между родственниками, добавим мы, и это соображение усиливает позиции Положенского.
Что же до двойного имени Вальтера-Терентия, то де-Рибасы в массе своей были католиками, и каждый из них был крещен несколькими именами. Так, например, у адмирала де-Рибаса, кроме имени Иосиф, было еще два: Паскваль и Доминик. А еще один представитель фамилии – полковник де-Рибас, кроме первого имени – Иван, часто именовался и вторым – Артюр. И на фоне Ивана-Артюра, согласитесь, не так уж странно выглядит сочетание Терентий-Вальтер!
Здесь, пожалуй, и следует остановиться, ибо по мере увеличения допущений и предположений мы все больше скатываемся к жанру "исторической фантастики".
Казалось бы, есть верный способ поставить в споре жирную точку – обратившись к пресловутым "архивам Лубянки", поднять дело Терентия. Однако обстоятельства гибели чекиста (версия самоубийства, на наш взгляд, не выдерживает никакой критики) вряд ли способствовали раскрытию "семейных тайн", а потому анкетные данные Дерибаса наверняка согласуются с приведенными в БСЭ. То есть, правда о рождении "оборотня" Вальтера-Терентия "унесена в могилу"…
Отслеживая и анализируя события и факты, связанные с личностью Терентия Дерибаса, поневоле приходишь к неожиданному выводу. Ведь ленинские похвалы в адрес комиссара, его близость к таким ключевым фигурам революции, как Дзержинский и Уншлихт, заметное участие в этапных событиях "красного" века, мемориальная доска на его родине, в Онуфриевке, две улицы его имени в Троицке и Павлодаре – все живописует Дерибаса человеком, как минимум, неординарным. И это его "из ряда вон" было отмечено рядом прозаиков. Представляется, что был он значителен в своих злодеяниях, велик в своем падении. Чудовище? Возможно! "Дьявол во плоти" – ужасно, но каков калибр! И если Терентий-Вальтер действительно из "тех самых", то он очередной де-Рибас, оставивший, пусть зловещий, но все же "след в истории"!


урод и ублюдок

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


Дерибасовские не совпадения

Ужасно интересно, тем более, что моя фамилия именно Дерибас. Я правнучка того самого Терентия Дмитриевича. Меня интересует следующее:
1. Ваше мнение о происхождении фамилии. В духе времени, особенно интересует связь с фамилией Дерипаско. По внутрисемейной версии - это исходное ее звучание, в то время как собственно "Дерибас" - отголоски пребывания в Одессе.
2. В 80х случайно сталкивалась с "подвалом", если правильно помню, одной из московских газет. Речь шла о комендантах Кремля. Там говорилась о 2х-3х летнем комендатстве прадеда. К тому моменту деды (Андрей Терентьевич и Валентина Степановна Дерибас -1986-7гг) уже покинули этот мир, так что уточнить было не у кого. Нет ли у Вас каких-либо сведений на этот счет.
Кстати, еще одна доска была в Хабаровске. 100% была, сами открывали.
Александра Дерибас


Александре Дерибас

Здравствуйте, Александра!
Я думаю, что по интересующим Вас вопросам мы могли бы с Вами пообщаться в И-нете. Мой адрес:deribashouse@rambler.ru
С уважением, Олег


На деревню дедушке

Вопросы "на деревню дедушке, Константину Макаровичу". Статья была напечатана очень давно. Газета уже давно не выходит и автор никогда не заглянет на эту веб-страничку.


Oдесские Совпадения

Совпадения!? Меня, как и автора, зовут Олег. Я, как и автор, родился в Одессе в 1961 году.
Суперсовпадение!!! Живу я в Виннице и портрет М.А. Де-Рибас работы Буковецкого висит на стене в моей квартире.
Тёзке-автору и родственнику большущий привет из Винницы!


Одесские Совпадения

Ваше сообщение чрезвычайно интересное. Я прапрапраправнук Иосифа де Рибаса и занимаюсь генеалогией рода де Рибас и Дерибас. Сообщите пожалуйста Ваше родство с Марией Александровной де Рибас, Вашу фамилью и Ваших родителей.
Анджей Словицки
aslowicki@hotmail.com


Отправить новый комментарий

Содержимое этого поля хранится скрыто и не будет показываться публично.
  • Допустимые HTML-теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img> <p> <br> <tr> <td> <table>
  • Строки и параграфы переносятся автоматически.
  • Images can be added to this post.
Больше информации о возможностях форматирования