Search
Write a publication
Pull to refresh
-1
0
Send message

10 приложений для защиты устройств на Android

Reading time5 min
Views97K

Недавние исследования показали, что почти 87% устройств на Android уязвимы к атакам.

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

Как перестать платить за роуминг, или С одним номером по всему свету

Reading time10 min
Views32K
Идея этого материала пришла мне в прошлом году, когда сделав большой круг по нашей необъятной, я в конце месяца получил счета за роуминг. Несмотря на уверения сотовых компаний о свободном роуминге внутри страны, смс или Интернет-трафик может тарифицироваться отдельно. А включенные в тариф минуты действуют только в «домашнем регионе». Ну а поскольку в этом году планы предусматривают путешествия не только по родной стране, то я начал реализовывать свою задумку — собственная стационарная АТС дома, которая сможет связаться со мной в любой точке земного шара.
Попутно я решил проблему телефонной связи между квартирами и домами родственников, поскольку время внутренних переговоров исчислялось не просто часами, а десятками часов.
Небольшой спойлер: в результате удалось установить Asterisk на NAS и роутер


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

Безболезненная прививка объектного мышления

Reading time13 min
Views19K

Или как можно проще об основных принципах ООП в Lazarus и FreePascal


Часть I


Изучать ООП (объектно-ориентированное программирование) можно двумя способами: или прочитать сотню книжек, в которых дается голая теория об устройстве классов и принципах наследования, полиморфизма, инкапсуляции, но так ничему и не научиться, или перестать беспокоиться и попытаться на практике освоить новые приемы, переработав, к примеру, готовые коды, а лучше с нуля изготовив что-то простое, но красивое.


Во всех книгах, посвященных паскалю, delphi и lazarus (я нашел аж целых две о последнем), очень схожая часть, посвященная ООП. По этим книгам можно много узнать о том, насколько круче ООП устаревшего структурного подхода, но так и не получить достаточных навыков применения этого на практике. Конечно, любой программист, использующий визуальные IDE, уже по умолчанию использует ООП, так как все компоненты и структурные элементы визуального приложения представляют собой объекты, однако свои собственные структуры и абстракции перенести в парадигму ООП бывает очень сложно. Чтобы понять всю прелесть и оценить открывающиеся перспективы, я решил сделать небольшое приложение, которое в конечном итоге превратилось в простенький screensaver. Заодно вспомнил о существовании тригонометрии.

Приложение будет рисовать на экране в случайных местах пятьдесят полярных роз с разными характеристиками: размер, цвет, количество лепестков. Потом их же затирать и рисовать новые, и т.д. Используя принципы структурного программирования, можно, конечно, сделать обычный многомерный массив объемом на 50 и в нем сохранять все уникальные характеристики. Однако стоит вспомнить, что паскаль подразумевает строгую типизацию данных, а, следовательно, массив не может состоять их элементов с разными типами. Можно сделать массив из записей (record), но чего уж мелочиться, от записи до класса — один шаг. Вот его мы и сделаем.

Терминальная графика

Reading time8 min
Views58K
Когда printf — мало, а ncurses — много


Когда данных становится слишком много, бывает не хватает стандартного вывода printf в консольной программе. Особенно если различных событий много и различные данные превращаются в безумный листинг. Эти данные могут поступать от контроллера через UART, и тут нечего и думать о какой-то gui-программе. Может так же быть и обычный bash-скрипт, к которому хочется прикрутить какой-никакой псевдографический интерфейс.
Читать дальше →

Проектирование импульсного источника питания с активным ККМ. Эпизод II

Reading time7 min
Views27K
В своей предыдущей статье я рассказал о проектирование импульсного источника питания, показал его схемотехнику и дизайн платы. Остановился на том, что платы для проекта были заказаны на заводе, я их получил и можно приступить к сборке устройства.

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

Собственно, первый блок собран и уехал моему товарищу, второй я собираю уже для себя любимого — он и будет фигурировать в данной статье.

image
Рисунок 1 — Вид печатной платы (сверху)
Читать дальше →

Самые полезные приёмы работы в командной строке Linux

Reading time5 min
Views158K
Каждый, кто пользуется командной строкой Linux, встречался со списками полезных советов. Каждый знает, что повседневные дела вполне можно выполнять эффективнее, да только вот одно лишь это знание, не подкреплённое практикой, никому не приносит пользы.

Как выглядят типичные трудовые будни системного администратора, который сидит на Linux? Если абстрагироваться от всего, кроме набираемых на клавиатуре команд, то окажется, что команды эти постоянно повторяются. Всё выходит на уровень автоматизма. И, если даже в работе есть что улучшать, привычка противится новому. Как результат, немало времени уходит на то, чтобы делать так, как привычнее, а не так, как быстрее, и, после небольшого периода привыкания – удобнее. Помнить об этом, сознательно вводить в собственную практику новые полезные мелочи – значит профессионально расти и развиваться, значит – экономить время, которое можно много на что потратить.

image

Перед вами – небольшой список полезных приёмов работы с командной строкой Linux. С некоторыми из них вы, возможно, уже знакомы, но успели их позабыть. А кое-что вполне может оказаться приятной находкой даже для знатоков. Хочется надеяться, что некоторые из них будут вам полезны и превратятся из «списка» в живые команды, которыми вы будете пользоваться каждый день.
Читать дальше →

Настройка окружения SELinux на примере LAMP-сервера

Reading time8 min
Views25K

Это третья статья из цикла


И сегодня она попала в поток «Администрирование». Сегодня мы не будем писать модули или настраивать RBAC, а пойдем по пути наименьшего сопротивления и просто захарденим обычный LAMP-сервер при помощи готовой политики, включив необходимые настройки.

Если кто забыл, за аббривиатурой LAMP скрывается Linux, Apache, Mysql, PHP, т.е. это большая часть всех VDS, которые покупают люди для хранения своих личных блогов. Надеюсь, что этот поможет всем им стать немного безопаснее :)
Читать дальше →

Реализация узла БПФ с плавающей точкой на ПЛИС

Reading time17 min
Views34K
Всем привет! В этой статье речь пойдет о реализации быстрого преобразования Фурье в формате с плавающей точкой на ПЛИС. Будут показаны основные особенности разработки ядра от самой первой стадии до готового конфигурируемого IP-ядра. В частности, будет проведено сравнение с готовыми ядрами фирмы Xilinx, показаны преимущества и недостатки тех или иных вариантов реализации. В статье будет рассказано о главной особенности ядра БПФ и ОБПФ — об отсутствии необходимости переводить данные в натуральный порядок после БПФ и ОБПФ для их совместной связки. В этой статье я постараюсь отразить всё тонкости реализации проекта под названием FP23FFTK, приведу реальные примеры использования готового ядра. Проект написан на языке VHDL и заточен под FPGA фирмы Xilinx последних семейств.


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

Расширение мира в Scratch

Reading time4 min
Views11K

В среде программирования Scratch область действий ограничена сценой. Сцена дает возможность смотреть на мир в рамках по х от -240 до 240. А по у от -180 до 180. Но что делать, когда этого пространства недостаточно? Как снять это ограничение? 



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

Реcемплинг II. Сравнение работы цифровых и аналоговых фильтров высоких порядков в тракте звука и ответы на вопросы

Reading time6 min
Views18K
Внимание — эта публикация является уточнением первой части статьи и ответом на вопросы из комментариев к ней. Для понимания о чём в ней идёт речь, необходимо ознакомиться с предыдущей если вы этого ещё это не сделали.

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

Итак, под катом рассмотрим две темы:


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

Попробую раскрыть обе эти заслуживающие внимания темы как можно более доступным языком.

Популярно о ресемплинге

Проектирование импульсного источника питания с активным ККМ. Эпизод I

Reading time28 min
Views197K

Предисловие


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

Еще одной причиной отсутствия статей была моя работа в одной «современной успешной IT-hardware-компании», сейчас наконец-то я ее покинул и окончательно пересел на фриланс, так что время для статьи появилось))

