Search
Write a publication
Pull to refresh
92
0
Сергей @SkyManPHP

User

Send message

Взаимодействие между приложением и службой

Reading time5 min
Views20K

Введение


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

Пишем драйвер для самодельного USB устройства

Reading time13 min
Views179K
Целью этой статьи является пошаговая демонстрация процесса разработки всего набора программного обеспечения необходимого для организации связи самодельного устройства с компьютером посредством USB.

На данный момент, большинство радиолюбителей реализуют такой тип подключения используя чипы переходники USB в RS232 таким образом организуя связь со своим устройством посредством драйвера виртуального COM порта поставляемого с чипом переходником. Минусы такого подхода думаю понятны. Это как минимум лишний чип на плате и ограничения накладываемые этим чипом и его драйвером.
Мне же хочется осветить весь процесс организации такого взаимодействия так как оно и должно быть сделано, и как делается во всех серьезных устройствах.
В конце концов, сейчас 21-й век, модуль USB есть почти во всех микроконтроллерах. Именно о том, как наиболее быстро воспользоваться этим модулем и будет эта статья.
Читать дальше →

Moodle, как платформа организации eLearning и дистанционного обучения

Reading time8 min
Views72K
Когда заказчик просит развернуть ПО для eLearning или дистанционного обучения, каждый вкладывает в эти слова свой смысл:
  • Репетиторы и преподаватели, привыкшие к классно-урочной системе, чаще всего имеют в виду вебинары — им хочется просто делать то же самое, что они привыкли, только через интернет.
  • Издатели учебников и преподаватели, не планирующие покидать offline, обычно грезят об электронных учебниках для самостоятельного обучения учеников или для демонстрации на очных уроках.
  • Руководители небольших ВУЗов иногда воображают «магический черный ящик», куда можно загрузить учеников первого курса и вспомнить о них на выдаче диплома. Желательно, чтобы в «ящике» уже «лежали» все учебные материалы и алгоритмы по их применению.
  • В более крупных ВУЗах чаще нуждаются в централизованной системе тестирования, сбора и рецензирования письменных работ с автоматической проверкой их на плагиат.
  • Иногда eLearning представляют «серебряной пулей» решающей все проблемы ВУЗа. Стоит внедрить «eLearning» и всё сразу станет как надо: появятся учебные программы и сами-собой сертифицируются по образовательным стандартам третьего поколения, внедрится болонская система и модульное обучение, откуда-ни-возьмись вырастет ветвистое дерево компетенций, на котором зацветут привязанные к ним учебные материалы и творческие задания, преподаватели перестанут брать взятки, помолодеют и осовременятся, ученики перестанут «сдавать» и начнут «изучать». Достаточно выбрать правильный «eLearning» в красивой коробочке, купить и нажать кнопочку «Установить», а лучше попросить студента «за зачет» бесплатно скачать в интернете и поставить на старенькой машине с Windows 98 в лаборатории.
  • К сожалению, довольно распространена категория заказчиков, которым выделили деньги на eLearning и им нужно их потратить как-нибудь. Как ни странно, для IT-шника это одна из самых проблемных категорий, так как они часто исходят не из целесообразности, а из своих представлений о солидности и престижности тех или иных технологий и терминов.
  • Владельцы языковых школ хотят систему биллинга, учета и контроля видеоконференций, интегрированную с системами оплаты. Нечто, похожее на агентства-таксопарки, только с учителями в видеоконференции вместо таксистов.
  • Кадровые службы нуждаются в инструменте хранения истории повышения квалификации и организации дистанционного обучения и аттестации без отрыва от производства.
  • Новое веяние — электронные журналы и дневники, добровольно-принудительно внедряемые во всех школах, в лице нескольких продуктов-фаворитов, продвигаемых коммерческими компаниями или региональными госучреждениями, обычно — центрами при департаментах образовани. Объединены одной общей чертой: организованы на подобии сервисов сдачи налоговой отчетности online — заполняются вручную, без связи с обучением, в параллель к бумажным журналам. То есть бумажный журнал online, иногда erp/crm (распределение ресурсов, коммуникация с «клиентом»), но образовательной функции либо совсем нет, либо она не пригодна к применению.
  • Существуют и гораздо более экзотические варианты, включающие обучение в виртуальных вселенных, работу с виртуальными моделями и лабораториями и др.

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

Записки Астерискера — АТС дома на базе Asterisk

Reading time4 min
Views15K
Делюсь опытом:

Начну с железных характеристик, пожалуй.
• Intel Celeron 350MHz;
• 256MB RAM;
• 10GB;
• 3Com FastEthernet.

