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

User

Send message

«Пластилиновая» архитектура

Reading time5 min
Views13K
Я думаю, любой руководитель проекта или ведущий программист хотя бы однажды сталкивался с ситуацией, когда код приложения вдруг оказывался совершенно запутанным, непонятным, а люди, его поддерживающие, в ответ на просьбу исправить ошибку или добавить новую функциональность отправлялись «в астрал» на несколько дней, прихватив с собой изрядную долю бюджета и, возвращаясь, предъявляли ещё более запутанный код с исправленной ошибкой, но добавленной парой других.

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

Большинство провальных проектов обладают одной закономерностью. Они абсолютно лишены структуры. Я называю архитектуру таких систем «пластилиновой».
Читать дальше →

Флеш-память: проблемы для компьютерной криминалистики

Reading time7 min
Views11K
В конце 2010 года Грем Белл и Ричард Боддингтон опубликовали работу «Solid State Drives: The Beginning of the End for Current Practice in Digital Forensic Recovery?» («Твердотельные накопители: начало конца существующим методам судебного восстановления данных?»), которая вызвала неоднозначную реакцию интернет-сообщества. И хотя обсуждаемая в указанной статье особенность работы твердотельных накопителей была впервые озвучена в 2008 году на конференции DEFCON 16, исследована специалистами компании Майкрософт и представлена на конференции разработчиков машинных носителей информации в 2009-м [1, 6-й слайд] и даже упомянута на российских семинарах в 2010-м [2, слайды 10 и 11], признание проблемы и серьезное обсуждение этих особенностей в сообществе криминалистов пришлись на март 2011 года.

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

WiDi 2.0

Reading time2 min
Views41K
Сегодня мы расскажем про технологию беспроводной передачи потокового видео и аудио Wireless Display (WiDi). Данная технология до некоторого времени была мало известна на российском рынке. Однако с появлением более продвинутой версии WiDi 2.0 с поддержкой в мобильных процессорах Intel Core Sandy Bridge, можно ожидать всплеск интереса.

image

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

Как уменьшить вероятность ошибки на этапе написания кода. Заметка N1

Reading time15 min
Views4.6K
Check Miranda IM
Я добрался до кода широко известного клиента мгновенных сообщений Miranda IM. Вместе с различными плагинами это достаточно большой проект, размер которого составляет около 950 тысяч строк кода на C и C++. И, как в любом солидном проекте с историей развития, в нем имеется немалое количество ошибок и опечаток.

Рассматривая дефекты в различных приложениях, я заметил некоторые закономерности. И сейчас на примере дефектов, найденных в Miranda IM, я попробую сформулировать некоторые рекомендации, которые позволят избежать многих ошибок и опечаток ещё на этапе написания кода.

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

Фонетические алгоритмы

Reading time9 min
Views46K
Фонетические алгоритмы сопоставляют двум словам со схожим произношением одинаковые коды, что позволяет осуществлять сравнение и индексацию множества таких слов на основе их фонетического сходства.

Часто довольно трудно найти в базе нетипичную фамилию, например:
— Леха, поищи в нашей базе Адольфа Швардсенеггера,
Шворцинегира? Нет такого!
В этом случае использование фонетических алгоритмов (особенно в сочетании с алгоритмами нечеткого сопоставления) может значительно упростить задачу.

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

В этой статье я рассмотрю наиболее известные алгоритмы, такие как Soundex, Daitch-Mokotoff Soundex, NYSIIS, Metaphone, Double Metaphone, русский Metaphone, Caverphone.
Читать дальше →

hGate – web врата в управление репозиториями Mercurial

Reading time3 min
Views4.2K

Краткая версия

Что предлагается: web интерфейс управления репозиториями и пользователями mercurial — hGate.
Кому полезно: тем, кто использует связку Mercurial+HgWebDir и создает репозитории или пользователей чаще, чем раз в пару месяцев.
Где скачать и как установить: bitbucket.org/shedar/hgate
Если Вам интересно, зачем это было делать, подробный перечень возможностей и что будет дальше — продолжаем.
Читать дальше →

Примеры xpath-запросов к html

Reading time4 min
Views532K
Xpath — это язык запросов к элементам xml или xhtml документа. Также как SQL, xpath является декларативным языком запросов. Чтобы получить интересующие данные, необходимо всего лишь создать запрос, описывающий эти данные. Всю «черную» работу за вас выполнит интерпретатор языка xpath.
Очень удобно, не правда ли? Давайте посмотри какие возможности предлагает xpath для доступа к узлам веб-страниц.
Читать дальше →

Если бы языки программирования были женщинами

Reading time3 min
Views17K
То ли весна, то ли упоминание о неделе женщин на Хабре заставили меня задуматься о том, какими женщинами были бы языки программирования. Поиск по этой теме выдал пару явно устаревших статей, и я решила написать свою. Просьба воспринять с юмором и не обвинять в шовинизме — я, знаете ли, и сама не мужик :-)

P.S. Придумалось далеко не для всех известных мне языков — раскрытие темы для недостающих только приветствуется.

Prolog
Женщина-мечта: делает все, что вы хотите. К сожалению, иногда описание того, что же вы хотите, занимает больше времени, чем объяснение, как это делать.

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

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

Трудности производства процессоров

Reading time13 min
Views115K
   Недавно в московском Политехническом музее стенд вычислительной техники серьезно обновился — компания Intel разместила там свой стенд, который получил название "От песка до процессора". Отныне этот стенд станет неотъемлемой частью школьных экскурсий, но даже взрослым я советую не откладывать посещение заведения на срок более пяти лет – к 2016 году компания Intel планирует серьёзно «проапгрейдить» музей, чтобы он смог войти в десятку лучших музеев науки в мире!

image

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

Где производят процессоры Intel

Reading time5 min
Views140K
   Ни для кого не секрет, что производственные фабрики компании Intel на данный момент являются одними из ведущих фабрик в мире по уровню технической оснащенности. Чем они отличаются от суровых Челябинских труболитейных заводов? А давайте посмотрим.

image

3 x Easter eggs
Читать дальше →

От песка до процессора

Reading time9 min
Views396K
Сложно в это поверить, но современный процессор является самым сложным готовым продуктом на Земле – а ведь, казалось бы, чего сложного в этом куске железа?

image

Как и обещал – подробный рассказ о том, как делают процессоры… начиная с песка. Все, что вы хотели знать, но боялись спросить )

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

Место встречи

Reading time3 min
Views17K
   Помните недавний цикл статей (1 | 2 | 3) про производство процессоров? Честно скажу, реакция на эти статьи меня приятно удивила — прям хоть каждый раз такое пиши! А ведь это всего-то материал с лекций компании Intel, о которых я пару раз упоминал в этом блоге. Но так уж исторически сложилось, что аудитория Хабра довольно предвзято относится к анонсам даже интересных событий — как следствие, о мероприятиях часто не узнают те, кому они могли бы быть интересны.

image

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

Стеганография

Reading time4 min
Views85K
На хабре уже писали несколько раз о стеганографии, в частности недавний пост о LSB стеганографии (который, к сожалению, перенесен автором в черновики) пробудил во мне желание поделиться своими знаниями и мыслями по этой теме.

Давайте предположим, что вы шпион и (как у любого уважающего себя шпиона) у вас на жестком диске имеется много секретной информации. Вам нужно её спрятать так, чтоб никто её не нашел. Причем в случае если вас поймают, то ваш компьютер отдадут на обследование и тот кто будет искать эту информацию будет на 99% уверен, что такая информация на жестком диске есть.

Так какие же способы спрятать информацию есть в нашем распоряжении…
Читать дальше →

10 лет практики. Часть 2: ресурсы

Reading time4 min
Views3.6K
Здравствуйте. Я планировал написать большую статью об управлении ресурсами в С++.
Но на практике, тема эта такая сложная и многогранная, что я хочу остановиться на определённой методике, которой пользуюсь сам. Данная методика не является спасением на все случаи жизни, но экономит много времени и нервов при работе с объектами. При этом, не является широко известной.
Читать дальше →

Паттерн проектирования «Команда» / «Command»

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

Проблема


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

Описание


Существует по крайней мере три мотивации к использованию шаблона “Команда”:
  • инкапсулирование запроса в виде объекта для последующего протоколирования/логирования и т.п.
  • наделение сущности “вызов метода объекта” свойствами самостоятельного объекта;
  • объектно-ориентированный обратный вызов (callback);

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

2000 из 3000 иконок готово — стань соавтором! (стол заказов)

Reading time1 min
Views15K
Не так давно на хабре был топик, который привел на наш сайт 17 тысяч посетителей за два дня (11,828+5,100 on October 21, 2010). С 2009го года эта уже не первая волна, а последние иконки будут нарисованы в первой четверти 2012го года. Best reseller hosting providers.

image

Не хватает еще 1000 иконок для best email hosting. Готовы ли вы предложить метафоры, которых у нас еще не хватает? Тогда follow me…

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

GOTO в прикладном программировании

Reading time6 min
Views18K

Картинка из книги Thinking Forth

По мотивам «обобщенной» статьи про GOTO и статьи про GOTO в системном программировании:

Мотивы для использования GOTO и альтернативы ему принципиально отличаются для системного и прикладного программирования — это является и важной причиной холиваров. Для прояснения ситуации рассмотрим GOTO только в разрезе прикладного программирования.

Основной тезис: в прикладном программировании GOTO однозначно лучше обходить.

Как докажем:
  1. В прикладном программировании критически важен один параметр кода — сопровождаемость.
  2. Goto не ухудшает однозначно сопровождаемость только в небольшом проценте случаев, и даже в этих случаях принципиально от альтернатив не отличается
  3. Ради небольшого процента случаев его использовать вредно:
    1) очень низкоуровневое, поэтому сильно развращает программиста (возникает соблазн использовать и в других местах) — большой вред из-за небольшого процента случаев, когда GOTO можно применить;
    2) даже в таких случаях есть более красивые альтернативы.

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

Облако: Клонирование дисков VS установка

Reading time6 min
Views18K
Один из вопросов, возникающих при создании сервиса (в данном случае не важно, облака или VDS) — это то, как создавать клиентские машины.

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


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

Как всё начиналось...

Когда облако только-только обретало первые черты, возникла задача автоматизации создания виртуальных машин. Разумеется, первым решением, лежащим на поверхности, было «взять и склонировать». Благо, все делов там — одна команда (xe vm-clone). Дальше была необходимость поправить настройки сети, имя хоста и пароль рута. Всей работы — на пол-дня. Ладно, два дня вместе с ловлей блох.

Сделали? Сделали. К счастью, эту версию не увидели даже бета-тестеры.

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

Information

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