Недавно ко мне обратился мой старый наставник и просто очень хороший человек. Естественно я не мог отказать в помощи, а оказалось все достаточно просто — меня попросили сделать блок питания для КВ трансивера FT-450, который будет более стабильный в работе, особенно при пониженном входном напряжении, чем уже имеющийся Mean Well. Прошу заметить, я не говорю о том, что Mean Well плохая фирма, просто в данном случае нагрузка достаточно специфическая, а так продукция у них вполне себе хорошая.

Диагноз примерно такой:


— Заявлен выходной ток в 40А, на деле при потреблением в 30-35А (на передаче) блок уходит в защиту;
— Наблюдается сильный нагрев при длительной нагрузке;
— Совсем становится плохо, когда использует его на даче, где напряжение в сети 160-180В;
— Напряжение максимальное 13,2-13,4В, а хотелось бы 13,8-14В с возможностью подкрутить +-20%.

Особенностью данной статьи будет то, что проект продвигается вместе с ней. Я за него только засел и поэтому смогу рассказать обо всех этапах разработки: от ТЗ до готового прототипа. В таком формате статей с наскоку на гике я не нашел, обычно люди пишут уже проделав всю работу и забыв половину мелочей, которые часто несут в себе главный интерес. Так же эту статью я хочу написать доступным для новичков языком, поэтому местным гуру стоит чуточку проще относиться к «неакадемичности» моего слога.
Читать дальше →

Интермодуляционные искажения в усилителях звуковой частоты и ООС — осторожно, опасные связи

Reading time11 min
Views47K


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

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


Нашли что-то интересное в содержании? Добро пожаловать под кат

Scratch для «продвинутых»

Reading time6 min
Views75K
Scratch — это визуально-ориентированный язык программирования для детей. Существует мнение, что это детский язык для того, чтобы просто поиграть «в программирование» и ничего путного (серьезного) из него сделать не получится. Когда я только начал вести занятия для детей на Scratch, мне как человеку с двумя высшими техническими образованиями, казалось также. Однако спустя время мне пришлось поменять свое мнение. Оказалось, что даже в этом детском языке программирования скрыты фишки, которые могут быть серьезно использованы даже при обучении профессиональному программированию. Хочу поделиться с вами моими открытиями.

Защита от протечек с блекджеком и счетчиками

Reading time18 min
Views58K
Приветствую. Есть такая штука — гидролок\нептун\авквасторож — системы перекрытия подачи воды, если происходит не контролируемая утечка. Принцип простой — датчик воды + автоматика + пара кранов с электроприводами. Но дьявол как обычно в деталях: как устроены краны, как устроены датчики протечки и почему один стоит 50 рублей, а другой 500р. На все это дело навернут килограм макетингового булшита, упаковка вырви глаз и т.д.

В рассказе пройдусь по кирпичикам системы, чем руководствовался в выборе. Вся система строится на заводских датчиках и самодельном контроллере на базе Particle (ex.Spark) Photon (такая esp8266 у которой облачная IDE на wiring из коробки), база девайса stm контроллер + wifi модуль от броадкома. Все это завязано на openhab сервер на Orange Pi One.


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

Основные параметры усилителей низкой частоты и акустики. Что нужно знать, чтобы не попасться на удочку маркетологов

Reading time13 min
Views101K


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

Если вы не аудиофил и подбор аппаратуры не является для вас смыслом жизни, то самый простой путь — уверенно ориентироваться в технических характеристиках звукоусилительной аппаратуры и научиться извлекать полезную информацию между строк паспортов и инструкций, критически относясь к щедрым обещаниям. Если вы не ощущаете разницы между dB и dBm, номинальную мощность не отличаете от PMPO и желаете наконец узнать, что такое THD, также сможете найти интересное под катом.


Я надеюсь что материалы данной статьи будут полезны для понимания следующей, которая имеет намного более сложную тему — «Перекрёстные искажения и обратная связь, как один из их источников».
Нашли что-то интересное в содержании? Добро пожаловать под кат