Так как я, вдобавок к SIP, хотел обрабатывать входящие звонки с моей обычной телефонной линии (PSTN), появилась нужда в приобретении AIC (Analog Interface Card), которая поддерживается Asterisk'ом. Выбор пал на дешевенькую X100P. Это клон знаменитых и дорогих карт от Digium. Для изучения в самый раз.

Итак, что касается этих карт, стоит обратить внимание на два ключевых акронима: FXO (Foreign Exchange Office) и FXS (Foreign Exchange Station). По идее, моя карта имеет один FXO и один FXS, но работает только FXO. Это значит, что пускать через сервер я могу только входящие звонки.
image
Читать дальше →

Вариация на тему: прогноз погоды по телефону

Reading time9 min
Views6K
Решил поделиться ещё одним способом организации сервиса прогноза погоды по телефону. Здесь, по сравнению с этим постом, больше интеллекта перенесено в Asterisk.
Weather

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

MIT открыл Google App Inventor в бета-версии

Reading time1 min
Views7.1K
Около двух лет назад поисковый гигант запустил инструмент Google App Inventor, позволяющий «людям, не знакомым с программированием», писать программы для Android при помощи системы визуального проектирования интерфейса приложения и логики его работы. Другими словами, интерфейс можно было создать «как в Delphi», а логику работы кода надо было описывать, размещая визуальные блоки приблизительно следующим образом:



Здесь по клику на кнопке экран приложения меняется на синий.

Однако, ввиду отсутствия интереса к Google App Inventor компания закрыла проект немногим спустя более года, выпустила его код под Apache-лицензией и передала в ведение Массачусетского технологического института с целью создания полноценного сервера App Inventor для публичного использования. Эта инициатива теперь входит в рамки Центра мобильного изучения МИТ для цели обучения компьютерной грамотности нетехническими методами.

МИТ не заставил себя долго ждать и вернул проект к жизни, запустив его публичную бета-версию, попробовать которую можно здесь — для доступа к системе требуется учётная запись Google.

Взглянуть на работу Google App Inventor можно на видео:

RealSync — односторонняя синхронизация исходников в реальном времени для веб-разработчиков

Reading time6 min
Views30K
Представляю общественности утилиту RealSync (GPL). Ее призвание — облегчить работу тех, кто периодически мучается от лагов сетевой папки Samba при поиске/редактировании файлов веб-проекта. Идея RealSync в том, что вы теперь работаете с файлами сайта на локальной машине в привычной IDE, а результат, как и прежде, смотрите на удаленном разработческом веб-сервере, куда RealSync копирует изменения в реальном времени. В результате вы можете, например, запустить поиск по всем файлам в IDE — они же локальные, а не подключены через сетевую папку по Samba, так что поиск работает очень быстро; при этом ваш Ctrl+S продолжает попадать на сервер моментально, как и при работе через сетевую папку.

RealSync — утилита для Windows, MacOS и Linux, позволяющая в реальном времени содержать на удаленном сервере точную копию файлов (например, скриптов на PHP, Python, Ruby и др.) из папки на вашем локальном компьютере, даже в условиях плохой связи, когда вы работаете из дома. Все изменения, производимые в локальной папке, попадают на сервер практически моментально (задержка около 0.2 с), независимо от того, сколько этих изменений и каким именно образом они были внесены (хоть через IDE, хоть через Блокнот или Far).

Главное отличие RealSync от аналогов — в том, что он крайне устойчив к нестабильности интернет-соединения, реконнектам и тайм-аутам. При этом используется SSH-соединение, доступ через которое конфигурируется автоматически при первом запуске утилиты (т.е. не нужно возиться с ключами — настройка производится в интерактивном режиме).

Фактически, случайно «убить» RealSync почти невозможно. Вы можете держать его постоянно свернутым в трее и забыть про его существование (CPU он почти не ест). Если утилита видит, что соединение разорвалось на длительный срок, автоматически запускается знакомый многим алгоритм RSYNC для быстрого копирования большого количества различий. В режиме же реального времени применяется собственный протокол поверх SSH, чтобы при нажатии Ctrl+S в редакторе вы сразу же видели изменения на сервере. Передача файла сопровождается приятным «треньканьем» (отключаемым при необходимости в конфиге), а временная потеря связи — покраснением иконки (когда связь восстановится, иконка обратно станет серой, а RealSync «догонит» накопившиеся изменения).

И зачем этот велосипед, когда есть Samba или Денвер или XAMPP?

Читать подробности

Подсветка синтаксиса и другие плюшки для phpmyadmin

Reading time1 min
Views1.2K
Стандартному окну выполнения запросов в phpmyadmin не хватает нескольких фич:
  • подсветки синтаксиса — сразу видно опечатку
  • отправка формы по <ctrl>+<enter>
  • исполнение только выделенного текста, а не всего содержимого окна — жить без этого не могу после того как увидел SQL Developer от Оракла
