Pull to refresh
0
Галеев Ильдар Даниярович@GISoftread⁠-⁠only

User

Send message

Создаем ELF-файл с отладочной информацией (DWARF) вручную (для микроконтроллеров ARM)

Reading time27 min
Reach and readers33K

Введение


С недавнего времени я увлекся микроконтроллерами. Сначала AVR, затем ARM. Для программирования микроконтроллеров существует два основных варианта: ассемблер и С. Однако, я фанат языка программирования Форт и занялся портированием его на эти микроконтроллеры. Конечно, существуют и готовые решения, но ни в одном из них не было того, что я хотел: отладки с помощью gdb. И я задался целью заполнить этот пробел (пока только для ARM). В моем распоряжении была плата stm32vldiscovery с 32-битным процессором ARM Cortex-M3, 128кБ flash и 8 кБ RAM, поэтому я и начал с нее.
Писал я кросс-транслятор Форта конечно на Форте, и кода в статье не будет, так как этот язык считается экзотическим. Ограничусь достаточно подробными рекомендациями. Документации и примеров в сети по предмету почти нет, некоторые параметры подбирались мной путем проб и ошибок, некоторые — путем анализа выходных файлов компилятора gcc. Кроме того, я использовал только необходимый минимум отладочной информации, не касаясь, например, relocation-ов и множества других вещей. Тема очень обширна и, признаюсь, разобрался я с ней только процентов на 30, что оказалось для меня достаточным.
Читать дальше →

Asterisk — это болид «Формулы-1», а не рейсовый автобус

Reading time13 min
Reach and readers10K

Asterisk — фи, это же моветон


Здравствуйте уважаемые читатели этого замечательного ресурса. По уже сложившейся традиции — являюсь давним читателем habr'а, но только сейчас решил сделать пост. Что, собственно, побудило к написанию? Честно сказать, и сам не знаю. То ли притянутые статьи о производительности FreeSWITCH/Yate/3CX/etc в сравнении с Asterisk, то ли действительные, реальные проблемы архитектуры последнего, а, возможно, желание сделать что-нибудь уникальное.


И что удивительно, в первом случае, как правило, сравнивают мягкое и теплое, так сказать, FreeSWITCH/Yate/etc и FreePBX. Да-да, именно FreePBX. Это не опечатка. Причем интересно, что во всех сравнениях зачастую один Asterisk в дефолтной конфигурации. Ну, вы знаете, эта конфигурация — загруженные все имеющиеся модули, кривой диалплан (FreePBX как бы способствует) и куча остальной необъективщины. Что до родовых болячек Asterisk'а — да, объективно их вагон и маленькая тележка.


Что со всем этим делать? Разрушать стереотипы и исправлять родовые травмы. Этим и займемся.

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

Создание пользовательского интерфейса для Blend4Web (ч.1)

Reading time8 min
Reach and readers9.5K
Иногда я считаю себя первопроходцем, открывающим новые страницы использования Blend4Web. Это молодой движок, с энергичной командой разработчиков, богатыми возможностями и множеством не очень хорошо документированных функций. Что-то я черпаю из исходников большого количества демо, дергаю разработчиков по всяким вопросам, а чаще всего действую методом “научного тыка”. В этой статье я хочу поделиться своими наработками по созданию пользовательского интерфейса для приложения. И что важно, с помощью Blend4Web и HTML5 можно сделать вполне приличный игровой GUI.


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

Вейвлет-сжатие «на пальцах»

Reading time10 min
Reach and readers185K


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

Попробуем на простых примерах разобраться, откуда же вообще берутся вейвлеты и как их можно использовать при сжатии. Предполагается, что читатель знаком с основами линейной алгебры, не боится слов вектор и матрица, а также умеет их перемножать. (А во второй части даже попробуем что-то запрограммировать.)

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

4 крутые штуки про разработку игр

Reading time4 min
Reach and readers40K


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

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

После выпуска Ultima Online Ричард Гэрриот сказал: «Мы думали, это будет что-то фантастическое. Мы потратили на неё огромное количество времени и сил. Но случилось то, что игроки просто шли и убивали всех так быстро, что игра даже не переходила на новый виток, и симулятор жизни даже не начинался. И эту часть, на которую мы потратили столько времени, даже никто ни разу не заметил, ни разу! И в итоге мы просто удалили ее из игры».

А дальше вводится совершенно сумасшедшая концепция оценки плотности сюжета – модель в голове игрока. Это очень многое для меня перевернуло.
Читать дальше →

Реализация NetFlow сенсора на FPGA + CPU — гибко и быстро

Reading time12 min
Reach and readers13K

Добрый день!


Как вы поняли из названия, вас ждет очередная статья про NetFlow, но на этот раз с необычной стороны — со стороны реализации NetFlow сенсора на FPGA.



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