Настройка UEFI-загрузчика. Самое краткое руководство в мире

Reading time6 min
Views586K

Как устроена загрузка современных ОС? Как при установке системы настроить загрузку посредством UEFI, не утонув в руководствах и ничего не сломав?


Я обещал "самое краткое руководство". Вот оно:


  1. Создаём на диске таблицу разделов GPT
  2. Создаём FAT32-раздел на пару сотен мегабайт
  3. Скачиваем из интернета любой UEFI-загрузчик
    (нам нужен сам загрузчик, это один бинарный файл!)
  4. Переименовываем и кладем этот файл на созданный раздел по адресу /EFI/Boot/bootx64.efi
  5. Создаём текстовый конфиг, кладем его там, где загрузчик ожидает его увидеть
    (настройка и местоположение конфига зависят от конкретной реализации загрузчика, эта информация доступна в интернете)
  6. После перезагрузки видим меню загрузчика
    (Если на диске установлена Windows 8 или 10 — с большой вероятностью это руководство сокращается до пунктов 3 — 5.)

TL;DR не надо прописывать путь к загрузчику в новых загрузочных записях UEFI — надо файл загрузчика расположить по стандартному "пути по-умолчанию", где UEFI его найдет, и вместо загрузочного меню UEFI пользоваться меню загрузчика, которое гораздо проще и безопаснее настраивается

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

Методы удаленного доступа к Linux GUI

Reading time11 min
Views361K
В службу технической поддержки RUVDS регулярно обращаются по поводу GUI и удаленного доступа к нему на виртуальных серверах с Linux, несмотря на то что в интернете достаточно много материалов освещающих эту проблему. Поэтому, для наших пользователей мы решили собрать всё по этой теме в одну статью.


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

Установка принтеров Canon серии LBP в Ubuntu

Reading time2 min
Views62K
Здравствуйте. После выхода в свет Ubuntu 12.04 в состав ее сборки вошли пакеты драйверов для принтеров Canon серии LBP. Но, все же при установке принтера в системе, драйвер отказывается работать корректно.

Всем заинтересованным данной проблемой прошу ознакомиться с инструкцией, в ходе выполнения которой все же удалось заставить фунционировать принтер модели Canon LBP 3010.

Инструкция так же будет справедлива и для других принтеров Canon следующих моделей:

LBP-1120, LBP-1210, LBP2900, LBP3000, LBP3050/LBP3018/LBP3010, LBP3150/LBP3108/LBP3100, LBP3200, LBP3210, LBP3250, LBP3300, LBP3310, LBP3500, LBP5000, LBP5050, LBP5100, LBP5300, LBP6018/LBP6000, LBP6300dn, LBP7200C, LBP9100Cdn.
Читать дальше →

Обзор топологий глубоких сверточных нейронных сетей

Reading time18 min
Views110K
Это будет длиннопост. Я давно хотел написать этот обзор, но sim0nsays меня опередил, и я решил выждать момент, например как появятся результаты ImageNet’а. Вот момент настал, но имаджнет не преподнес никаких сюрпризов, кроме того, что на первом месте по классификации находятся китайские эфэсбэшники. Их модель в лучших традициях кэгла является ансамблем нескольких моделей (Inception, ResNet, Inception ResNet) и обгоняет победителей прошлого всего на полпроцента (кстати, публикации еще нет, и есть мизерный шанс, что там реально что-то новое). Кстати, как видите из результатов имаджнета, что-то пошло не так с добавлением слоев, о чем свидетельствует рост в ширину архитектуры итоговой модели. Может, из нейросетей уже выжали все что можно? Или NVidia слишком задрала цены на GPU и тем самым тормозит развитие ИИ? Зима близко? В общем, на эти вопросы я тут не отвечу. Зато под катом вас ждет много картинок, слоев и танцев с бубном. Подразумевается, что вы уже знакомы с алгоритмом обратного распространения ошибки и понимаете, как работают основные строительные блоки сверточных нейронных сетей: свертки и пулинг.

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

Information

Rating
Does not participate
Registered
Activity