Можно было бы «вшить» этот функционал в исходники самого phpmyadmin, но не везде есть доступ, да и серверов больше трех. Поэтому, решил оформить в виде плагина для Google Chrome.


Скачать из Chrome Web Store

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

Простая интеграция сайта и 1С

Reading time6 min
Views143K
image
Последнее время натыкался на несколько различных статей об интеграции сайта и 1С. В комментариях часто начинались споры о различных подходах, и я решил поделится способом который однажды довелось реализовать мне. Разумеется, описанный ниже способ не претендует на универсальность и единственность, но, думаю, будет полезен тем, кто только собирается писать свой вариант.
Читать дальше →

Защищаем сайт от атак на примере ХабраХабра

Reading time5 min
Views17K


Рано утром Хабр «выкатил» своё новое обновление, и я с чистой совестью достаю эту статью из черновиков.
Вчера у меня случился epic fail и этот топик частично, включая строчку об апдейте выше, попал в паблик на пару секунд. За эти секунды топик успело плюсануть несколько человек.
Ещё раз, теперь публично, прошу прощения у администрации!
Совет остальным — НИКОГДА не храните в черновиках информацию вроде этой.


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

В настоящей статье я хочу ещё раз поведать разработчикам о том, как ломают сайты, а чтобы вам не было скучно, я попутно буду ломать Хабр и подробно описывать, как я это делал. Мы рассмотрим такие интересные штучки, как «Активная XSS в профиле», «Бесконечное обнуление кармы», «Публикация топиков со значком 'Из песочницы'», «CSRF через Flash и дыру в Internet Explorer 6» и многое другое.

Все уязвимости уже исправлены. Ну или почти все. Поэтому, если вы найдёте очередную дыру, то пишите на support@habrahabr.ru — миф о том, что эту почту никто не читает всего лишь миф.
Читать дальше →

Модуль nginx для борьбы с DDoS

Reading time6 min
Views67K
Многие сталкивались с таким явлением как DDoS атака методом HTTP флуда. Нет, это не очередной туториал по настройке nginx, хочу представить свой модуль, работающий как быстрый фильтр между ботами и бэкэндом во время L7 DDoS атаки и позволяющий отсеивать мусорные запросы.
Читать дальше →

Готовим css-спрайт в Spritepad

Reading time1 min
Views7.2K


Как мы часто составляем спрайты:

1) Выделяем отдельные элементы из PSD для групировки в спрайт.
2) Для точного нахождения координат элементов спрайта рисуем сетку из линеек для верстальщика.
3) И тупенько через alt+tab переписываем координаты в css.

Да, у всех может немного отличаться этот процесс. Можно воспользоваться гугловым сервисом групировки всех картнок в спрайт, но он не так гибок.

Еще один шаг к упрощению процесса верстки спрайтами нам предоставляют энтузиасты из Германии «We are kiss» с проектом Spritepad.

1) Вырезаете все что нужно из PSD-шки в png24 и закидываем по очереди в браузер.
2) Позиционируем, и справа получаем готовую css-ку, классы которой будут генерироваться на основе имен скинутых в браузер файлов.

Подборка CSS3 меню

Reading time1 min
Views15K
Под катом находится сравнительно небольшая подборка СSS3 и СSS3+JQuery меню. Некоторые из них уже могли встретится пользователям на просторах Интернета, некоторые-нет. Весь обзор представлен в виде скриншотов и демо-ссылок, а также ссылок на закачку сырцов, там, где это возможно.
Читать дальше →

Введение в CSS3 Grid Layout. Работаем с сетками

Reading time10 min
Views113K
Update: Часть сведений в данной статье устарели. Рекомендую свежие материалы на css-live.ru.

Введение


intuition game grid

Модуль CSS3 Grid Layout — это один из самых интересных, на мой взгляд, модулей в семействе CSS3. Официальная история модуля в виде черновика спецификации насчитывает сегодня чуть менее года. О предварительном анонсе еще с названием CSS Grid Alignment на TPAC 2010 Владимир Юнев писал еще в декабре 2010. Надо также отметить, что с чуть другим названием и несколько отличным синтаксисом, но с той же сутью, он был заявлен в качестве WD еще в 2007г. Сегодня работы по доводке модуля идут полным ходом, предварительная реализация уже есть в Internet Explorer 10 и есть надежда, что поддержка новых возможностей также появится в будущих версиях других популярных браузеров.

Зачем нужен Grid Layout?


Задача, которую решает модель CSS3 Grid Layout, очень проста и понятна любому веб-верстальщику (да и не только ему): предоставить удобный механизм расположения контента по виртуальной сетке.

