• Основы работы в SciLab. На примере экзаменационных вопросов по КСВЭ

    Завтра мне сдавать экзамен по такому предмету как КСВЭ(Компьютерный сервис вычислительного эксперимента). А лучший способ подготовки — это написание статьи. Я рассмотрю часть вопросов к экзамену, которые связаны с SciLab.
    Статья больше подходит для студентов, использующих scilab для проверки решения, для или для сдачи экзамена по дисциплине КСВЭ. Для более подробного изучения надо читать литературу, указанную в конце статьи

    Основные термины
    Scilab (читается Сайлэб) — пакет прикладных математических программ, предоставляющий мощное открытое окружение для инженерных (технических) и научных расчётов.
    CeCILL (от «CEA CNRS INRIA Logiciel Libre») — это лицензия на свободное программное обеспечение, адаптированная к интернациональному законодательству и законодательству Франции, подобная GNU General Public License и сохраняющая совместимость с ним.
    Система m линейных алгебраических уравнений с n неизвестными (или, линейная система, также употребляется аббревиатура СЛА́У) в линейной алгебре — это система уравнений вида

    Обыкнове́нные дифференциа́льные уравне́ния (ОДУ) — это дифференциальное уравнение вида

    где — неизвестная функция (возможно, вектор-функция, тогда, как правило, тоже вектор-функция со значениями в пространстве той же размерности; в этом случае говорят о системе дифференциальных уравнений), зависящая от независимой переменной, штрих означает дифференцирование по. Число (порядок старшей производной, входящей в данное уравнение) называется порядком дифференциального уравнения (1)

    1. Система компьютерной математики SciLab: История разработки. Возможности и ключевые особенности. Достоинства и недостатки.
    Читать дальше →
  • Диагностика неисправностей блока питания с помощью мультиметра

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

    Дисклеймер номер раз: Данная статья относится только к обычным блокам питания стандарта ATX, она не относится к проприетарным стандартам блоков (например как у старыx рабочиx станциях DELL или SUN), использующим другую распиновку ATX-коннектора. Внимательно сверьтесь со схемой и убедитесь в том, что ваш блок питания является стандартным прежде чем проводить диагностику, во избежании причинения вреда вашему компьютеру.

    Дисклеймер номер два: Вы должны понимать что вы делаете и соблюдать технику безопасности, в том числе электростатической (в т.ч. работать в антистатическом браслете). Автор не несет ответственности за порчу оборудования или вред здоровью вследствие несоблюдения или незнания техники безопасности и принципов работы устройства.


    Перейдем к теории:

    Стандарт ATX имеет 2 версии — 1.X и 2.X, имеющие 20 и 24-пиновые коннекторы соответственною, вторая версия имеет 24-x 4 дополнительных пина, удлиняя тем самым стандартный коннектор на 2 секции таким образом:
    image

    Прежде чем мы начнем, расскажу про “правила большого пальца” по отношению к неисправностям:
    1) Проблемную материнскую плату легче заменить чем починить, это крайне сложная и многослойная схема, в которой разве что можно заменить пару конденсаторов, а обычно это проблемы не решает.
    2) Если вы не уверены в том что вы делаете, то не делайте этого.

    Читать дальше →
  • Несколько тезисов об электронном чтении

      Прошлым летом совершенно неожиданно мне пришла идея приобрести электронную книгу на базе E-Ink. Благо как раз в то время хороший друг был в штатах, Amazon и Barnes&Nobles снизили цены на свои детища, а обратиться за помощью не составляло никаких проблем. Все слилось в быстротечное решение что-нибудь приобрести из упомянутых производителей. Как ни парадоксально мой взгляд остановился на Nook, а не на Kindle. Была у меня какая-то неприязнь к гиганту, да и второй цветной дисплей показался интересным решением. Делать обзор устройства я, конечно же, не буду, ибо оных уже и так много. А в своем сообщении попытаюсь отразить все мысли и идеи, которые сформировались за этот небольшой период использования Nook-a и мониторинга проблематики в целом. Весь текст постарался разбить на отдельные тезисы с небольшими комментариями.

      Читать дальше →
    • Полнотекстовые статьи из RSS для вашей читалки с использованием Calibre

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

        Поэтому я остановил выбор на программе Calibre, так как все-равно использую ее для организации библиотеки и генерации коллекций на устройстве. RSS клиент в программе весьма удобный, и несмотря на необходимость некоторых познаний для создания ленты, после настройки ленты и обновления, дальнейшие манипуляции больше не нужны. Еще можно отметить кросплатформенность программы и большое количество поддерживаемых форматов.
        Дальше будет небольшое howto с картинками.
        Читать дальше →
      • Серьезный разговор о VLC

          Под катом:

          1. Небольшое введение в медиаплеер/сервер VLC.
          2. Удаленное управление VLC.
          2.1. VLC в качестве Пульта ДУ (iPhone/iPod Touch\КПК)
          3. Одиночное/пакетное конвертирование/кодирование видео в VLC (на примере кодирования видео для iPod/iPhone)


          Читать дальше →
        • Выявляем фейки

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

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

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

              С момента покупки смарта на Android меня заинтересовало его функциональное наполнение. На практике оказалось, что Android способен выполнять практически любую задачу, решаемую на обычном ПK, только медленнее и не всегда удобнее. Зато дополняет ПК он прекрасно, и механизмов использования возможностей смарта на ПК и возможностей ПК на смарте — уйма.

              Статья ориентирована в основном на формирующихся и будущих пользователей Android-смартфонов; надеюсь, что продвинутые пользователи также найдут в ней что-то новое и/или внесут свою лепту. Под катом по пунктам, в вопрос-ответном стиле.
              Читать дальше →
            • 50 цитат о программировании всех времён

              • Translation
              Перевёл после прочтения комментариев к статье «О ненависти к C++». В цитатах можно найти ответы на большинство возникших там вопросов.

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

              49. Lisp — это не язык, а строительный материал.
              — Alan Kay

              48. Ходить по воде и разрабатывать программы, следуя спецификации, очень просто… если они заморожены.
              — Edward V Berard
              Читать дальше →
            • Кластеризация точек на основе регулярной сети


                В данной статье я рассмотрю два алгоритма, первый — непосредственно кластеризация, второй — построение контура кластера в виде выпуклого многоугольника, прикладная задача для улучшеного восприятия полученного результата.

                Читать дальше →
              • Переносы в вебе и выключка по формату

                  Как известно, растягивать по ширине тексты на сайтах с помощью конструкции «text-align: justify;» крайне не рекомендуется. Основная проблема — слишком большие пробелы между словами из-за отсутствия переносов в словах.

                  Долгое время браузеры не могли самостоятельно переносить слова. Однако недавно ситуация с поддержкой автоматических переносов стала улучшаться. Firefox 6 стал поддерживать переносы в английских текстах, а с выходом Firefox 8 очередь дошла и до русских текстов. Переносы также есть в последних версиях Safari. Поэтому настала пора подумать, как можно использовать выключку по формату с откатом к выключке влево, если браузер не поддерживает автоматические переносы.
                  Читать дальше →
                • Сети для самых маленьких. Часть нулевая. Планирование

                  • Tutorial
                  Это первая статья из серии «Сети для самых маленьких». Мы с товарищем thegluck долго думали с чего начать: маршрутизация, VLAN'ы, настройка оборудования.
                  В итоге решили начать с вещи фундаментальной и, можно сказать, самой важной: планирование. Поскольку цикл рассчитан на совсем новичков, то и пройдём весь путь от начала до конца.

                  Предполагается, что вы, как минимум читали о эталонной модели OSI (то же на англ.), о стеке протоколов TCP/IP (англ.), знаете о типах существующих VLAN’ов (эту статью я настоятельно рекомендую к прочтению), о наиболее популярном сейчас port-based VLAN и о IP адресах (более подробно). Мы понимаем, что для новичков «OSI» и «TCP/IP» — это страшные слова. Но не переживайте, не для того, чтобы запугать вас, мы их используем. Это то, с чем вам придётся встречаться каждый день, поэтому в течение этого цикла мы постараемся раскрыть их смысл и отношение к реальности.

                  Схема сети

                  Начнём с постановки задачи. Есть некая фирма, занимающаяся, допустим, производством лифтов, идущих только вверх, и потому называется ООО «Лифт ми ап». Расположены они в старом здании на Арбате, и сгнившие провода, воткнутые в пожжёные и прожжёные коммутаторы времён 10Base-T не ожидают подключения новых серверов по гигабитным карточкам. Итак у них катастрофическая потребность в сетевой инфраструктуре и денег куры не клюют, что даёт вам возможность безграничного выбора. Это чудесный сон любого инженера. А вы вчера выдержали собеседование и в сложной борьбе по праву получили должность сетевого администратора. И теперь вы в ней первый и единственный в своём роде. Поздравляем! Что дальше?
                  Читать дальше →
                • Свой инструмент нужно знать в лицо: обзор наиболее часто используемых структур данных

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

                    Вопрос: Почему поиск в python dict на больших объемах данных быстрее чем итерация по индексированному массиву?

                    Ответ: В dict хранятся хэши от ключей. Каждый раз, когда мы ищем в dict значение по ключу, мы сначала вычисляем его хэш, а потом (внезапно), выполняем бинарный поиск. Таким образом, сложность составляет O(lg(N))!

                    На самом деле никакого бинарного поиска тут нет. И сложность алгоритма не O(lg(N)), а Amort. O(1) — так как в основе dict питона лежит структура под названием Hash Table.

                    Причиной неверного ответа было то, что я не удосужился досконально изучить те структуры, которые лежат в основе работы с коллекциями моего любимого языка. Правда, по результатам опроса нескольких знакомых разработчиков, оказалось что это не только моя проблема, очень многие вообще не задумываются, как работают коллекции в их любимых ЯП. А ведь используем мы их каждый день и не по разу. Так родилась идея этой статьи.
                    Читать дальше →
                  • DISLIN — высокоуровневая библиотека визуализации пользовательских данных

                      dislin logo
                      Думаю каждый сталкивался с проблемой визуализации данных внутри своей программы. Особенно, если программа консольная. В топике я хочу рассказать о бесплатной (для некоммерческого использования) кроссплатформенной библиотеке DISLIN, которая разработана институтом исследований Солнечной системы имени М. Планка (Германия). DISLIN может как просто отображать графики, так и сразу их сохранять в файлы. Разработчики заявляют возможность использования в fortran, c/c++, Perl, Python, Java, .NET.
                      Читать дальше →
                    • Как сделать один сайт для всех устройств (Responsive Web Design)

                        Вчера была опубликована хорошая статья «Веб-дизайн. Каждому устройству свое представление». Несмотря на неплохие размышления, к сожалению, вывод в ней довольно глупый. А именно:

                        «Нужно определить, какими устройствами могут пользоваться ваши посетители, проработать и создать для этих устройств представление вашего сайта, определить устройство посредством проверки заголовков браузеров, и отправить наиболее подходящее представление

                        Почему это глупо


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



                        Это скриншот из презентации «Beyond the mobile web by yiibu» (очень рекомендую).

                        Во-вторых, если вы не facebook или yandex, скорее всего, вы не потянете создание и поддержку разных версий сайта для каждого устройства. Да и это не имеет особого смысла. Потому что ситуация становится похожа на реалии пятнадцатилетней давности. Тогда делали сайт «под браузер», а сейчас автор предлагает делать сайт «под устройство».

                        Как сделать один сайт для всех устройств

                        Читать дальше →
                      • Команда dd и все, что с ней связано


                          В UNIX системах есть одна очень древняя команда, которая называется dd. Она предназначена для того, чтобы что-то куда-то копировать побайтово. На первый взгляд — ничего выдающегося, но если рассмотреть все возможности этого универсального инструмента, то можно выполнять довольно сложные операции без привлечения дополнительного ПО, например: выполнять резервную копию MBR, создавать дампы данных с различных накопителей, зеркалировать носители информации, восстанавливать из резервной копии данные на носители и многое другое, а, при совмещении возможностей dd и поддержке криптографических алгоритмов ядра Linux, можно даже создавать зашифрованные файлы, содержащие в себе целую файловую систему.
                          Опять же, в заметке я опишу самые часто используемые примеры использования команды, которые очень облегчают работу в UNIX системах.
                          Читать дальше →
                        • Визуализация графов. Метод связывания ребер

                            Иногда полезно представить граф в графической форме, так чтобы была видна структура. Можно привести десятки примеров, где это может пригодиться: визуализация иерархии классов и пакетов исходного кода какой-нибудь программы, визуализация социального графа (тот же Twitter или Facebook) или графа цитирования (какие публикации на кого ссылаются) и т.д. Но вот незадача: количество ребер в графе зачастую настолько велико, что нарисованный граф просто невозможно разобрать. Взгляните на эту картинку:



                            Это граф зависимостей некой программной системы. Он представляет собой дерево разбиения на пакеты (серые шарики — пакеты, белые — классы), на которое поверх наложены ребра зависимости одних классов от других. Чтобы не рисовать стрелки направления, ребра нарисованы в виде градиентных линий, где зеленый — это начало, а красный — конец ребра. Как видите, граф настолько визуально перегружен, что архитектуру программы невозможно проследить.
                            Под катом описание метода, решающего эту проблему.
                            Читать дальше →
                          • TOP'ай сюда

                              Обзор практически всех *top утилит под linux (atop, iotop, htop, foobartop и т.д.).

                              top

                              Все мы знаем top — самую простую и самую распространённую утилиту из этого списка. Показывает примерно то же, что утилита vmstat, плюс рейтинг процессов по потреблению памяти или процессора. Совсем ничего не знает про загрузку сети или дисков. Позволяет минимальный набор операций с процессом: renice, kill (в смысле отправки сигнала, убийство — частный случай). По имени top суффикс "-top" получили и все остальные подобные утилиты в этом обзоре.

                              atop


                              Atop имеет два режима работы — сбор статистики и наблюдение за системой в реальном времени. В режиме сбора статистики atop запускается как демон и раз в N времени (обычно 10 мин) скидывает состояние в двоичный журнал. Потом по этому журналу atop'ом же (ключ -r и имя лог-файла) можно бегать вперёд-назад кнопками T и t, наблюдая показания atop'а с усреднением за 10 минут в любой интересный момент времени.

                              В отличие от top отлично знает про существование блочных устройств и сетевых интерфейса, способен показывать их загрузку в процентах (на 10G, правда, процентов не получается, но хотя бы показывается количество мегабит).

                              Незаменимое средство для поиска источников лагов на сервере, так как сохраняет не только статистику загрузки системы, но и показатели каждого процесса — то есть «долистав» до нужного момента времени можно увидеть, кто этот счастливый момент с LA > 30 создал. И что именно было причиной — IO программ, своп (нехватка памяти), процесор или что-то ещё. Помимо большего количества информации ещё способен двумя цветами подсказывать, какие параметры выходят за разумные пределы.
                              Читать дальше →
                            • Что нужно знать про арифметику с плавающей запятой



                              В далекие времена, для IT-индустрии это 70-е годы прошлого века, ученые-математики (так раньше назывались программисты) сражались как Дон-Кихоты в неравном бою с компьютерами, которые тогда были размером с маленькие ветряные мельницы. Задачи ставились серьезные: поиск вражеских подлодок в океане по снимкам с орбиты, расчет баллистики ракет дальнего действия, и прочее. Для их решения компьютер должен оперировать действительными числами, которых, как известно, континуум, тогда как память конечна. Поэтому приходится отображать этот континуум на конечное множество нулей и единиц. В поисках компромисса между скоростью, размером и точностью представления ученые предложили числа с плавающей запятой (или плавающей точкой, если по-буржуйски).

                              Арифметика с плавающей запятой почему-то считается экзотической областью компьютерных наук, учитывая, что соответствующие типы данных присутствуют в каждом языке программирования. Я сам, если честно, никогда не придавал особого значения компьютерной арифметике, пока решая одну и ту же задачу на CPU и GPU получил разный результат. Оказалось, что в потайных углах этой области скрываются очень любопытные и странные явления: некоммутативность и неассоциативность арифметических операций, ноль со знаком, разность неравных чисел дает ноль, и прочее. Корни этого айсберга уходят глубоко в математику, а я под катом постараюсь обрисовать лишь то, что лежит на поверхности.
                              Читать дальше →