Pull to refresh
135
0
Руслан Ющенко @yruslan

User

Send message

Проверить наличие цифр в строке

Reading time1 min
Views28K
На днях столкнулся с интересной задачей и решил поделиться ею с вами.
Задача состоит в следующем: необходимо проверить наличие в строке цифр. Главное условие — не использовать регулярных выражений.

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

Вот моё
function check_for_number($str)
{
    $lenght = strlen($str); 
    for($i=0;$i<$lenght;)
    {
        if (is_numeric($str[$i++]))
        {
            return true;
        }
    }
    return false;
}

Git + TrackStudio — автоматизация разработки

Reading time19 min
Views11K
Это статья о том, как с помощью TrackStudio и Git можно организовать удобный процесс разработки ПО. В стать рассмотрен вариант для ОC Windows. Но при желании не сложно все сделать и для других OC.
Для этого нам понадобиться:
  1. TrackStudio — универсальная система управления задачами.
  2. Git — VCS.
  3. Blat — Маленькая (70kB) open source консольная программа под Windows, которая позволяет отправлять e-Mail по SMTP протоколу из командной строки, с приложенными файлами.
  4. STunnel — Программа, которая позволяет вам зашифровать произвольные TCP подключения внутри SSL. Инструмент доступен для Unix и Windows.
    Нужен если вы используете gmail.com, как почтовый сервис. Так как blat напрямую работать с gmail не может.
Задача:
Организовать рабочий процесс таким образом, что бы при коммите в git, автоматически в TrackStudio задаче добавлялся комментарии с различными типами сообщения и текстом этого комментария был текст сообщения коммита.
Решение

История одного бага

Reading time7 min
Views8.6K
Буквально вчера мне пришлось разбираться с одним очень тонким и специфичным багом. Баг оказался фичей, которая спотыкалась о другой баг. В ходе изучения проблемы я был вынужден изучить несколько особенностей Debian, угробить 4 часа времени и получить массу опыта.

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

Предыстория

В ходе разворачивания стенда для экспериментов из нескольких идентичных серверов захотелось иметь возможность запускать нужные версии приложения без ручной работы по обновлению кода на куче хостов. Было решено запускать нужные программы с NFS-шары. Приложения были internal use only, одноразовые, причём написанные под конкретную задачу. Шара монтировалась в каталог /opt при загрузке и приложения оттуда запускались с помощью скрипта rc.local. Поскольку речь шла про экспериментальный стенд с очень частым изменением кода, играть в честного разработчика (пакеты, репозиторий, обновления, init.d скрипты) было лениво. Всё происходило под Debian Squeeze.

Шара была прописана в /etc/fstab, запуск нужных тестов — в rc.local. Казалось бы, всё сделано.

… И тут я наткнулся на Мистику. Приложения стартовали раз из пяти, причём версия «кривое приложение» была отметена почти сразу — ровно так же иногда не запускались любые другие исполняемые файлы. Причём, с /opt. Из других каталогов отрабатывали нормально. При этом руками rc.local запускаешь — 100% всё хорошо. При загрузке — успешный запуск раз из пяти, или даже реже.

В начале я не воспринимал эту проблему как серьёзную, и пытался её решить нахрапом. Поскольку проблема проявлялась только для /opt я дописал в rc.local команду ls -a1 /opt >/var/log/ls. Как и предполагалось, в /opt на момент выполнения rc.local было только два файла — точка и две точки. Другими словами, NFS-шара не подмонтировалась. Иногда. А иногда подмонтировалась.

Читать дальше →

Про фрилансера Ивана и как он не вставал с дивана

Reading time6 min
Views49K
Совсем недавно мы писали о том, как сдавать жилье в аренду, не навлечь на себя гнев государства и не вылететь при этом в трубу, используя простые практические советы по оптимизации налогообложения, рациональный подход и электронного бухгалтера «Эльбу».