В отличие от старых табличных подходов, основанных на использовании table, здесь не замусоривается семантика документа и представление четко отделено от содержания. В отличие от различных вариаций блочной верстки со становящимися при сколь-нибудь сложной структуре безумными и многоэтажными float'ами в сочетании с вручную просчитанными отступами, здесь описание стилей становится тривиально простым и прозрачным. В отличии от абсолютного позиционирования с привязкой к координатам, здесь сохраняется гибкость. В отличие от популярных сегодня css/js-библиотек для разметки по сетке путем указания соответствующих классов (взять хоть те же bootstrap или yui css grids), здесь не замусоривается привязка классов.

Сплошное удовольствие! Осталось только дождаться широкой поддержки :) Впрочем, если вы планируете делать приложения в стиле Metro для Windows 8 на html/js, ключевые возможности, описываемые в модуле CSS3 Grid Layout, уже работают — и можно двигаться вперед, используя удобные и практичные механизмы.
Читать дальше →

PHP warning/notice сообщения в JS консоль + секретная кнопка

Reading time2 min
Views2.4K
Когда требуется делать правку кода на рабочем сайте, возникает потребность в обработке возможных ошибок, и делать это незаметно для пользователя. Для начала, потребуется определить собственную функцию обработки php ошибок.
Читать дальше →

Flipboard-анимация средствами CSS3 и JavaScript

Reading time7 min
Views5.9K
Добрый день. Наверняка многие видели приложение для iOS под названием Flipboard. При всех его достоинствах, лично меня оно в первую очередь порадовало своими забавными анимациями перелистывания. Родилась идея реализовать нечто подобное для своего сайта исключительно на Javascript и CSS3.

В данном случае я использовал CSS3 свойство transform: rotate3d(...), которое требует поддержки аппаратного ускорения графики и адекватно работает только в Chrome 16+, поэтому все нужные свойства я ограничил префиксами -webkit-. В продакшене для пользователей с неподходящим параметрами я заменял анимацию на более простую.

Вот так выглядит готовый результат:



Живое демо

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

Индексация AJAX-сайтов

Reading time4 min
Views23K


Вместе с разработкой Joosy, AJAX внезапно – но ожидаемо, – заполонил все проекты, за которые мы беремся. Парадигма оказалась крайне удачной во всех аспектах, кроме одного. Того самого классического: «AJAX? Индексация? Пфф...». Пока мы делаем интернет-банки, это нас вполне устраивает. Но как не отказывать себе в этом изысканном удовольствии для открытых Web-ресурсов?

А вот как: Google AJAX Crawling – это стандарт Google, который позволяет при формировании AJAX-адресов специальным образом (#!) заставить Google магически запрашивать вместо него другой магический адрес. С которого Google будет ждать HTML-дамп этой страницы, который он весело прожует. Добрые люди уже написали статью про то как это работает. Ну а нам остается научиться эффективно этот дамп формировать. Да так, чтоб без вмешательства в код самого приложения.

Hashbang сделает это весело и непринужденно.

Креативные сайты с нестандартными элементами

Reading time3 min
Views63K
Последнее время все чаще можно встретить сайты с необычным дизайном и функциональностью, увидев которые, можно залипнуть на некоторое время. Увидев такие, у меня рука непроизвольно тянется к f12, чтобы открыть firebug и посмотреть, как же реализован тот или иной компонент. Таким образом можно открыть для себя интересные техники и в будущем реализовать их на своих проектах. Некоторые из них стали доступны с приходом новых технологий, например таких, как CSS 3 — то, что раньше было реализовано на флеше, теперь можно воплотить с помощью строк кода в таблице стилей. Дизайнеры тоже не теряют времени, создавая новые тренды и все плотнее взаимодействуя с верстальщиками. В этой статье я хотел бы показать 15 сайтов, которые так или иначе удивили и порадовали меня. Возможно, кого-то они вдохновят на собственный шедевр



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

Настройка веб-сервиса Cherokee под Ubuntu 11.04 для работы с WordPress

Reading time3 min
Views2.9K
Недавно я захотел попробовать какую-нибудь альтернативу для домашнего веб-сервиса.
Не то чтобы меня чем-то не устраивал «станартный» Apache — просто хотелось расширить кругозор ну и, возможно, найти альтернативу получше.
Кандидат должен был отвечать нехитрым требованиям — малое потребление ресурсов и высокая скорость работы.
Так как Nginx, lighthttpd и LiteSpeed я уже в своё время трогал, и примерно знал, чего от них можно ожидать — выбор пал на испанскую разработку Cherokee.

Изначально статья планировалась как сравнение двух «индейцев» — но в процессе установки и настройки Cherokee я столкнулся с парой подводных камней. Так что эта статья — так сказать вводная.
Сравнение производительности тоже будет — но чуть позже.
Далее

Information

Rating
Does not participate
Location
Украина
Registered
Activity