Random Forest: прогулки по зимнему лесу

Reading time9 min
Reach and readers75K
Random Forest



1. Вступление


Это небольшое практическое руководство по применению алгоритмов машинного обучения. Разумеется, существует немалое число алгоритмов машинного обучения и способов математического (статистического) анализа информации, однако, эта заметка посвящена именно Random Forest. В заметке показаны примеры использования этого алгоритма для задач классификации и регрессии, а также даны некоторые теоретические пояснения.


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

Генерация ландшафтов в Unity3d

Reading time5 min
Reach and readers122K

Думаю все заметили, что сейчас стало появляться множество всяких бродилок с выживанием в стиле Minecraft. Сделать такую решился и я. Начало было лёгким — Unity3d имеет огромный функционал для сознания простеньких игр (и не только). Персонаж, игровые объекты, в общем основу сделать быстро. Но какой minecraft без рандомно генерируемого мира? Это стало первой трудной задачей. И думаю не только для меня. Просмотрев весь гугл и потратив кучу времени на эту бесполезную вещь я решил написать эту статью дабы сократить страдания других.
Читать дальше →

Руководство по оформлению HTML/CSS кода от Google

Reading time12 min
Reach and readers369K

От переводчика


С удовольствием ознакомился с этими рекомендациями и теперь предлагаю вам перевод.

Введение


Это руководство описывает правила для оформления и форматирования HTML и CSS кода. Его цель — повысить качество кода и облегчить совместную работу и поддержку инфраструктуры.

Это относится к рабочим версиям файлов использующих HTML, CSS и GSS

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

Генерация звука для Unity-проектов с помощью Chuck и OSC

Reading time2 min
Reach and readers7.3K

Небольшая заметка по озвучиванию проекта на Unity (Survival Shooter) посредством языка аудио-программирования Chuck и Open Sound Control (OSC).

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

Работа с ESP8266: Пишем прошивку для управления системой nooLite

Reading time20 min
Reach and readers61K
В прошлых статьях мы рассмотрели работу с SoC Espressif ESP8266 на примере работы с базовой AT-прошивкой, сборкой компилятора и написания собственной прошивки с реализацией TCP-сервера (клиента). В этой статье мы рассмотрим пример написания прошивки для работы с модулем передатчика nooLite MT1132 и попробуем управлять освещением в реальной квартире. Всем кому это интересно, прошу под хабракат.
Подробности

Работа с ESP8266: Собираем компилятор и пишем первую прошивку

Reading time15 min
Reach and readers192K
В прошлой статье мы рассмотрели первоначальную настройку и работу модуля ESP-01 с базовой AT-прошивкой. Возможности данной прошивки достаточно ограничены и использовать её для каких-то повседневных задач достаточно сложно. Как я писал в первой статье, для ESP8266 можно написать свою прошивку с нужным функционалом и тем самым сделать плату ESP-01 самодостаточным устройством. Всем кому это интересно, прошу под хабракат.
Подробности

EJTAG: аттракцион для хакеров

Reading time12 min
Reach and readers29K


Кампания по продвижению нанокомпьютера black swift в самом разгаре (см. также публикацию на habrahabr). black swift построен на базе SoC Atheros AR9331, что позволило сделать его с одной стороны крошечными, недорогим, и малопотребляющим, а с другой стороны в распоряжении пользователя находится процессорное ядро MIPS 24Kc, работающее на частоте до 400 МГц.
Недавно на форуме black-swift.ru был задан вопрос
Есть потребность в документации по использованию JTAG-интерфейса в устройстве. Можно ли ожидать чего-нибудь в этом направлении?

В данной публикации я вставлю свои пять копеек приведу конкретный простой сценарий использования JTAG-интерфейса SoC Atheros AR9331 для отладки программного обеспечения.
Публикация может быть интересна не только разработчикам ПО для AR9331, но и всем интересующимся внутрисхемной отладкой на процессорах с архитектурой MIPS при помощи свободного ПО.
Читать дальше →

Black Swift: использование EJTAG

Reading time13 min
Reach and readers14K

Моя предыдущая публикация EJTAG: аттракцион для хакеров хотя и была тепло встречена общественностью, имела некоторые недочёты: к примеру, была продемонстрирована уж слишком низкая производительность передачи по EJTAG (аж целых 2 КБ/с!).
К сожалению, я умудрился привести интерфейс JTAG платы MR3020 в полную негодность (был оторван провод TDI вместе с кусочком SMD-резистора R16). Так как устранить поломку не удалось, то недочёты остались неисправленными.
Несколько дней назад я получил от руководителя проекта Black Swift Дмитрия Жеребкова плату Black Swift Pro с адаптером. Плата Black Swift Pro во многом аналогична MR3020, а значит у меня появилась возможность написать публикацию про EJTAG на Black Swift и устранить прошлые недочёты!
Читать дальше →

Программно-определяемый ЦОД: зачем это нужно в практике сисадмина

Reading time10 min
Reach and readers21K

Концепция программно-определяемых ЦОД появилась очень давно. Тем не менее, на практике мало что было реализовано и работало, разве что у IaaS-провайдеров. По факту чаще всего была обычная виртуализация. Теперь же можно шагнуть дальше на стеке VMware, а можно реализовать всё на Openstack — тут придётся думать головой и взвешивать много факторов.

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

Зачем это нужно? Очень просто: начиная с автоматизации рутины, отвязывания зависимости от физического железа; точно знать потребление каждого ресурса; знать до копейки, и заканчивая тем куда и как идут деньги в IT-бюджете. Последние две причины лежат немного за пределами обычных админских целей, но очень полезны для CIO или сисадминов среднего и крупного бизнеса, рассчитывающих на полное взаимопонимание с коммерческим отделом. И премию, чего уж там.

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

Как стать системным администратором — пособие для начинающих (часть 2)

Reading time11 min
Reach and readers559K
Предыдущая часть: habrahabr.ru/post/118475

В этой части: подробнее о жизни эникейщика: как устроиться, чем заниматься, чего избегать, к чему стремиться.

Я откладываю вопрос о «будущем сисадмина» на следующие части — сейчас я сфокусируюсь на том, как начинается карьера. Повторю, опытным администраторам всё это будет казаться либо обидным, либо очевидным — но я достаточно посмотрел за эту весну на людей, которые пытаются «вскочить в индустрию», но у них не получается. Именно для них этот цикл статей. (Я не ощущаю себя достаточно умным, чтобы рассказывать про будущее карьеры для людей, у которых опыта, возможно, больше, чем у меня).

Вступление


Примерно до середины 2000ых было два пути стать системным администратором: через путь эникейщика и через профильное высшее образование (обычно, в всякого рода институтах связи). Первое давало много опыта, второе — довольно много знаний (из которых большая часть не нужна). Сейчас появился третий — всякого рода «курсы системного администрирования», которые, реально, тлен и прах (если судить по тому, что знают и умеют те, кто их закончил).
Читать дальше →

Пятничный формат: ДНК и решение проблемы хранения данных

Reading time3 min
Reach and readers20K


По мнению сотрудников компании Backblaze, которая не так давно провела эксперимент по вычислению длительности работы жестких дисков, некоторые HDD способны хранить информацию без повреждений порядка 10 лет – не так уж и много.

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

Должность — тимлид

Reading time11 min
Reach and readers217K
Тимлид (aka ведущий разработчик, team leader) — один из таких «специалистов», обязанности которого многие видят по-разному. Думаю, что складываются различные представления примерно так: поработал кто-то в команде под руководством тимлида, который хорошо справлялся с задачами проектирования системы, и считает теперь, что это именно то, что должен делать тимлид; в другой же команде тимлид плохо справлялся с планированием спринтов, а с другими обязанностями более или менее, и стали считать сотрудники, что планирование — не то, чем должен заниматься тимлид.

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

Использование оболочки Visual Studio 2010 для компиляции проектов с помощью gcc в Linux

Reading time8 min
Reach and readers37K
Ни для кого не секрет, что Microsoft Visual Studio 2010 представляет собой мощную IDE, которая, помимо всего, позволяет заменять команды сборки проекта проектов путем внесения изменений в .vcxproj файлах. Как выяснилось, можно использовать эту возможность, чтобы заставить Visual Studio собирать проекты с помощью gcc, работающего на другом компьютере под управлением Linux. При этом обращение к gcc на Linux должно происходить по сети, например по ssh. В этой статье мы расскажем вам о проделанном нами эксперименте по такой необычной настройке Visual Studio.

Предположим, у нас есть программа:
Читать дальше →

Пишем SOAP клиент-серверное приложение на PHP

Reading time29 min
Reach and readers248K
Всем привет!
Так случилось, что в последнее время я стал заниматься разработкой веб-сервисов. Но сегодня топик не обо мне, а о том, как нам написать свой XML Web Service основанный на протоколе SOAP 1.2.

Я надеюсь, что после прочтения топика вы сможете самостоятельно:
  • написать свою собственную серверную реализацию веб-приложения;
  • написать свою собственную клиентскую реализацию веб-приложения;
  • написать свое собственное описание веб-сервиса (WSDL);
  • отправлять клиентом массивы однотипных данных на сервер.

Как вы могли догадаться, вся магия будет твориться с использованием PHP и встроенных классов SoapClient и SoapServer. В качестве кролика у нас будет выступать сервис по отправке sms-сообщений.
Интересно?

Information

Rating
Does not participate
Location
Прокопьевск, Кемеровская обл., Россия
Date of birth
Registered
Activity