Сценарий со сдачей квартиры всем хорошо знаком, но тот кейс, о котором сейчас пойдет речь, покажется многим из вас более жизненным и актуальным. А речь пойдет о фрилансере Иване — успешном блоггере и стоковом фотографе.
Читать дальше →

Вдохновение для юнит-тестов

Reading time4 min
Views7.5K
Много слов сказано о достоинствах юнит-тестов (TDD, BDD — в данном случае неважно), а также о том, почему люди всё-таки их не используют.

Но я думаю, что одна из главных причин заключается в том, что люди не знают, с чего начать. Вот прочитал я статью про юнит-тесты, понравилось; решил, что надо бы когда-нибудь попробовать. Но что дальше? С чего начать? Как придумывать все эти требования, как называть тест-методы?

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

Об этом и пойдёт речь:
откуда брать вдохновение.

Экстремальный аджайл — танцую я один

Reading time1 min
Views2.9K
Я продолжаю сериал, начатый постом «Экстремальный аджайл — танцуют все!», посвященный распространению полезных практик из гибких методологий разработки на всех, кто вовлечён в проект. Ведь это несправедливо, когда отличными практиками пользуются только разработчики. Вашему вниманию предлагается видео доклада с рассказом о том, как мы решаем проблемы недостатка ресурсов и непрогнозируемых сроков, что мы делаем, когда не знаем с чего начать разработку и каким будет следующий шаг. Кроме того раз и навсегда решается вопрос необходимости тщательного стратегического планирования :) Как всегда, все это не теоретизирование и пересказ книжек и статей, а реальный опыт работы над реальным проектом. В общем этот пост писался с мыслью: «Давайте поговорим о процессе разработки и проблемах, связанных с ним. Долой маркетинговый буллшит и пустые теоритезирования!».
Читать дальше →

Экстремальный аджайл — танцуют все!

Reading time6 min
Views13K
Всем привет! На протяжении года мы разрабатываем сервис «Эльба». В нашем проекте мы ввели практики аджайла для всей команды: для аналитиков, интерфейсологов, инженерных психологов, документаторов, тестировщиков и продвиженцев, а не только для разработчиков. Кажется, получилось хорошо, и мы хотим поделиться этим опытом.
Почему экстремальный?

Отмена пользовательских паролей

Reading time2 min
Views24K
qwerty из кнопок
Увы, моя вера в человечество оказалась слишком наивной. Когда мы планировали интерфейс облака, предполагалось, что человек не особо вникающий в нюансы, при создании виртуальной машины, оставит настройки по-умолчанию (в частности, автоматически сгенерированный пароль), а человек меняющий настройки, понимает что он делает. Увы, для части клиентов это оказалось не так.

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

Причина? Ну, я думаю, вы догадываетесь. Пароль 323345 — это просто насмешка какая-то. И таких случаев было несколько.

Люди, которые считают, что злые хаккеры их не достанут, потому что «да кому я там нужен» совершенно правы. Никто специально не будет сидеть и подбирать вашу хитрую перестановку из qwerty и 123. Для этого давно созданы специализированные программы, которым, поверьте, глубочайшим образом всё равно, какой изощрённой мыслью вы руководствовались, делая пароль из пяти единиц и одной двойки, размещая двойку именно на третьей позиции (не догадаются же!). Не догадаются. Просто снесут брутфорсом с -цатой попытки. А нужны им не ваши персональные секреты — а ваши ресурсы. Для рассылки спама, перебора пароля к нужным сайтам, для работы в качестве открытого прокси. Для чего ломанная машина с хорошим инетом пригодится всегда найдётся…
Читать дальше →

И снова здравствуйте

Reading time4 min
Views20K
Мы таки завели полнофункциональный блог на хабре и спешим поделиться массой новостей. Для тех, кто не ничего не знает о нас может почитать эти посты.

Первым делом представляем вам мини-проект AnonymousCoat, если по-русски, то Плащ-Анонимка. Это бесплатный VPN-сервис, работающий на технологии OpenVPN.



