Как стать автором
Обновить
0
@failureread⁠-⁠only

Пользователь

Отправить сообщение

Немного о том как организовывать API веб-службы

Время на прочтение3 мин
Количество просмотров20K
Возникла задача организовать веб-службу, к которой будут обращать обычные клиенты из браузера и другие веб-службы.

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

На билеты можно смотреть цены, предварительно бронировать, выкупать бронь, возвращать купленные и удалять бронь.

Вопрос: как лучше всего организовать API?
А вот так

Проектирование подсистемы питания электронного измерителя

Время на прочтение5 мин
Количество просмотров2.3K

Аннотация


В статье представлен структурный анализ подсистемы питания стационарных средств измерений показателей качества электрической энергии (СИ ПКЭ).
Данный принцип также подходит для проектирования подситемы питания других различных приборов и электронных устройств.

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

Практика радиосвязи, как она есть

Время на прочтение7 мин
Количество просмотров187K
Все мы ежедневно сталкиваемся с разными видами радиосвязи и беспроводной передачи данных. Да что там сталкиваемся: мы практически пронизаны радиоволнами разной частоты, модуляции и напряженности (за исключением, разве что, случая, если не находимся внутри «клетки Фарадея»). Здесь, на хабре, в силу ИТ-направленности, очень много статей о видах связи и передачи данных, о разнообразных телекомах, о магистралях и «последних милях», да и еще много о чем, что имеет прямое или косвенное отношение к связи, как к проводной, так и к беспроводной.

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

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

Защита и взлом БД на примере программы «Каталог запчастей»

Время на прочтение4 мин
Количество просмотров17K
Если вы хотите защитить базу данных, которая используется в вашей программе, то эта информация окажется вам полезной. Возможно нужно улучшить защиту, например, шифруя значения базы данных и расшифровывая их при выводе.

Итак. Есть программа с папкой DATA, данные из которой очень хочется получить.

Есть несколько вариантов.
  • Превый вариант. Можно пойти сложным путем, снимая скриншоты и экспортируя заявки по одной в excel. Но это долгий способ и неинтересный.
  • Второй вариант. Подумать и раскодировать данные.

Для начала нужно узнать в каком формате хранятся данные в программе. Можно воспользоваться бесплатной программой TrID.
Читать дальше →

Взаимодействие bash-скриптов с пользователем. Часть 2

Время на прочтение3 мин
Количество просмотров52K
Наша программа настолько сурова, что даже логин отображается звездочками (bash.org.ru)

Вашему вниманию представляется новая подборка средств общения скриптов с пользователем. Надеюсь, интересно будет всем, кто не боится работать с консолью.
Первую часть можно найти тут.
Читать дальше →

PHP-Матрёшки или Шаблоны для любого сайта из 8 строчек

Время на прочтение6 мин
Количество просмотров12K
Я расскажу о своих шаблонах (из восьми строчек), которые придумал в 2003 году и с тех пор они меня не подводили и не требовали каких-либо улучшений.

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

image

Физически это выглядит так. У меня в апаче настроен хост http://start.local с домашней директорией для браузеров /home/start.local/www, где лежит стартовый корневой файл /home/start.local/www/index.php, который содержит в себе всего одну строчку:

<?load::integration('main.tpl');?>


Этот текст надо читать так: класс load вызывает функцию (метод) load::integration(), в которую передает один параметр – строчку 'main.tpl'.

Где, main.tpl – это имя файла первого пхп-шаблона, а функция load::integration() содержит механизм, который позволяет обрабатывать указанный шаблон. А конкретнее, он позволяет нам прописывать в шаблоне main.tpl, другой шаблон, например default.tpl, в который будет вложен результат выполнения mail.tpl. В свою очередь default.tpl, также может указать вышестоящий шаблон (как изображено на рисунке). Если же вышестоящих шаблонов не указано, то функция load::integration() остановит сборку шаблонов и отдаст общий результат выполнения всех шаблонов в браузер.

Далее я расскажу как все работает и дам ссылку скачать код.

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

Debian Server для новичка

