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

User

Send message

Паттерн проектирования «Заместитель» / «Proxy»

Reading time7 min
Views53K
Почитать описание других паттернов.

Проблема


Необходимо контролировать доступ к объекту, не изменяя при этом поведение клиента.

Описание


При проектировании сложных систем, достаточно часто возникает необходимость обеспечить контролируемый доступ к определенным объектам системы. Мотивацией для этого служит ряд приобретаемых преимуществ. Таких как, ленивая инициализация по требованию для «громоздких» объектов, подсчет количества ссылок на объект и т.д. и т.п. Однако, не всегда потребность в контролируемом доступе к объекту базируется только на преимуществах. Как правило, сложность процессов реального мира, ограничения вычислительных ресурсов просто не оставляют проектировщику выбора, нежели как воспользоваться паттерном «Заместитель» («Сурогат»).
Читать дальше →
Total votes 52: ↑39 and ↓13+26
Comments11

Паттерн проектирования «Цепочка обязанностей» / «Chain of Responsibility»

Reading time5 min
Views44K
Почитать описание других паттернов.


Проблема


Эффективно и компактно реализовать механизм обработки потока событий/запросов/сообщений в системах с потенциально большим количеством обработчиков.

Описание


Модель событие/обработчик широко применяется в программных системах из различных областей. В основном, это — графический интерфейс пользователя, где события, генерируемые от действий пользователя различным образом обрабатываются элементами интерфейса. Нельзя так-же забывать про WinAPI, который сплошь и рядом реализует такую модель. В большинстве источников эта модель имеет название Event Loop.

Читать дальше →
Total votes 51: ↑45 and ↓6+39
Comments24

Модель SaaS простыми словами

Reading time5 min
Views221K
Так сложилось, что я много раз рассказывал о том, что такое SaaS и что в нем хорошего, как на различных it-конференциях, так и в кулуарных беседах, но до сего момента писать по теме не приходилось. При этом модель SaaS во-первых для меня по сути родная, учитывая сферу деятельности, а во-вторых является одним из основных трендов в современных веб-технологиях. В связи с этим, хочу поговорить о SaaS, как о таковом, а в перспектике, если окажется интересным, о частных аспектах. По сути материал о базисных вещах, но именно такого понимания многим не хватает. А о сложном надо хотя бы пытаться говорить просто. Помогает.

Сразу хочу сказать одну вещь, SaaS — это специализированный термин и, если начинать в нем копаться, сложный. Он может навести не только тоску, но и определенный благоговейный ужас. Но на самом деле штука это простая. Чтобы пользоваться каким-то SaaS-продуктом, в том числе нашим, понимать глубинный, да даже и поверхностный смысл данного термина совершенно не обязательно. Более того, когда uCoz создавался, никто из самих разработчиков даже не слышал подобного слова. Просто появлялись продукты, имеющие по своей сути общую модель, и потом ее стали как-то классифицировать, выделять особенности, плюсы, минусы.
Если своим призванием или увлечением вы сделали веб-технологии, или же задумываетесь о том, какой тип продуктов лично для вас подходит более всего, какие наиболее перспективны и т.п., все это может быть интересно и полезно.
Читать дальше →
Total votes 42: ↑37 and ↓5+32
Comments27

Масштабирование нагрузки web-приложений

Reading time6 min
Views60K
С ростом популярности web-приложения его поддержка неизбежно начинает требовать всё больших и больших ресурсов. Первое время с нагрузкой можно (и, несомненно, нужно) бороться путём оптимизации алгоритмов и/или архитектуры самого приложения. Однако, что делать, если всё, что можно было оптимизировать, уже оптимизировано, а приложение всё равно не справляется с нагрузкой?
Читать дальше →
Total votes 109: ↑98 and ↓11+87
Comments38

Китай: как заказывать производство или поставку

Reading time7 min
Views187K
Его зовут Плюштой У китайцев можно заказать всё, что угодно: от электронных компонентов до корпуса к устройству или хендмейд-штук. При правильном подходе это дешево, качественно и позволяет реализовывать любые заказы, которые часто сложно разместить на территории СНГ.

В топике — основы аутсорсинга производства в Китай:
  • Как выбрать производителя и сделать заказ
  • Как убедиться, что сделают именно то, что вам нужно
  • Про предоплату, документы, гарантии
  • Как наиболее выгодно доставить
  • Что делать с потерянными поставками
  • Грабли в ассортименте

Да, если же вы уже заказывали в Китае, то ничего шокирующе-нового в топике вы не найдёте (и, может быть, порадуетесь за то, как нас красиво однажды развели).

Читать дальше →
Total votes 208: ↑205 and ↓3+202
Comments183

Пожар в дата-центре hosting.ua

Reading time1 min
Views9.2K
Официальной информации так и не поступило (сайт не работает и даже не пингуется). Пришлось вооружиться гуглом и искать по твитерам и прочим блогам. А через них уже вышел на forum.searchengines.ru/showthread.php?t=478619, где ситуация начинает проясняться:

«Только то дозвонился к ним.
Информацию о пожаре подтвердили. Сказали не волноваться, работы по восстановлению уже начаты.
Приблизительные сроки сказали 7 дней»


«Взяли трубку на номере 048 728 2111 Девочка расстроенным голосом подтвердила крупный пожар и серьезные повреждения. В ближайшую неделю помочь ничем не могут — будут оценивать ущерб. По поводу доступа к уцелевшим серверам клиентов — девочка не уверена что возможность будет. Вообщем неделю ждать ни один бизнес не будет — пошел восстанавливаться с последнего бекапа на другой хостинг.»

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

Надеюсь хотя бы сегодня будет какая-то официальная информация от владельцев?

P.S. Сам узнал только сегодня ранним утром, разбудили клиенты, думал просто может сервер повис, а тут такие новости, и бекапы конечно же не первой свежести :( Но тут конечно сам виноват.
Total votes 185: ↑166 and ↓19+147
Comments290

«Атака на банк-клиент...». Взгляд со стороны работника банка

Reading time8 min
Views17K
Меня очень заинтересовала статья Атака на банк-клиент или Охота на миллион в связи с тем, что я явлюсь непосредственным участником процесса дистанционного банковского обслуживания (далее — ДБО) со стороны банка. Чуть позже появилась статья Кому я нужен?, поэтому мыслей на эту тему накопилось очень много и хочется поделиться со всеми (а еще я давно хотел зарегистрироваться, но подходящего момента не было). По возможности буду краток и не буду сыпать научными терминами.

Читать дальше →
Total votes 183: ↑179 and ↓4+175
Comments216

Изоляция служб в Windows

Reading time5 min
Views42K
Как известно, службы Windows представляют собой одно из наиболее излюбленных мест для атак на операционную систему. В худшем (для нас, конечно) случае атакующий получает возможность действовать на атакованном компьютере в контексте учетной записи, от имени которой запущена взломанная служба. И если эта учетная запись обладает административными правами, то фактически злоумышленник получает полный контроль над компьютером. От версии к версии в Windows появляются новые механизмы, обеспечивающие дополнительную изоляцию служб и, как следствие, усиливающие безопасность системы в целом. Я хотел бы вкратце рассмотреть, что принципиально изменилось в этом направлении за последние несколько лет.
Читать дальше →
Total votes 82: ↑65 and ↓17+48
Comments54

Nagios мониторинг баланса мобильного телефона

Reading time6 min
Views9.9K

Для чего это нужно


Когда в семье число мобильных телефонов становится более 3-х, назревает вопрос мониторинга баланса и оповещения, когда баланс приближается к критической отметке. Есть много средств для мониторинга баланса, но зачем городить огород, когда под рукой есть незаменимый Nagios (так получилось что и дома у меня есть свой мониторинговый сервер, его основная задача наблюдать за состоянием серверов организаций которые я администрирую в нерабочее время). Данное решение также подойдет для мониторинга баланса корпоративного лицевого счета.
Читать дальше →
Total votes 89: ↑88 and ↓1+87
Comments40

Учимся правильно бенчмаркать 2: как компилятор бьет в спину

Reading time5 min
Views1.6K
Получить годные цифры бенчмарка это полдела, однако вторая половина их правильно интерпретировать, узнать что-то новое, и суметь применить. 100x отличия промеж дебажным и нормальным билдом удивили, решил копнуть глубже. По итогам получше узнал, что происходит в дебаге; поискал отличия между 2005 и 2008 студией (не нашел); выяснил, как ускорить дебажный билд в 3 раза за пару минут (ставим блок против удара в спину); методом «взять и запустить» получил результаты, отличающиеся от авторских в 3.5 раза (адская сила x64 в действии!); и для смеха замерил плохой, негодный недовектор против хорошего (плохой оказался до 100 раз быстрее). Подробности под катом.
Читать дальше →
Total votes 76: ↑74 and ↓2+72
Comments24

Решаем судоку на JavaScript

Reading time4 min
Views34K
СудокуСудоку — популярная головоломка, основной задачей которой является размещение цифр в правильном порядке.

Игровое поле представляет собой квадрат 9х9 клеток. Клетки сгруппированы в девять сегментов 3х3. В каждой клетке может быть записана цифра от одного до девяти. Основным правилом судоку является то, что цифра не может повторяться в строке, столбце и сегменте.

Под катом приводится алгоритм решения судоку, реализованный на JavaScript. Рассмотрены только базовые тактики решения головоломки, но этого достаточно для большого числа судоку легкого и среднего уровня.
Читать дальше →
Total votes 55: ↑49 and ↓6+43
Comments28

Ломаем web c '#!' (hash-bang)

Reading time6 min
Views18K
Ниже предлагается перевод статьи, обращающей внимание на, на мой взгляд, довольно острую проблему в эпоху web 2.0, а именно чистоту URL-адресов.

На примере сайта Lifehacker.com показано какими проблемами может обернуться слепое следование state-of-the-art технологиям, погоней за SEO и отрицание принципа «прогрессивного улучшения» (progressive enhancement).


На прошлой неделе, в понедельник, сайт Lifehacker.com был недоступен по причине неработающего JavaScript. Lifehacker.com, наряду с остальными сайтами компании Gawker, отображали пустую главную страницу без контента, рекламы и всего остального. Переход с результатов поиска Google на подстраницы переправлял обратно на главную.

Javascript-зависимые URL


Gawker, как и Twitter до него, перестроил свои сайты на полную зависимость от JavaScript'а, включая URLы его страниц. JavaScript не смог загрузиться, что привело к отсутствию контента и сломаным URLам.

Новые адреса страниц выглядят теперь следущим образом: http://lifehacker.com/#!5753509/hello-world-this-is-the-new-lifehacker. До понедельника, адрес был тем же, только без #!..

Читать дальше →
Total votes 142: ↑128 and ↓14+114
Comments109

Можно ли скрыться от закона «О персональных данных»?

Reading time7 min
Views26K
27 июля 2006 года был принят закон «О персональных данных». Его принятие было связано с ратификацией Россией «Конвенции совета Европы о защите физических лиц при автоматизированной обработке персональных данных». Закон этот был призван установить те требования защиты персональных данных, которые были описаны в этой конвенции. По замыслу законодателей, те компьютерные системы, которые были созданы до даты вступления закона в силу, нужно было привести в соответствие с его требованиями к 1 января 2010 года. Однако, по мере приближения этого срока все очевиднее становилось то, что множество компьютеровладельцев с этим не справятся. Поэтому в самом конце 2009 года, когда до «дня икс» оставалось совсем немного, его сдвинули еще, до 1 января 2011 года. А когда и до этого срока тоже оставалось совсем немного, «полноценное» вступление в силу закона отодвинули еще раз, теперь всего на полгода.

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

Что такое ПД?
Читать дальше →
Total votes 51: ↑48 and ↓3+45
Comments63

Цирк уехал. Что делать тем, кто остался? (По следам 4-го Стартап-Уикенда в Москве)

Reading time5 min
Views661
По результатам дискуссии по поводу статьи Аркадия Фомича Морейниса «Как защитить идею?», наконец, выплыло из подполья адекватное понимание важности нормальных стартаперских идей. Понемногу в стройный хор инвесторов и их оголтелых сторонников удалось внести сумятицу. И выставить на первый план ИДЕЮ проекта, подвинув программистов и веб-дизайнеров.

Почему идея, лежащая в основе проекта, важна, а ее автор должен быть защищен? — Потому, что без них мы видим только то, что, по большому счету, и называется стартаперским движением. Герман Клименко отмечал после одного из пойнтов низкую подготовку и квалификацию тех, кто выступал и представлял свои проекты. Людей, которые бы «болели» своими идеями, практически не было. По сути, за первые месяцы работы ООО «Главстарт» А. Морейниса оказалось, что 90% юных и не столь юных интернет-предпринимателей приходят с разработками и идеями, напоминающими откровенный шлак.

Даже список более чем 60-ти проектов на сайте Главстарта, помещенный на так называемой «Витрине», т.е. проекты «прошли через Startup Weekend и продолжают свою работу», откровенно не впечатляет. Три проекта получили (или якобы получили) инвестиции от «Главстарта»; судьба остальных туманна. Социальная сеть любителей классической музыки… Игра в городе «в пятнашки»… Н-да… Сразу вспоминаются стартапы вроде «Туточки» или «Яндексметро» с первого уикенда.
Читать дальше →
Total votes 67: ↑59 and ↓8+51
Comments52

Apache Traffic Server — уникальный кеширующий прокси-сервер для CDN

Reading time3 min
Views10K
image

Однажды возникла идея запустить русско-язычную версию популярного американского сайта. После недолгих размышлений было решено реализовать полностью интерактивную схему вида examplesite.com — > examplesite-ru.com и заставить машину делать как можно больше работы.

Некоторое изучение и эксперименты с различными прокси-серверами привели к интересному продукту — Apache Traffic Server, о котором я и хочу рассказать.
Читать дальше →
Total votes 42: ↑41 and ↓1+40
Comments14

BUNKER DataCenter — Радиационная угроза отменяется

Reading time2 min
Views8.9K
Некоторые тенденции «покорения глубин» сетевыми узлами Интернета уже сегодня заставляют задуматься: шведы заблаговременно окопались в Pionen’е, где-то там же не так давно разместился Wikileaks. Даже награждения и церемонии уже проводят в глубинных военных объектах. Технологии явно уходят в «андерграунд»!

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


Как оказалось, в Украине тоже нашли свой «G.E.C.K.». Компания Colocall на днях порадовала открытием нового датацентра в противорадиационном убежище. Так и назвали – «Бункер ДатаЦентр».

Дальше под катом много фотографий.
Что можно сделать из заброшенного бункера?...
Total votes 96: ↑69 and ↓27+42
Comments51

Паттерн Visitor для обработки иерархии исключений

Reading time4 min
Views4K
Исключения в C++ являются одним из самых серьезных механизмов языка. Предоставляя достаточно мощные возможности для анализа и обработки ошибок. Но работа с исключениями не всегда бывает такой уж удобной.

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

Читать дальше →
Total votes 31: ↑29 and ↓2+27
Comments44

Анализируй это, или почему я каждый день опаздываю и получаю премию

Reading time5 min
Views23K
Мысль написать эту статью родилась около недели назад, именно тогда, в фирму, где я работаю около 3-х лет мне взяли помощника.

Через пару дней после его выхода на работу, краткого экскурса и небольшой теории, от него прозвучал вопрос: «- А почему тебе так мало платят? Ведь доступность всех служб и сервисов у тебя не менее 99,98% в рабочее время уже как больше года…»

Если честно, то именно этого вопроса я и не ожидал, и ответить в ту же секунду был не готов, но после пяти минут раздумий, все мысли встали на место, я постарался сформулировать ответ, и выдал нечто следующее:
— Во первых, мне нравится моя работа, и я работаю в свое удовольствие.
— Во вторых, я прихожу на работу когда высплюсь (обычно это около обеда), ухожу не позже 18.00, и в любое время могу уйти на 2-3 часа по своим личным делам.
— В третьих, 1500$ не такая уж и маленькая сумма для третьего по величине города России.

А теперь я хочу рассказать о том, как добился этого, и чего мне это стоило. Кому интересно-прошу под кат:
Читать дальше →
Total votes 318: ↑290 and ↓28+262
Comments239

Знакомьтесь — Linux From Scratch

Reading time4 min
Views49K

Вместо вступления


Tux Construction.С самого раннего детства я интересовался компьютерами. Интерес этот произрастал из игр под MS-DOS в детсадовском возрасте, заканчивая всевозможными олимпиадами по программированию к окончанию школы. Не удивительно, что после школы пошел учиться в технический институт на программиста. Самое странное, что все эти годы я был абсолютно далек от такой замечательной операционной системы, как GNU/Linux. Но полтора года назад, в самом начале первого семестра, я познакомился с парнем (он был незначительно старше меня и поступил в институт уже после техникума — имея опыт работы), который во время одного из разговоров сказал:
«Хочешь начать изучать GNU/Linux? Начни с Linux From Scratch.»


Единственный бумажный дистрибутив


LFS (здесь и далее аббревиатура от Linux From Scratch) – книга, написанная Герардом Бикмансом, описывающая процесс сборки минимального рабочего варианта GNU/Linux из исходных кодов. Почему бумажный? В свое время книгу можно было купить в твердом переплете, что делает «дистрибутив» несколько необычным, не правда-ли? Помимо самой книги, для сборки конечно-же понадобится интернет (или заранее загруженные исходные коды), свободный раздел на жестком диске, и любая операционная система на базе ядра Linux, имеющая компилятор. Лично я всегда использую либо уже собранный дистрибутив LFS, либо полную установку Slackware – в нем есть все необходимое, чего не скажешь про (например) Ubuntu. Конечно, всегда можно загрузить нехватающие пакеты, но ведь мы хотим только-только научиться линуксу? А Slackware даже в своей базовой установке и без конфигурирования предоставляет требуемый инструментарий.
Читать дальше →
Total votes 132: ↑112 and ↓20+92
Comments92

Тонкие моменты C#

Reading time6 min
Views109K
C SharpНе секрет, что C# сегодня популярный и динамично развывающийся язык, в отличие от своего прямого конкурента — языка Java, который в плане функциональности переживает период застоя. Основное неоспоримое преимущество Java — настоящая кросплатформенность, а не унылая и ограниченная, как у C#.

C# — простой язык, благодаря простоте живёт и PHP. Но в то же время он весьма функциональный, и имеет статус «гибридного» языка, совмещая в себе различные парадигмы, встроенную поддержку как императивного стиля программирования, так и функционального.

Как и любой язык, шарп имеет свои тонкости, особенности, «подводные камни» и малоизвестные возможности. Что я имею ввиду? Читайте под катом…
Читать дальше →
Total votes 86: ↑68 and ↓18+50
Comments32

Information

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