Это что еще такое? Установить и писать на хабр с домофона!

Хорошая новость для тех, кому нужен HPC, HA и просто SSI-кластер, наконец

Reading time1 min
Views9.1K
У меня для вас есть хорошая новость. Кажется, я сегодня уломал отцов Kerrighed дебианизировать свои труды.

Что это означает для нас, для обычных людей? У вас есть компьютер, где стоит Ubuntu или ещё какой-то Дебиан-подобный Linux? Назовём его Компьютер №1. На нём вы сможете сделать что-то обычное, типа

apt-get install kerrighed-kernel...

ну, вероятно, придётся уж потратить и пару минут на конфигурацию. Далее, перезагрузив Ubuntu, вы увидите новоиспечённое ядро в grub-меню. Выбираете и попадаете в обычную Ubuntu с одним необычным свойством, назовём его "SSI with DRBL"…

Что за зверь «SSI with DRBL»?

Читать дальше →

Организация SSH-доступа по одноразовым паролям

Reading time4 min
Views7.1K
В любой серьезной компании иногда возникает необходимость в том, чтобы сотрудник, уехавший в отпуск, срочно выполнил свои должностные обязанности. Рассмотрим ситуацию, когда компании необходим конкретный сотрудник, например, системный администратор, который в данный момент возлежит на пляже в тысяче километров от душного офиса. Допустим даже, что этот сотрудник согласен выполнить неожиданно свалившуюся ему на голову работу и на курорте есть интернет-кафе. Но вот проблема: кафе располагается в темном переулке, на его компьютерах стоят популярная ОС, трояны, кейлоггеры и прочие хактулзы, так что набирать пароль root'а от главного сервера компании на подобных машинах довольно неразумно.

Существует несколько решений этой задачи. Например, можно использовать одноразовые пароли, а именно систему s/key, использующую для генерации паролей алгоритмы md4 и md5. Об этой системе и будет рассказано далее.
Читать дальше →

Прощай, салфетки, или как избавиться от глянца ноутбука

Reading time4 min
Views47K
Thinkpad SL400
Тебе, %username%, нравятся глянцевые ноутбуки, на которых остаются следы от любого прикосновения? — Меня они очень раздражают.

Да, конечно, глянцевый ноутбук привлекательно смотрится на витрине: такой черный, красивый, блестящий, шикарный…. Однако, все мы знаем, что случается с этой красотой не то что через месяц, а через неделю активного использования. Никаких салфеток не напасешься, чтобы ноутбук выглядел не заляпанным, а все таким же шикарным.
Так что же делать с этим глянцем, кроме как закупить чистящие средства и те самые салфетки? Как вариант – выбросить продать и купить матовый. Но что, если нравится именно эта модель по остальным параметрам?
Еще один выход – ошкурить и превратить в матовый. Есть такие навыки, чтобы получилось аккуратно и без травм для любимой техники?
Ну и конечно, можно просто не обращать внимания, что каждое касание оставляет следы на крышке ноутбука, и заняться на досуге дактилоскопией: Кто трогал мой ноутбук? Кто сидел на моем стуле? А также забыть про мелкие очаровательные царапинки, которые со временем станут очень заметными на глянцевой поверхности.
Хочу предложить еще один способ защиты глянцевого ноутбука

6 шагов загрузки Linux на пальцах

Reading time5 min
Views220K
imageНажмите кнопку включения питания на вашем системнике, и спустя несколько секунд вы увидите окно входа в систему.

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

Я предлагаю вам познакомиться со следующими уровнями типичной загрузки Linux:
Читать дальше →

Почему китайский веб-дизайн так плох?

Reading time3 min
Views19K


С чего все началось


Вскоре после прибытия в Китай летом 2005 года я стал замечать некоторые сложности в отличиях китайской и западной культур. И я не имею в виду очевидные вещи вроде языка, внешнего вида, государственной философии и так далее. Больше всего выделяться стали тонкие различия, например, в чувстве юмора, интересах и художественных предпочтениях.