Время на прочтение15 мин
Количество просмотров233K
Как-то обеспокоился наличием собственного FTP-сервака. Тем более под это дело «на помойку» был отдан комп этак десятилетней давности. Так как я человек хоть и виндовый, но начинал с чистого ДОСа (про книжки тов. Фигурнова кто помнит?), то я решил сделать все на линуксе. В линуксе я был ноль полный. Еще и усложнил задачу — только консоль, никаких исков (как же — это ж линукс). Дистрибутивом был выбран Debian. Так получилось, что надобность в 2Тб личном хранилице отпала через год и комп был отдан в хорошие руки, а хард пристроен в нужное место. Но был накоплен неплохой опыт стопроцентного новичка. Какие только глупые ошибки я не совершал поначалу! И хабр читал, между прочим, пока разбирался с проблемами. Поэтому эту свою дебютную (первую) статью на хабре я посвящаю тем, кто хочет заняться линуксом с нуля и эта статья призвана для плавного ввода «в тему», являясь, по сути, фильтрацией и систематизацией всего того, что я нашел на просторах интернета. Ранее я этот материал уже публиковал, но, думаю, на хабре он тоже будет полезен.
Читать дальше →

Введение в параллельные вычисления

Время на прочтение6 мин
Количество просмотров48K
Параллельной машиной называют, грубо говоря, набор процессоров, памяти и некоторые методы коммуникации между ними. Это может быть двухядерный процессор в вашем (уже не новом) ноутбуке, многопроцессорный сервер или, например, кластер (суперкомпьютер). Вы можете ничего не знать о таких компьютерах, но вы точно знаете, зачем их строят: скорость, скорость и еще раз скорость. Однако скорость — не единственное преимущество.

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

Что самое удивительное, в университетах пока не спешат переводить программы обучения в русло параллельных вычислений! При этом сегодня нужно постараться, чтобы найти компьютер с одним ядром. В моем родном Carleton University курсы по параллельным вычислениям не входят в обязательную программу Bachelor of Computer Science, и доступны лишь для тех, кто прошел основные курсы первых трех лет. На том же уровне находятся курсы по распределенным вычислениям, и некоторых могут сбить с толку.

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

Кукушка на bash своими руками

Время на прочтение4 мин
Количество просмотров25K
Привет, %username%.

Для организации моей работы удобно видеть или слышать уведомления о том, что прошел час, полчаса и т.д. Это нужно мне для ориентации во временном пространстве и правильного планирования своей работы.
Поскольку у меня стоит Ubuntu, то и статья будет про то, как сделать такие уведомления стандартными средствами Ubuntu.

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

Продолжаем игры с подопытным T2000 — этап, делимся мощностью

Время на прочтение7 мин
Количество просмотров2.7K
Сегодня продолжу описывать испытания, на уже знакомом нам по предыдущему посту серверу Sun Fire T2000. Необходимо попробовать насколько безболезненно пройдет установка на такую машинку свеженького Oracle VM (бывший Ldom) и запуск в ней Solaris. Так сказать тренировочный забег перед официальной работой. Кому-нибудь да пригодится подробный мануал.
Читать дальше →

In-memory-data-grid. Масштабируемые хранилища данных

Время на прочтение5 мин
Количество просмотров24K
В последнее время интерес к облачным архитектурам растет с каждым днем, так как это один из наиболее эффективных способов масштабировать приложение, не прикладывая больших усилий, а самым узким местом любого высоконагруженного проекта является хранилище данных, в частности реляционная БД. Для борьбы с недостатками традиционных БД в основном используется 2 подхода:

1) Кэширование результатов выполнения запросов
  • плюсы: высокая скорость доступа к данным
  • минусы: требует компромисса между актуальностью данных и скоростью доступа, т.к. данные в кэше могут устареть, а удалять старые данные из кэша с последующим кэшированием новых — это дополнительные задержки и нагрузка на систему

2) NoSQL решения
  • плюсы: хорошая горизонтальная масштабируемость, доменная модель данных совпадает с моделью хранения данных
  • минусы: низкая скорость получения результатов в случае использования диска, практически невозможно обеспечить работу внутрикорпоративного софта, который ориентирован на работу с конкретной реляционной БД.

Сегодня я хочу познакомить вас с таким типом хранилища данных, который объединяет достоинства обоих подходов и при этом имеет ряд преимуществ перед упомянутыми выше решениями: In-memory-data-grid (IMDG).
Читать дальше →

Инструменты командной строки для веб-разработчика

Время на прочтение3 мин
Количество просмотров40K
Жизнь веб-разработчика омрачена сложностями. Особенно неприятно, когда источник этих сложностей неизвестен. То ли это проблема с отправкой запроса, то ли с ответом, то ли со сторонней библиотекой, то ли внешний API глючит? Существует куча различных прилад, способных упростить нам жизнь. Вот некоторые инструменты командной строки, которые лично я считаю бесценными.
Читать дальше →

Обработка входящей почты на PHP

