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 >= 1576018134 AND uid = 0 in /home/hepa/public_html/new/includes/database.mysql.inc on line 121.

Многоуважаемая редакция газеты «Одесский Листок»!
Хочу через газету поблагодарить моих милых подруг Лизу Заметко и Марину Боброву за прекрасный подарок к моему дню рождения – годовую подписку на Вашу газету.
Когда-то я получала газетку «Одесский Листок», которую редактировала покойная Тамара Белорусец. Я с ней познакомилась по телефону, так как несколько раз посылала в редакцию свои стихи, а также всегда благодарила ее за газетку, которая выходила в свет на четырех страницах. Газетка была для меня и моей семьи словно свежим воздухом с моря и приветом из нашей неповторимой Одессы…
И вот теперь я и мои домочадцы буквально наслаждаемся каждым номером Вашего «Одесского Листка». Как разумно и хорошо, что поддержали традицию и подхватили знамя, издавая газету!
Спасибо Вам и так держать на долгие годы!!!
Попрошу Вас послать подписку-подарок нашему доброму и верному другу Борису Перельману к его дню рождения.
С благодарностью и уважением, Анна ХАЖИНСКАЯ, Wheeling, IL

P.S. Посылаю Вам два мои стихотворения, посвященных нашему любимому городу Одессе, а также газете «Одесский Листок».

Как свежий, красивый весенний цветок
В наш дом заглянул вдруг «Одесский Листок».
Для нас, одесситов – подарок бесценный,
Навеянный памятью лет незабвенных…
Находят друг друга соседи по дому,
Скучая по городу, сердцу родному.
Ты словно как славный, надежный дружок
Нас всех собираешь, «Одесский Листок».
Читают тебя и Нью-Йорк, и Чикаго,
Ведь нас, одесситов, везде есть немало.
Цвети, расцветай, продолжай начинанье.
«Одесский Листок» – тебе наше признанье!

* * *
Как близка нам газета «Одесский Листок»!
Словно памяти нашей родной огонек.
Вспоминаем мы сердцу родные места,
Где решалась судьба, и бежали года…
Где акации запах пленил нас весной,
И каштаны шептали зеленой листвой,
Воздух с моря соленый лицо освежал,
А красавец наш Оперный город венчал…
Сколько славных и добрых знакомых имен,
Сколько ярких событий далеких времен!
И приходит газета на новый порог,
Словно памяти нашей родной огонек…

Уважаемая редакция!
Посылаю вам еще несколько стихотворений из цикла «Путевые заметки». Они посвящены впечатлениям от поездки во Францию. В №143 газеты была опубликована часть этого цикла, получившая отклик не только читателей из Калифорнии, но и из ряда других стран: Израиля, Франции, Украины. Читатели пользовались сайтом газеты. Буду Вам искренне признателен за опубликование данных стихов. [Читайте стихотворения на стр. хх]
С уважением, Николай ШАПАРЕВ, Sherman Oaks, CA

Уважаемая редакция!
Предлагаю Вашему вниманию мои короткие стишки, содержащие не более четырех строк. Эти стишки я назвал “Афорайзмы”. Буду надеяться, что они вам понравятся. [Читайте “Афорайзмы” на стр. хх]
Всего наилучшего, Виктор РАЙЗМАН, Santa Monica, CA

Добрый день, уважаемые труженики пера и добра!
Во-первых, примите мои поздравления с началом Нового, 2007 года и пожелания ЗДОРОВЬЯ. Здоровья физического, морального, материального и газете, и членам редколлегии так полюбившейся и похорошевшей газеты, и обязательно всем читателям-единомышленникам. Всего самого хорошего, того, что носит скромное название – ЧЕЛОВЕЧЕСКОЕ СЧАСТЬЕ. Так будем счастливы, хронические одесситы, со своими близкими и друзьями, даже если они и не были «там» одесситами!
Во-вторых, как всегда, прошу вас посылать газету моей коллеге, конечно, по Одессе, Каплун Исанне Тевельевне. Она живет в Германии. Сегодня, 16 декабря – день ее рождения.
В-третьих, мои друзья из Германии, получившие декабрьскую газету, в списке людей, которых вы благодарили, обнаружили имена своих давних друзей Шафиро Галины и Леонида из Нью-Джерси. Если вы сможете, сообщите мне их номер телефона или им – мой. Заранее благодарна, как пел когда-то Магомаев: «за все тебя благодарю», моя любимая газета.
Вот, кажется, и все,
Ива ЛЬВОВСКАЯ, North Hollywood, CA

Всей команде “Одесского листка”!
С поздравлениями и наилучшими пожеланиями с Рождеством и Новым годом!
Приятно ощущать себя принятой в Вашу многочисленную и благожелательную творческую семью. В Европе 2007 год признан годом СЕМЬИ. Пусть этот девиз пройдет через наш Мост Европа – США, принесет всем нашим семьям благополучие, радость и надежды!
С уважением,
Елена АНАНЬЕВА, Штайнбах, Германия

Дорогие друзья!
Все-все, кто хоть как-то содействует существованию НАШЕЙ ГАЗЕТЫ, от издателя до распространителей! Поздравляем Вас-нас-себя со всеми прошедшими и наступающими праздниками! Желаем Вам-нам-себе много-много счастья, радости, здоровья и богатства! Чтобы горе и беда обходили Вас-нас стороной! Чтобы «Одесский Листок» всегда был лучшей и любимой газетой для миллионов людей. С Новым 2007 годом!
С уважением, Инна и Несиян ТОБАК, Plymouth, MN

Дорогие друзья!
Сердечно поздравляю весь коллектив «Одесского Листка» и читателей с Новым Годом. Желаю крепкого здоровья, счастья, успехов, исполнения желаний и всего самого-самого лучшего.
Член редколлегии Юрий ЖУРАВЛЕВ, Филадельфия

Новогоднее поздравление читателям «ОЛ»
В понятье «счастье человека»
У каждого есть свой аршин.
Ведь каждый сам «философ века»,
И взгляд на счастье не один.
Один мечтает быть богатым.
Другой – здоровым хочет быть.
Кто жаждет стать уже женатым,
Иметь детей и их любить.
Кто ищет славы и успеха,
А кто мечтает жить в тиши.
Кто любит юмор, много смеха.
Другие – что-то для души.
У каждого – свои проблемы,
У каждого – свои мечты.
И сколько ни касаться темы,
По-разному ответим мы.
И все-таки все пожеланья
Мы начинаем: «Счастья Вам».
Какое в этом содержанье, –
Вот это каждый знает сам.
Пусть все мечты, все ваши планы
Осуществит грядущий год!
Тогда и счастья будет с вами,
И к нам тогда оно придет!
Ева и Моисей ВАЙНШТЕЙН, West Hollywood, CA

Уважаемая редакция!
Я читаю «ОЛ» с 2000 г., печаталась там, переписывалась с Тамарой Белорусец. Первая статья вышла в августе 2000, называлась она «За тридцать шестую!» Последняя – в мае 2004 – «Учитель. Педагог. Личность» о замечательном педагоге, нашем классном руководителе, преподавателе Университета Григории Александровиче Зенкевиче.
В феврале 2001 г. напечатала у вас призыв: «Откликнитесь!», где просила всех бывших и настоящих учеников и учителей позвонить мне, собраться, вспомнить родную школу. Позвонили несколько человек, но собраться не удалось по разным причинам, главным образом, – техническим.
Я, Жовинская (Бирман), училась в 36-й школе в 1930-40 г.г. Сначала школа была на Пастера, 17, а в 1935 (36?) переселилась на Щепкина, 5. Я жила в прилегающем доме на Пастера, 19. 10 лет в школе – это счастье невообразимое! Такая обстановка, такие ученики, такие люди работали и учились там! До сих пор я храню документы тех лет. В последний день учебы, 17 мая 1940 г. по классу была пущена тетрадь с предисловием, и в ней все ученики 10А записывали свои впечатления, раскрывали душу. Эту тетрадь доверили мне как старосте класса. Она у меня и сейчас. Я возила ее в эвакуацию, давала читать своим детям. Сейчас, уже ветхая, она хранится у меня вместе с другими, последующими записями о встречах, письмами от друзей со всех концов Союза. Это – огромное счастье и глубокая скорбь об ушедшем.
Моя жизнь сложилась неплохо. Окончив филологический факультет, 51 год я проработала в Одесском Университете. В 1999 г. уехала в Америку. Глубоко печалюсь о родной Одессе, школе, родном ОГУ, теперь Национальном Университете. Я поддерживаю Иву Львовскую: хорошо было бы встретиться, пока не поздно, поговорить, или хотя бы перезваниваться друг с другом. А еще лучше (мечта!) собрать записи о 36-й школе и издать их. Там было бы очень много интересного и полезного для нынешней молодежи и в Америке, и у нас, там.
С уважением, Шифра ЖОВИНСКАЯ, Сакраменто

Уважаемая редакция газеты «Одесский Листок»!
В письме Полины Кругляковой, помещенном в № 144 «ОЛ», упомянуты актеры Одесского Русского драмтеатра им. Иванова Лия Бугова и Наум Соколов в драме Л.Н. Толстого «Живой труп». Впечатление от этого спектакля и игры Соколова было действительно огромным. Однако хочу напомнить, что Соколов начал работать в этом театре только накануне войны. А до этого в театре работали очень хорошие актеры: Ляров, Халатов (он в начале 30-х годов ушел в Киевский театр им. Леси Украинки), Волков (его вся страна узнала, когда он сыграл в к/ф «Старик Хоттабыч» главную роль), Петров (за роль Швейка ему присвоили звание Заслуженного артиста УССР), Комиссаров, Ануров, Придаевич и много других.
Что же касается артистов Театра оперы и балета, то до войны в нем пели такие певцы, как Ильин, Тоцкий, Савченко, Топчий, Валиковская, Понтрягина, Пономаренко, Егорова и др. Но никто из них в Киев или Москву не уехал. Это уже после войны начался переезд лучших выпускников Одесской консерватории им. Неждановой, которые начинали свой артистический путь в Одесской Опере. Назову нескольких: Красуля, Ковалев, Белла Руденко, Галина Олейниченко, Ворошило и др. Зато гастролеров из Киевской Оперы, Мариинского театра и Большого театра в Одессе бывало очень много, особенно летом.
Илья ВОЛОДАРСКИЙ, Сан-Франциско

Дорогие друзья!
С Новым Годом! Всем – всего хорошего! А любимой газете – больших тиражей!
Джефф ХАЗАН, Бруклин
Уважаемая редколлегия «Одесского Листка»!
Поздравляю вас всех с Новым 2007 годом и шлю сердечные пожелания доброго здоровья, бодрости и удач во всех начинаниях. Благодарю за сотрудничество и публикацию моих материалов.
Новогодний тост за успех вашей деятельности и процветание «Одесского Листка»!
Искернне Ваш, Михаил ТАЛЬЯНКЕР, Лос-Анджелес


любовь

Я сплю и вижу
как мы с тобой гуляем под луной
и в этот миг набравшись сил
тебе в любви признался
но в друг прервался милый сон
теперь я на иву говорю тебе
Я ЛЮБЛЮ ТЕБЯ


моё стихотворение 2

ОТЕЦ СЫН И СВЯТОЙ ДУХ
В СТРАДАНЬЯХ И ЛИШЕНИЯХ
МЫ ОЧИЩАЕМСЯ ОТ МУК
ПРОХОДИМ ИСПЫТАНИЕ НА ПРОЧНОСТЬ ВЕРЫ
ГЛАВНОЕ НЕ ОПУСКАТЬ ЗДЕСЬ РУК
НЕСЯ СВОЙ КРЕСТ ДОЛЖНЫ МЫ ПРОЯВЛЯТЬ ТЕРПЕНЬЕ
А ЕСЛИ ЕГО НЕТ ПРОСИТЬ О БЛАГОСЛОВЕНИИ
КИДАЯ КАМЕНЬ В ДРУГОГО
ЗАДУМАЙТЕСЬ НА МИГ
ЧТО ОН СДЕЛАЛ ТАКОГО ЧЕГО НЕ ДЕЛАЛИ ВЫ
ОСКВЕРНЯЯ СЕБЕ ПОДОБНОГО
ВЫ МОЖЕТЕ БЫТЬ ПРОЩЕНЫ
НО ЗАПАЧКАВ ИМЯ ВСЕВЫШНЕГО
БУДЕТЕ НИЗВЕРЖЕНЫ
ВОЗЛЮБИТЬ СВОЕГО БЛИЖНЕГО
НЕ ВСЕГДА НАМ ДАЁТСЯ ЛЕГКО
А ЛЮБИТЬ ВРАГА НЕИСТОВО
ЭТО СОВСЕМ ТЯЖЕЛО
НО НУЖНО СМИРИТЬСЯ
ТО О ЧЁМ ПРОСИТ ГОСПОДЬ
ТОГДА ЭТО БУДЕТ ИСТИНА
И ТВЁРДАЯ ВЕРА В НЕГО
ДА НЕ ОСКУДЕЕТ РУКА ДАЮЩЕГО
ЗАПОМНИТЕ НАВСЕГДА
И НЕ ОТСОХНЕТ РУКА БЕРУЩЕГО
НЕ ОСУЖДАЙТЕ ЕГО НИКОГДА
ДАВАЯ СВОЮ ДЕСЯТИНУ
ЗАБУДЬТЕ О НЕЙ НАВСЕГДА
О ТОМ ЧТО ПРАВАЯ РУКА ТВОРИЛА
ЛЕВАЯ ЗНАТЬ НЕ ДОЛЖНА
БУДЬТЕ ОТКРЫТЫ И ИСКРЕННЕ
ВПУСТИТЕ В СЕБЯ ЕГО СВЕТ
ЧТОБЫ ПОНЯТЬ ПОСЛЕ ИСПОВЕДИ
ЧТО ВАШИХ ГРЕХОВ БОЛЬШЕ НЕТ