Я заметил, что не мог найти китайский веб-сайт, который показался бы мне визуально привлекательным. Из банального любопытства я попросил местных составить список регулярно посещаемых сайтов, которые, по их мнению, имеют хороший дизайн.
Читать дальше →

Исходники Zeus проданы за $100000?

Reading time2 min
Views6K
image

В конце прошлого года на хакерских форумах прошёл слух, что разработка одного из наиболее известных троянов Zeus (или ZBot) прекращена, а разработчик передал исходники программы другому вирусописателю. При этом говорилось, что счастливчик-новообладатель — автор другого троянца SpyEye — усиленно старается объединить эти два семейства в новый, более мощный продукт.

Однако новые свидетельства утверждают, что исходный кода Зевса был продан или передан третьему лицу, которое сейчас активно ищет новых покупателей среди киберпреступности. Это может привести к разработке абсолютно новых версий Zeus/ZBot.
Читать дальше →

Поиск подстроки и смежные вопросы

Reading time13 min
Views125K
Здравствуйте, уважаемое сообщество! Недавно на Хабре проскакивала неплохая обзорная статья о разных алгоритмах поиска подстроки в строке. К сожалению, там отсутствовали подробные описания каких либо из упомянутых алгоритмов. Я решил восполнить данный пробел и описать хотя бы парочку тех, которые потенциально можно запомнить. Те, кто еще помнит курс алгоритмов из института, не найдут, видимо, ничего нового для себя.
Читать дальше →

Операционные усилители (на основе простейших примеров): часть 3

Reading time5 min
Views180K

Краткое введение


Продолжаю спамить писать на тему операционных усилителей. В этой статье постараюсь дать обзор одной из важнейших тем, связанной с ОУ. Итак, добро пожаловать, активные фильтры.
Читать дальше →

Проблемы браузерных игр или атака клонов

Reading time9 min
Views9.8K
image
В относительно недавнем времени заинтересовался геймдевом, а конкретнее – разработкой bbmmog. Имея за плечами многолетний игровой опыт, решил обобщить свои ощущения проблематики современных браузерных игр в текстовом виде.

Первое мое знакомство с браузерными играми произошло лет восемь назад, в эпоху, когда в некоторых областях Интернет еще считался достаточно редким явлением. Сидел я тогда на zyxel’евском модеме и пытался разобраться в этом новом для меня виде развлечения. Впечатления тогда были неоднозначными. С одной стороны, после PC-игр, графика, интерфейс и общая реализация браузерок, мягко говоря, совсем не доставляла. Это можно было понять, так как эпоха вебдвануль только-только начиналась, а в рунете – еще была только на горизонте. Но с другой – захватывала сама возможность играть не с кремниевыми мозгами, а с такими же людьми, причем, без чрезмерных затрат по времени. Именно по этой причине, я часто избегал мультиплеера в обычных играх, они, как правило, требуют, хоть и единиразового, но более беспрерывного геймплея. В этом свете, неспешное течение времени в браузерках, идеи которых во многом перекочевали из MUD-ов и TBS игр, было для меня более приемлемым. Забегая наперед, хочу отметить, что с затратами по времени дела обстоят совершенно иначе, чем представляются изначально, но об этом чуть позже.
Читать дальше →

«Облегчённая» реализация контейнера vector

Reading time6 min
Views16K
   Шаблон vector библиотеки STL выигрывает почти по всем параметрам у обычного С++ массива. Он позволяет добавлять и удалять элементы, освобождает выделенную память при уничтожении, позволяет контролировать выход за пределы массива и т.д. Тем не менее, у него есть один недостаток – для его работы требуется дополнительная память, небольшая, но в ряде случаев существенная. Ниже рассмотрена реализация контейнера, позволяющая немного снизить затраты памяти и повысить производительность.
Читать дальше →

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity