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

User

Send message

ОСРВ QNX: Планирование потоков

Reading time10 min
Views24K
Продолжение цикла заметок об операционной системе реального времени QNX. В этот раз я хотел бы рассказать о планировании потоков в QNX6*. Как уже известно читателям (которые ознакомились с предыдущей заметкой цикла), микроядро QNX6 управляет потоками, а не процессами. И именно микроядро осуществляет загрузку контекста того потока, который должен получить управление в следующий момент. Выбор потока, который будет выполняться процессором (т.е. активно использовать процессорное время) и есть планирование потоков.

Когда происходит планирование потоков


Микроядро QNX Neutrino не работает постоянно, а получает управление только в случае системных вызовов, исключений и прерываний. Также микроядро во время своей работы выполняет планирование потоков. Отсюда можно сделать верный вывод, что операция планирования потоков происходит не сама по себе, а по какому-то событию.
Читать дальше →

Достала избыточность С++

Reading time3 min
Views21K
imageПривет Хабр,
Меня вводит в ступор С++. Вот просто, зависаю над монитором, смотрю в окно, попиваю чай… И начинаю жалеть за бесценно проведенные годы за изучением стандарта С++, попытками написать свой фронт-энд компилер. Эти мудреные книжки С++ In Depth. Как же я негодовал, когда не понимал кода из книги Александреску. Как записывал все постулаты Страуструпа и иже с ними. Зачем? Вот спрашиваю себя, зачем я теперь все это знаю. Более, я хочу сказать, что этот язык нещаден для гуру, не с медицинской, не с экономической точки зрения! Он не оправдывает усилий, вложенных в его изучение — раз. На практике, он экономически не выгоден — два. И нервные клетки подтвердят, что сопровождать чужой плюснутый код — бывает опасно для здоровья -три. Пусть тут будут рандомно разбросаны метафоры, пишу как есть, из опыта.
Читать дальше →

Сервер на стероидах: FreeBSD, nginx, MySQL, PostgreSQL, PHP и многое другое

Reading time16 min
Views40K
Нравится мне эта картинка, у меня, вот никогда такие красивые графики в какти не получались =(

Введение


С момента написания мной предыдущей статьи по оптимизации этой связки прошло довольно много времени. Тот многострадальный Pentium 4 c 512Мб памяти, обслуживающий одновременно до тысячи человек на форуме и до 150,000 пиров на трекере уже давно покоится на какой-нить немецкой, свалке, а клуб сменил уже не один сервер. Всё сказанное в ней всё ещё остаётся актуальным, однако есть вещи которые стоит добавить.
Статья большая, так что будет поделена на логические блоки:

0. Зачем вообще что-то оптимизировать?
  
1. Оптимизация ОС (FreeBSD)
  1.1 Переход на 7.х 
  1.2 Переход на 7.2
  1.3 Переход на amd64
  1.4 Разгрузка сетевой подсистемы
  1.5 FreeBSD и большое кол-во файлов
  1.6 Softupdates, gjournal и mount options
  
2. Оптимизация фронтенда (nginx)
  2.1 Accept Filters
  2.2 Кеширование
  2.3 AIO
  
3. Оптимизация бэкенда
  3.1 APC
  3.1.1 APC locking
  3.1.2 APC hints
  3.1.3 APC fragmentation
  3.2 PHP 5.3
  
4. Оптимизация базы данных
  4.1 MySQL 
  4.1.1 Переход на 5.1
  4.1.2 Переход на InnoDB
  4.1.3 Встроеный кеш MySQL - Query Cache
  4.1.4 Индексы
  
4.2 PostgreSQL
  4.2.1 Индексы
  4.2.2 pgBouncer и другие.
  4.2.3 pgFouine
  
4.3 Разгрузка базы данных
  4.3.1 SphinxQL
  4.3.2 Не-RDBMS хранилище
  4.4 Кодировки
  4.5 Асинхронность
  
Приложение. Мелочи.
  1. SSHGuard или альтернатива.
  2. xtrabackup
  3. Перенос почты на другой хост
  4. Интеграция со сторонним ПО
  5. Мониторинг
  
 6. Минусы оптимизации

Кому что-нибудь из этого списка интересно, жмём сюда...

Программирование на калькуляторах МК: как я делал графические игры

Reading time4 min
Views27K
После прочтения статьи о программируемом микрокалькуляторе на iOS на меня накатил такой приступ ностальгии, что я полез копаться в книжный шкаф, и, после продолжительного поиска, нашёл старую тетрадь с конспектами по программированию и самостоятельно разработанными играми.
Что за шедевры я там нашёл?

Обзор php-frontend'а системы мониторинга Zabbix

Reading time5 min
Views17K
Здравствуйте, хабраюзеры!

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

Системы сейсмического мониторинга: обзор, установка, настройка

Reading time13 min
Views8.5K
Приветствую, уважаемые Хабравчане! Многие из нас живут в сейсмически нестабильных районах, и, полагаю, землетрясений не любит никто. Как технарю, да и вообще, данная тематика мне была всегда интересна: как и где землетрясения зарождаются, как определяют эпицентр и магнитуду, как производится мониторинг и т. д. И вот так получилось, что мне понадобилось сделать некую пилотную систему для мониторинга в реальном времени показателей нескольких сейсмодатчиков, расположенных достаточно далеко друг от друга и от центра, где эти данные и сохраняются, и обрабатываются. При возможности, хотелось также сделать WWW страничку, где можно было бы в реальном времени посмотреть показатели с датчиков. Задача оказалась достаточно нетривиальной, и после того, как был достигнут определённый успех в данном направлении, я решил, что было бы неплохо сделать обзорную статью/мануал по данному вопросу, что в дальнейшем может сильно облегчить кому-то жизнь, особенно учитывая, что информации в Рунете по данному вопросу я не нашёл вообще. А если так взять, в общем-то ни одного HowTo даже в англоязычном интернете я не смог найти, хотя общей и сильно разрозненной информации порядочно. Также я не знал ни одного человека (да их и не так много вообще оказывается), который бы мог направить в нужном направлении, потому до всего пришлось доходить самому, копая Гугл, мануалы и софт с железом.
Итак, эта статья — как настроить сейсмографы фирмы Guralp, снять с них данные и отрисовать в реальном режиме времени на WWW страничке показатели сейсмодатчиков. Также описывается, какой софт используется, где его взять и как настроить.
Читать дальше →

Обзор e-Learning трекеров или Век живи — век учись!

Reading time3 min
Views30K
Все чаще можно услышать про универсальных трекеров-монстров типа ThePirateBay.org, torrents.ru или упоминания трекеров музыкальной либо игровой тематики. Но помимо них давно существуют торрент-трекеры обучающей направленности, о которых мало что известно рядовому пользователю. В основном, это закрытые сообщества образованных людей с регистрацией по приглашениям, которые обмениваются обучающими материалами, будь-то электронные книги, обучающее видео, CBT (computer based trainings), аудио-книги, презентации с конференций или софт для обучения. Преобладающая часть материалов связана с ИТ-технологиями и поэтому будет особенно полезна ИТ-специалистам, от студента, изучающего Linux, PHP или C# и до гуру, который готовится к сдаче CCIE. Также присутствует материал, посвященный изучению иностранных языков, психологии, саморазвитию, соблазнению, развитию бизнес-навыков. Если ты подумываешь сдать на CCNA, MCSE, RHCE, CISSP, Network+, PMP, IELTS/TOEFL и так далее — то здесь можно найти все необходимое и даже больше. Под катом находится обзор англоязычных ресурсов обучающей направленности.
Поехали!

Обзор e-Learning трекеров (часть II)

Reading time3 min
Views12K
В век всеобщей компьютеризации образование становится все доступнее. Онлайн можно посмотреть лекции именитых профессоров, поучаствовать в вебинарах, получить образование в Оксфорде или Кембридже. В этом топике я хотел бы коснуться образовательных трекеров, предоставляющих на бесплатной основе подчас неоценимые материалы. BitMe.org, BitSpyder.net, LearnBits.me, Elbitz.net уже подробно рассмотрены. Итак, новые участники обзора:

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

Сетевой поединок

Reading time9 min
Views1.4K

Вступление


Я хочу рассказать вам почти детективную историю о сетевом поединке. Прошу прощения за длинное вступление, мне показалось, что без него не будет понятно, почему всё так вышло.
Одна сторона я — занимался администрированием лет 10 назад, в организации, где было около 150 компьютеров и тогда всё в Windows (2000). Позже от администрирования отошёл, и хотя сейчас на работе осуществляю функции администратора (тоже с Windows), но больше по поддержке, чтобы не падало, чем по продвижению куда-то вперёд. В жизни отвернулся от Microsoft и сейчас использую Ubuntu Linux. Ubuntu и на уровне пользователя, потому что уже далеко не студент — на компьютере надо работать работу, на ныряние в глубины при всём желании не хватает времени.
О другой стороне я расскажу позже, а пока вокруг поля боя.
Читать дальше →

Prolog — удивительный язык программирования

Reading time10 min
Views207K
— Чем же он удивительный? Я знаю пару десятков языков и для меня не проблема изучить еще один новый, я просто уже не вижу необходимости.

Пролог — уникален. Это единственный язык представляющий парадигму декларативного программирования; это язык, который имеет сотни различных имплементаций, но они все равно называются Prolog, добавляя лишь префиксы и суффиксы к названию; это живой язык в котором не происходит никаких существенных изменений более 20 лет; это, наверное, единственный настолько популярный язык программирования, который не имеет применения в реальном программировании. Почему же Prolog?

Пролог — уникален по своей природе, он появился благодаря счастливому совпадению (таинственному устройству мира). Когда-то в 60-х годах очень бурно развивалась теория автоматического доказательства теорем и Робинсоном был предложен алгоритм резолюций, который позволял доказать любую верную теорему (вывести из аксиом) за конечное время (за какое не известно). Как оказалось позже, это наилучшее решение общей задачи, невозможно доказать теорему за ограниченное число операций. Простыми словами, алгоритм представляет собой обход (в общем случае бесконечного) графа в ширину, естественно, что предсказуемость работы алгоритма практически равно 0, соответственно для Языка Программирования — это абсолютно не подходит. И в этот момент Кальмэроу нашел блестящее сужение задачи, благодаря которому доказательство некоторых теорем выглядело как процедурное исполнение программы. Стоит отметить, что класс доказуемых теорем достаточно широк и очень хорошо применим для класса программируемых задач. Вот так в 1972 появился Prolog.

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

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

Будущее гибкой разработки ПО

Reading time14 min
Views21K

Программное обеспечение проникает во все щели человеческого общества. Мы узнаем погоду через интернет, а не через обычный градусник за окном. Мы едем по новому адресу с навигатором, а не ищем квадрат G7 на странице 59. Мы включаем RunKeeper, когда катаемся на велосипеде, чтобы узнать среднюю скорость и похвастаться в твиттере. Мы используем софт каждый день. Наверное, бОльшую часть жизни мы уже проводим в обнимку с любимыми гаджетами и программным обеспечением, а не с любимым человеком.

Проблема в том, что никто не знает, как на самом деле писать классный софт быстро и правильно. Waterfall благополучно скончался на рубеже веков, а новые методы разработки (agile) пока не могут решить фундаментальные проблемы.
Узнать, что нам всем делать и как с этим жить

Реализация AES на Wolfram Mathematica

Reading time6 min
Views6.2K
В статье Wolfram Mathematica: знакомство хаброчеловек 8bitjoey познакомил сообщество с отличным математическим пакетом Wolfram Mathematica.
Сегодня я продолжу экскурс в данный продукт. Чтобы совместить приятное с полезным, реализуем алгоритм AES при помощи данного продукта.

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

Основы работы с Wine для начинающих

Reading time7 min
Views628K

Введение


Статья посвящена Wine и всем аспектам его использования. В сети находится очень
много информации, есть различные руководства по настройке и многое другое. Я
постараюсь объединить все для того чтобы любой человек смог достичь
максимального успеха, в пределах своих способностей и конечно возможности
программы. Итак — начнем.

Wine — это отдельная реализация Windows API, а не эмулятор, как большинство
думают. Не единожды повторялось, но и здесь будет уместно. Это и делает проект
уникальным и интересным для пользователей различных систем, открывает различные
пути для реализации своих идей. Уникальность заключается в том, что с помощью
этой программы можно запускать Windows приложения в Ubuntu и в других
Linux системах, а также во FreeBSD и в Mac OS X. Правда и тут есть
свои «подводные камни». Некоторые думают что будет легко перейти с одной
системы на другую, в данном случае мы рассматриваем Windows и Linux.

Заблуждение заключается в том что люди думают что у них получиться запустить из
под Wine различный софт, к которому они привыкли и им удобно в нем работать.
Как не крути просто так ничего не бывает. Чтобы заработал наш любимый софт под
Wine нужно попотеть, перечитать кучу руководств и взвесить этот объём
информация. Конечно не совсем софтом придется «пыжиться», но готовым надо быть ко всему. Проект Wine развивается очень быстро, но до стабильной работы ему
очень далеко. Но думаю что в скором будущем весь основной софт, а также игры
будут работать на нем стабильно.

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

Прожить сто лет и не постареть

Reading time6 min
Views2.4K
Логотип компании, на который вы смотрите, в 2010 году был оценен в $64,7 миллиарда долларов США. Если поделить эту сумму на 100 лет существования IBM то получается, что каждый год стоимость этого бренда возрастала более чем на полмиллиарда долларов. Заслуга такого роста заключается не в продуктах — они эфемерны, цикл их жизни ограничен, она заключается в политике компании по отношению к ее настоящему и что куда более важно — будущему, в котором предстоит работать сотрудникам, создающим эти продукты на протяжении десятилетий, столетий. Лучше всех эту мысль выразил текущий CEO компании Сэм Палмизано: «Если ваш бизнес построен на движении в будущее, вы не можете быть эмоционально привязаны к прошлому».

Все это небезынтересные факты, так как история развития т.н. «Big Blue» начинается даже не в 1911 (за шесть лет до Октябрьской революции) но еще раньше. Фактически, корни IBM уходят в 80-е года 19-го века и причиной тому являются четыре события, произошедшие на переломе столетий: в 1885 году Юлиус Питрап изобрел первые вычислительные весы, в 1888 году Александр Дей изобрел часы с регистратором для подсчета времени работы и наконец в 1889 Герман Холлерит запатентовал табулятор, а Виллард Банди придумал устройство, основанное на часах, для того чтобы отмечать время прихода и ухода сотрудника с работы. Лишь 16 июня 1911 года все эти технологии и компании, владевшие ими, были объединены Чарльзом Ранлеттом Флинтом в C-T-R: Computing-Tabulating-Recording Company, которую мы знаем сегодня, как IBM, уже не занимающую производством табуляторов, перфорационных карт или таймеров для машин по нарезке сыра и мяса.

«Я верю, что если организации предстоит встретить различные вызовы в постоянно изменяющемся мире, она должна быть готова изменить все внутри себя, кроме убеждений» — это сказал не Ганди, а другой, не менее великий и куда более инновативный человек — Томас Ватсон младший, благодаря которому IBM достигла всего, что имеет сегодня. Его отец, возглавлявший корпорацию до прихода сына в кресло исполнительного директора, так же отличался недюжинным умом и харизмой — благодаря нему глагол «THINK» стал мантрой сотрудников компании. Мы сегодня обращаем много внимания на личностей, строящих огромный и успешный бизнес вокруг собственной персоны и последователей, восхищающихся им. Ватсоны не были такими, несмотря на оптимизм и безупречный стиль в вопросах руководства, они оба хорошо понимали, что построить действительно эффективную компанию, которая переживет их обоих и всех будущих директоров, кем бы они ни были, нужно делать ставку на общие ценности, мораль, работников. Только эта константа имела значения для людей, вошедших в историю.
Читать дальше →

Переполнение при умножении

Reading time3 min
Views14K
Перед выполнением умножения C++ приводит множители к одному типу не короче int, а разрядность результата совпадает с разрядностью приведенных множителей. Для того, чтобы не потерять точность, иногда требуется для умножения выполнять дополнительные операции.
Читать дальше →

Ещё раз о «Mercurial против Git» (с картинками)

Reading time3 min
Views61K
Некоторое время назад я опубликовал очень многословное сочинение, где пытался объяснить, почему Git серьёзно поломан, и почему всем следует вместо этого пользоваться Mercurial, до тех пор, пока разработчки Git его не починят. Ну ладно, я был не настолько груб, но близок к этому.

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

Ниже я нарисовал упрощёный граф истории репозитория Git с тремя созданными ветками: «master», «release» и «topic». До того, как энтузиасты Git начнут ругаться, что я исхитрился показать нереально плохой случай запутанности истории, позвольте мне заверить вас, что это на самом деле ещё упрощённый пример. У меня есть доступ к реальному репозиторию Git, где создано шесть рабочих веток релизов, около сорока рабочих тематических веток и несколько сотен ранее существовавших веток, которые уже удалены с центрального сервера.
Читать дальше →

Что должен знать о времени каждый программист

Reading time3 min
Views100K

Некоторые замечания о времени

  • UTC: время на нулевом меридиане называется Всемирное координированное время, Universal Coordinated Time. Несовпадение акронима было вызвано необходимостью универсальности его для всех языков.
  • GMT: ранее вместо UTC использовалось среднее время по Гринвичу (Greenwich Mean Time, GMT), так как нулевой меридиан был выбран так, чтобы проходить через Гринвичскую королевскую обсерваторию.
  • Прочие часовые пояса могут быть записаны как смещение от UTC. Например, Австралийское восточное стандартное время (EST) записывается как UTC+1000, то есть время 10:00 по UTC есть 20:00 по EST того же дня.
Читать дальше →

Лучшая шахматная программа Rybka дисквалифицирована и лишена всех наград

Reading time2 min
Views13K
В профессиональном спорте атлета могут дисквалифицировать за применение допинга, но за какую провинность можно наказать компьютерную программу? Оказывается, в мире компьютерного киберспорта, а именно, в шахматах, тоже суровые правила. Комиссия из 34 разработчиков шахматных движков приняла решение: многократный чемпион мира по шахматам, программа Rybka, признана виновной в плагиате исходных кодов из двух Open Source программ Crafty и Fruit.

Теперь исполнительный комитет Международной ассоциации компьютерных игр требует у автора программы, мастера международного класса и выпускника Массачусетского технологического института Васика Райлиха, вернуть все трофеи и призовые деньги, которые он заработал обманным путём, то есть грубо нарушив лицензию GNU GPL.
Читать дальше →

Почему девушки не играют в видео игры?

Reading time11 min
Views46K
Хотела написать что-то умное, но потом решила схалявить, так что поговорим вот о чём — почему же у нас девушки не играют в компьютерные игры? Нет, некоторые, конечно, могут и сильному полу фору дать в какой-нибудь стрелялке. Но чаще всего это не так. Девушка самозабвено и с предвкушением выбирающая в магазине очередной шутер, или пусть даже РПГ, или вообще какую-то игру — редкое зрелище. Почему?
Мне вот как-то говорили даже, что был такой доклад на КРИ — почему девушки не играют. Сказали, доклад был странный, и какой-то феминистически настроенный, с главным месседжем — девушки не играют потому, что игры делают тупые мужики. Ну это со слов очевидцев, сама я не берусь утверждать, был ли доклад плох или хорош — не присутсвовала.
И всё же подумалось, а кстати, почему не играют? Так я стала раскладывать всё по полочкам, и вырисовалась такая картинка.

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

Information

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