Как вам отправить стихи?

Как вам отправить стихи собственного сочинения? Стихи на тему бога, сатаны, ангелов т .п.


стихотворение моё

РОДИТЬСЯ ВАШ СПАСИТЕЛЬ
ЛЮДЯМ ПРЕДРЕКЛИ
ДЕРЖИТЕСЬ ЗА КРЕПКИЕ НИТИ
БУДЕТЕ СПАСЕНЫ
НЕ ВСЕ УСЛЫШАЛИ ЭТО
КТО БЫЛ НЕМ КТО СЛИШКОМ ГЛУХ
ПРОРОЧЕСТВО ВОСПЕТО
В ОДАХ БЛАГОСЛОВЕННЫЙ ДУХ
ИИЕСУС К НАМ ПРИШЁЛ НЕНАДОЛГО
ВОСПЕВАЯ СВОЕГО ОТЦА
ПРОЯВЛЯЯ ЛЮБОВЬ К ЧЕЛОВЕКУ
БОГ ПОЖЕРТВОВАЛ СВОЁ ДИТЯ
ПРОЙДЯ ЗЕМНОЙ ПУТЬ ТЕРНИСТЫЙ
ВЗЯВ СЕБЕ ЧЕЛОВЕКА ГРЕХИ
ОН ДАЛ ВОЗМОЖНОСТЬ НА ИСПОВЕДЬ
НЕСЯ УРОКИ СВОИ
УЧЕНИКИ ВНИМАЛИ УПОРНО
ТОМУ О ЧЁМ ОН ГОВОРИЛ
ЗНАЛИ ОНИ БЕССПОРНО
ЧТО НАД НИМ ЕСТЬ БОЖЕСТВЕННЫЙ НИМБ
ИДЯ ПО ЗЕМЛЕ СВЯТОЙ ОЗАРЯЛ ЕЁ СВОЕЙ ЧИСТОТОЙ
ВСКОРЕ НАРОД ПОТЯНУЛСЯ
ЧТОБЫ ИИЕСУСА СУДИТЬ
ОН НАЗВАЛСЯ СЫНОМ БОТА
ПОТОМУ НЕДОСТОИН ЖИТЬ
ПРЕДАВШИЙ ИИЕСУСА ИЕУДА ВЗИРАЛ СО СТОРОНЫ
ЗВЕНЯ МОНЕТОЙ В КАРМАНЕ
ЗА ГЛУМЛЕНИЕМ ТОЛПЫ
ПРОСТИ ИХ ОТЕЦ ВСЕМОГУЩИЙ
ОБРАТИЛСЯ СЫН К ОТЦУ
НЕ ВЕДАЮТ ЧТО ТВОРЯТ ЭТО ПРИВЕДЁТ ИХ К КОНЦУ
ПРОЙДЯ ИСПЫТАНИЯ ЭТИ
ИИЕСУС БЫЛ РАСПЯТ НА КРЕСТЕ
НЕВЗИРАЯ НА БОЛЬ НА РАССВЕТЕ
ТВЕРДИЛ ОН СПАСИБО ТЕБЕ
КОГДА ИСПУСТИЛ ДУХ СПАСИТЕЛЬ ТОЛПА ВСЁ ПОНЯЛА
ЧТО ОН ЕСТЬ ЦАРЬ ПОВЕЛИТЕЛЬ
УМЕР ЗА НАС ОН НЕ ЗРЯ


RE: Как вам отправить стихи?

Легко! Нажмите на "Записать в дневник."


Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img> <p> <br> <tr> <td> <table>
  • Lines and paragraphs break automatically.
  • Images can be added to this post.
More information about formatting options