Время на прочтение2 мин
Количество просмотров38K
Хочу поделиться рецептом, как совместить php-скрипт и почтовый сервер Postfix для автоматической обработки входящей почты.

С помощью такой связки мы собираем статистику по количеству возвратов bounce-писем:Undelivered Mail Returned to Sender.

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

Как это сделать...

Переход с UFS на ZFS, опасные операции с ROOT разделом

Время на прочтение4 мин
Количество просмотров2.6K
Сегодня решил рассмотреть интересный вопрос касательно перехода на ZFS.
Для начала ознакомимся с тем что у нас имеется для соответствующего эксперимента, имеется сервер SunFire T2000, с 4 дисками SAS.

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

Автоматизация магазина или как конкурировать с супермаркетами

Время на прочтение4 мин
Количество просмотров93K
image
В один прекрасный день появилась идея автоматизации своего небольшого магазина. Причин было несколько: во-первых, продавцы всю смену стоят на ногах, что не комфортно; во-вторых, когда человек ходит сам, он не может обвинить продавца в качестве принесенного товара, тут он сам смотрит, выбирает и кладет в корзину, соответственно может положить не только то, за чем пришел; в-третьих, нужно было избавиться от больших очередей.
В этом посте постараюсь поделиться опытом организации.
Читать дальше →

Линукс — это Юникс?

Время на прочтение4 мин
Количество просмотров28K

Часть 1


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

Линукс это Юникс?


Если вы задаетесь этим вопросом, значит вы находитесь в одном ряду с многочисленными Линукс и Юникс разработчиками, администраторами и пользователями. Каков приговор? Суд так и не может принять окончательное решение. С виду это простой вопрос, но задайте его 10 людям, и вы получите 10 разных ответов. Суть проблемы заключается в том, как каждый человек по-разному представляет эти понятия. Некоторые думают, что это наборы стандартов, другие, что это сообщества, третьи — вообще торговые марки. Откровенно говоря, Линукс и Юникс — это все эти вещи одновременно.
Читать дальше →

Обзор бесплатных инструментов для аудита web-ресурсов и не только

Время на прочтение4 мин
Количество просмотров40K

Вопрос безопасности всегда будет актуальным, особенно в Сети. По этому, чтобы в один прекрасный день не получить на своем ресурсе такую картинку нужно уметь проверять на предмет уязвимостей себя самого.

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

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

В злых целях знания использовать не буду!

Что веб-дизайнеры могут почерпнуть из видео игр

Время на прочтение12 мин
Количество просмотров4.5K
Игры становятся более похожими на веб-страницы, а веб-страницы все больше напоминают игры. Посмотрите на Хабр: народ пишет топики, за который начисляют карму и рейтинг. Это работает согласно психологии успеха и игровой механике, таким образом, поощряя взаимодействие. Отсюда возникает вопрос: что веб-дизайнер может почерпнуть из игр, а точнее видео игр?

Хороший интерфейс игры должен быть удобным для пользования и интуитивно понятным, способным выполнять множество повторяющихся действий с как можно меньшим количеством кликов. Он должен быть привлекательным и цепляющим. Он должен быть приятным взгляду. Хороший интерфейс увеличивает удовольствие от игры: людям нужно получить контент в таком виде, который не разрушает игру воображения. Любой диссонанс с интерфейсом может стать причиной провала игры, которая во всех остальных отношениях прекрасна.

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

Программный RAID-6 под Linux: опыт восстановления массива 16Тб

Время на прочтение5 мин
Количество просмотров14K
Несколько дней назад вышел из строя один из жестких дисков на бюджетном массиве из 16х1ТБ дисков. Уровень массива: RAID 6. Ситуация осложнилась тем, что (как оказалось) ранее также встал кулер на видеокарте этого же сервера, что не было заранее подмечено, и после замены HDD, в результате изменения режима охлаждения корпуса — это стало проявляться в виде зависаний во время синхронизации, что само по себе очень неприятно. Вылилось это в то, что массив перестал автособираться, и были помечены как сбойные еще несколько дисков, и пришлось уже разбираться с ним по-серьёзному, курить вики, мануалы и форумы (форумы — самое полезное, поскольку описывают опыт конкретных людей в конкретных ситуациях).
Читать дальше →

Ликбез по уязвимостям в веб-приложениях, а также самые частые ошибки разработчиков

Время на прочтение7 мин
Количество просмотров40K


Эта статья — продолжение цикла статей по информационной безопасности в веб-приложениях (и не только).

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

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

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

Как обычно — ответственность за все полученные знания только на читателе :)

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

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность