В работе почти каждого человека непременно есть цифры, от которых зависит всё. Посещаемость сайта, время отклика или количество коммитов — что угодно! И если поместить эти цифры на самое видное место, они сразу становятся либо отличным способом оперативно принимать решения, либо просто наглядным инструментом мотивации. А самый лучший способ сделать это — это собственный дешборд, информационное табло, которое можно повесить на самом видном месте в офисе.
Дмитрий Масленников @DAiMor
InterSystems Senior Developer
Ненормальное программирование в InterSystems Caché
13 мин
6.2KВозможно не все, кто знаком с InterSystems Caché, знают о расширениях Студии по работе с исходным кодом. На самом деле в ней можно создать свой тип исходного кода, компилировать его в интерпретируемый (INT) и объектный код, и даже в некоторых случаях обеспечить и code completion. Т.е. теоретически можно реализовать поддержку в Студии любого языка программирования, который будет исполняться СУБД не хуже Caché ObjectScript. В этой статье я опишу простой пример, как реализовать возможность писать программы на некотором подобии JavaScript в Caché Студии. Если интересно, добро пожаловать под кат.
+3
Интересные приемы программирования на Bash
6 мин
130KТуториал
Эти приемы были описаны во внутреннем проекте компании Google «Testing on the Toilet» (Тестируем в туалете — распространение листовок в туалетах, что бы напоминать разработчикам о тестах).
В данной статье они были пересмотрены и дополнены.
В данной статье они были пересмотрены и дополнены.
+169
Разработка в InterSystems Caché под Linux
6 мин
5.1KВ продолжение статьи про установку Caché на Linux опишу, какие IDE есть в арсенале разработчика на технологиях InterSystems, выбравшего Linux в качестве домашней системы. На текущий момент большого разнообразия возможностей не наблюдается, возможно потому, что официальная среда разработки Caché Studio поставляется только для семейства операционных систем Windows. Но варианты все же есть. Под катом о том, что уже доступно сейчас, и о том, чего возможно стоит ждать в будущем.
+6
Установка InterSystems Caché и GlobalsDB на Linux
9 мин
7.6KТуториал
Так как у тех, кто впервые устанавливает продукты InterSystems на Linux, часто возникают проблемы в процессе установки, я решил описать этот процесс. На данный момент из бесплатных версий Linux начиная с версии 2014.1 поддерживается CentOS 6.4, поэтому процесс установки буду описывать именно на этой ОС но установка, например, на Ubuntu ничем не отличается (хотя она и не является сейчас официально поддерживаемой InterSystems).
Для установки InterSystems Caché, нам понадобится дистрибутив, если у вас его нет, то вы можете его скачать здесь. Однопользовательская версия, для RedHat, установщик в формате tar.gz. Для установки на Ubuntu нужно брать версию для SuSE Linux. На момент написания статьи доступна версия 2014.1.
Для установки InterSystems GlobalsDB здесь качаем версию Для RedHat, на выбор предлагается Node.js или Java, но это не важно — на скачиваемый файл это не влияет.
Что потребуется
Для установки InterSystems Caché, нам понадобится дистрибутив, если у вас его нет, то вы можете его скачать здесь. Однопользовательская версия, для RedHat, установщик в формате tar.gz. Для установки на Ubuntu нужно брать версию для SuSE Linux. На момент написания статьи доступна версия 2014.1.
Для установки InterSystems GlobalsDB здесь качаем версию Для RedHat, на выбор предлагается Node.js или Java, но это не важно — на скачиваемый файл это не влияет.
+5
Овсянка, сэр! Собираем проект на InterSystems Caché с помощью Jenkins
3 мин
4.5KТуториал
С одной стороны M-программисты настолько суровы, что любой прикладной софт пишут сами. И задача сборки проекта не должна вызвать особых затруднений. Действительно, что сложного в том, чтобы: сделать запрос к серверу контроля версий, разобрать ответ и вытащить номер ревизии, сравнить с номером ревизии загруженного кода, вызвать исполняемый файл и скачать исходники, загрузить их в базу, скомпилировать, сохранить результаты, сформировать отчет, прикрутить к этому всему web-интерфейс, добавить возможность изменения настроек, расписания, и так далее. С другой стороны – сколько времени вы на это собираетесь потратить?
+6
HTML по стандартам
10 мин
124KПривет Хабр!
Изначально хотел назвать статью «HTML по ГОСТ`у», но потом выяснилось что у большинства программистов не было предмета «Метрология и стандартизация» и о «стандартизации», «сертификации», «унификации» не все слышали.
В i-Free я много занимаюсь разработкой веб-приложений. А поскольку их много, они разные и работают в разных условиях, то само собой приходится задумываться о стандартизации. Есть такой проект «Пуленепробиваемый HTML5» (http://html5boilerplate.com/), в котором разработчики решили создать идеальный шаблон странички. Он мне очень нравился, и все свои проекты я начинал именно с него. Но, исправляя баг за багом, делая все новые и новые приложения, я пришел к выводу, что многого в нем не хватает. В этой статье я хотел бы рассказать о том, что обычно пропускают при написание страничек и веб-приложений и показать, чем и зачем я прокачал свой шаблон пустой странички.
Изначально хотел назвать статью «HTML по ГОСТ`у», но потом выяснилось что у большинства программистов не было предмета «Метрология и стандартизация» и о «стандартизации», «сертификации», «унификации» не все слышали.
В i-Free я много занимаюсь разработкой веб-приложений. А поскольку их много, они разные и работают в разных условиях, то само собой приходится задумываться о стандартизации. Есть такой проект «Пуленепробиваемый HTML5» (http://html5boilerplate.com/), в котором разработчики решили создать идеальный шаблон странички. Он мне очень нравился, и все свои проекты я начинал именно с него. Но, исправляя баг за багом, делая все новые и новые приложения, я пришел к выводу, что многого в нем не хватает. В этой статье я хотел бы рассказать о том, что обычно пропускают при написание страничек и веб-приложений и показать, чем и зачем я прокачал свой шаблон пустой странички.
+144
Как считают звёзды? Использование InterSystems Caché eXtreme в Gaia
7 мин
8.6KХочется поблагодарить 0leo, morisson и adaptun за помощь в подготовке статьи.
Как вы знаете, завтра, 19 декабря 2013 года, будет запущен телескоп Gaia. Многие уже читали статью о миссии, однако мало кто знает, какую технологию разработчики Европейского Космического Агентства выбрали для обработки и хранения данных Gaia. В 2011 году в качестве кандидатов рассматривались IBM DB2, PostgreSQL, Hadoop, Cassandra и Caché (точнее – технология Caché eXtreme Event Persistence; см., напр., "Astrostatistics and Data Mining" п/ред. Луиса Мануэля Сарро (Luis Manuel Sarro), Лорана Эйе (Laurent Eyer) и Уильяма О'Маллейна (William O'Mullane), c. 111-112).
Инструменты звездочётов
Как вы знаете, завтра, 19 декабря 2013 года, будет запущен телескоп Gaia. Многие уже читали статью о миссии, однако мало кто знает, какую технологию разработчики Европейского Космического Агентства выбрали для обработки и хранения данных Gaia. В 2011 году в качестве кандидатов рассматривались IBM DB2, PostgreSQL, Hadoop, Cassandra и Caché (точнее – технология Caché eXtreme Event Persistence; см., напр., "Astrostatistics and Data Mining" п/ред. Луиса Мануэля Сарро (Luis Manuel Sarro), Лорана Эйе (Laurent Eyer) и Уильяма О'Маллейна (William O'Mullane), c. 111-112).
-2
Построение RESTful web API в Caché
9 мин
14KТуториал
В InterSystems Caché появилась поддержка REST. О том, что такое REST на Хабре уже писали и не раз. Если кратко — это паттерн построения RESTful web API, и ему присущи следующие свойства:
- разделение клиента и сервера,
- независимость от состояния (stateless),
- кэшируемая и многоуровневая архитектура,
- единый интерфейс,
- все запросы к RESTful web API состоят из корневого URL приложения плюс частные подзапросы,
- CRUD через HTTP — HTTP методы GET, PUT, POST, DELETE (RESTful web API).
+10
Wireshark — приручение акулы
10 мин
1.1MТуториал
Wireshark — это достаточно известный инструмент для захвата и анализа сетевого трафика, фактически стандарт как для образования, так и для траблшутинга.
Wireshark работает с подавляющим большинством известных протоколов, имеет понятный и логичный графический интерфейс на основе GTK+ и мощнейшую систему фильтров.
Кроссплатформенный, работает в таких ОС как Linux, Solaris, FreeBSD, NetBSD, OpenBSD, Mac OS X, и, естественно, Windows. Распространяется под лицензией GNU GPL v2. Доступен бесплатно на сайте wireshark.org.
Установка в системе Windows тривиальна — next, next, next.
Самая свежая на момент написания статьи версия – 1.10.3, она и будет участвовать в обзоре.
Зачем вообще нужны анализаторы пакетов?
Для того чтобы проводить исследования сетевых приложений и протоколов, а также, чтобы находить проблемы в работе сети, и, что важно, выяснять причины этих проблем.
Вполне очевидно, что для того чтобы максимально эффективно использовать снифферы или анализаторы трафика, необходимы хотя бы общие знания и понимания работы сетей и сетевых протоколов.
Так же напомню, что во многих странах использование сниффера без явного на то разрешения приравнивается к преступлению.
Начинаем плаванье
Для начала захвата достаточно выбрать свой сетевой интерфейс и нажать Start.
+197
Несколько интересностей и полезностей для веб-разработчика (выпуск 9)
3 мин
38KДоброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.
«Нашумевший» проект в Twitter и GitHub. По заявлению разработчиков «Docpad снимает ограничения и убирает разрыв между профессионалами и новичками. Теперь дизайнеры и разработчики могут создавать веб-сайты быстрее, чем когда-либо прежде». Docpad — это статический генератор сайтов написанный на Node.js. Он позволяет с легкостью создавать шаблоны и блоки. Работает c PHP, Ruby, CoffeeScript и др. В нем есть file wathing, live reload и самое главное «amazing plugin system». Большим плюсом является обучающее видео (хоть и на английском).
Docpad
«Нашумевший» проект в Twitter и GitHub. По заявлению разработчиков «Docpad снимает ограничения и убирает разрыв между профессионалами и новичками. Теперь дизайнеры и разработчики могут создавать веб-сайты быстрее, чем когда-либо прежде». Docpad — это статический генератор сайтов написанный на Node.js. Он позволяет с легкостью создавать шаблоны и блоки. Работает c PHP, Ruby, CoffeeScript и др. В нем есть file wathing, live reload и самое главное «amazing plugin system». Большим плюсом является обучающее видео (хоть и на английском).
Видео: Rapid Web Development with DocPad
+42
Еще один способ расширения функциональности студии Caché
37 мин
1.9KПриходилось встречаться с мнением, что студия Caché не вполне совершенна, в частности тем, что ее невозможно расширить. Тем не менее, это не совсем так. Существует штатный механизм шаблонов и расширений, позволяющий достраивать студию интерактивными дополнениями.
В этой статье мы коснемся еще одного способа расширения, который может помочь более эффективно управлять создаваемым кодом. В этом поможет класс интеграции студии с системой контроля версий.
Что можно сделать с помощью класса контроля версий? Во-первых, отслеживать некоторые события, происходящие в студии, такие как подключение, создание, удаление, открытие документов, а во-вторых, возможность добавлять пункты в меню, в том числе в контекстное. Через эти пункты меню можно не только выполнять код на сервере, но и создавать некоторые простые диалоги.
В этой статье мы коснемся еще одного способа расширения, который может помочь более эффективно управлять создаваемым кодом. В этом поможет класс интеграции студии с системой контроля версий.
Что можно сделать с помощью класса контроля версий? Во-первых, отслеживать некоторые события, происходящие в студии, такие как подключение, создание, удаление, открытие документов, а во-вторых, возможность добавлять пункты в меню, в том числе в контекстное. Через эти пункты меню можно не только выполнять код на сервере, но и создавать некоторые простые диалоги.
+5
DSL на JavaScript для C++ или кодгенератор — это просто!
8 мин
8.2KС добрым понедельником, хабровчане!
Ковырялся давеча с одним универсальным, и потому до неприличного мощным, интерфейсом доступа к данным на Python-е. Неприличная мощь выражается в виде множества параметров на все случаи жизни, зачастую крайне экстравагантные и нужные только в 5% случаев. В итоге приходится дублировать всю пачку параметров и деталей даже в прямолинейных запросах, что вызывает пессимизм и желание заняться чем-то другим. И тут вспомнилась мне аналогичная история из моего далекого прошлого, которой и делюсь.
Ковырялся давеча с одним универсальным, и потому до неприличного мощным, интерфейсом доступа к данным на Python-е. Неприличная мощь выражается в виде множества параметров на все случаи жизни, зачастую крайне экстравагантные и нужные только в 5% случаев. В итоге приходится дублировать всю пачку параметров и деталей даже в прямолинейных запросах, что вызывает пессимизм и желание заняться чем-то другим. И тут вспомнилась мне аналогичная история из моего далекого прошлого, которой и делюсь.
+12
Делаем свой персональный Skype, пошаговая инструкция создания WebRTC приложения
4 мин
139KWebRTC позволяет реализовать real-time аудио/видео связь через браузер ( и ).
В этом топике я расскажу как реализовать простейшее WebRTC приложение.
+94
Готовим web-приложение под зоопарк версий Android
9 мин
27KСовсем недавно и достаточно неожиданно для самого себя я оказался ответственным за разработку программки для Android. Но ни под Android, ни вообще на Java мне ранее писать не приходилось. Нужно было сделать web-приложение, вроде phonegap и прочих, которое почти полностью работает в компоненте браузера. И все это под версии 2.2 — 4.3 (SDK 8 — 18).
О некоторых выкрутасах Android и костылях под них с точки зрения человека, впервые это все увидевшего, я и хотел бы рассказать. Надеюсь, вышло без HelloWorld, «OMG! Java», и т.п.
Поворот экрана/смена ориентации
Network unreachable
Грузим локальные ресурсы
Мост между Java и JavaScript
О некоторых выкрутасах Android и костылях под них с точки зрения человека, впервые это все увидевшего, я и хотел бы рассказать. Надеюсь, вышло без HelloWorld, «OMG! Java», и т.п.
Поворот экрана/смена ориентации
Network unreachable
Грузим локальные ресурсы
Мост между Java и JavaScript
+19
Zen Reports и %XML.Writer для генерации отчётов Excel в Caché
25 мин
6.3KКак известно MS Excel последних версий поддерживает описание структуры документа в формате xml. Это обстоятельство позволяет создавать отчеты в Excel с помощью генерации xml-файлов. В СУБД Caché существует несколько способов создания xml. В этой статье будут рассмотрены два, возможно наиболее удобных, способа эффективной программной генерации отчетов в MS Excel: с помощью Zen Reports и с использованием класса %XML.Writer.
+1
Делимся опытом по интеграции SSO средствами SAML 2.0
34 мин
49K1. Предыстория
Не смотря на то, что функция централизованного входа (Single Sign On, SSO) существует, обсуждается и применяется уже давно, на практике ее внедрение зачастую сопровождается преодолением самых различных проблем. Целью данной статьи будет показать, как реализовать простейший собственный Service Provider 1 (SP) для SAML 2.0 identity provider (idP) и с его помощью осуществить интеграции SSO в Java Web приложение.
Одним из наших последних проектов была подготовка и кластеризация портального решения для крупного университета. В рамках проекта мы столкнулись с задачей реализации (а также кластеризации) функции единой аутентификации для следующих систем:
- Liferay version 6.1.20-ee-ga2.
- Простое java web-приложение.
- Google apps.
Со стороны заказчика были выдвинуты основные требования построения SSO:
- Для построения SSO должен использоваться протокол SAML 2.0.
- Требуется интеграция с Jasig CAS для поддержания работы уже существующих систем.
- LDAP используется для проверки аутентификации пользователей.
В качестве idP решили использовать Shibboleth (http://shibboleth.net/about/index.html) как open source-систему, реализующую в полном объеме протоколы SAML 1.0 && SAML 2.0.
Сложные моменты, с которыми мы столкнулись при решении данной задачи:
- Отсутствие экспертизы по работе с протоколом SAML 2.0 и продуктом Shibboleth.
- Сырая и еще не достаточно хорошо структурированная документация по Shibboleth от производителя.
- Отсутствие качественных примеров по реализации Service Provider’а для интеграции SSO в свое Java Web-приложение.
Преодоление этих барьеров и стало мотивацией для публикации данной статьи. Мы хотим поделиться приобретенными знаниями, помочь разработчикам решать подобные задачи, а также облегчить знакомство с протоколом SAML 2.0.
2. Для кого предназначена статья?
Данная статья ориентирована на следующую аудиторию:
- Разработчики, интегрирующие функцию SSO в своих проектах средствами SAML 2.0.
- Java-Разработчики, которым нужен практический пример интеграции в свое приложение функции SSO средствами SAML 2.0.
- Java-Разработчики, которые хотят опробовать в качестве SSO Identity Provider’а (idP) компонент Shibboleth.
Для понимания статьи рекомендуется иметь минимальные знания по протоколу SAML 2.0.
+6
Сниппеты для Chrome DevTools
5 мин
32KВозможности встроенного в браузер инструмента Chrome Developer Tools можно расширить с помощью сниппетов. Это ускоряет разработку и упрощает рабочий процесс. Хорошая коллекция сниппетов есть на GitHub'е.
Подробно о функциях сниппетов можно почитать в официальной документации Chrome. А вот краткая инструкция:
Сниппеты в Google Chrome
Подробно о функциях сниппетов можно почитать в официальной документации Chrome. А вот краткая инструкция:
- Зайти в «chrome://flags» — Отметить «Enable Developer Tools experiments».
- Открыть DevTools: «Settings» — «Developer Tools Experiments» — Отметить «Snippets support».
- После перезагрузки во вкладке DevTools «Sources» появится «Snippets», где можно управлять сниппетами:
+47
HTML 5 Notifications API
3 мин
117KПривет, Хабр. В этой статье я расскажу о HTML Notification API.
Какие возможности предоставляет Notification API
API позволяем отправлять уведомления через браузер. Вы можете задавать иконку для каждого уведомления, группировать уведомления, указывать заголовок и текст уведомления.
Поддержка в браузерах
- Safari 6
- Chrome 27
- Firefox 22
Opera 15 beta не работает с Notifications API, несмотря на наличие конструктора Notification.
На мобильных платформах технология не работает.
В движке webkit есть старая нотация в виде webkitNotifications.
Как это работает
Цикл работы следующий:
- Получить разрешение на отправку;
- Правило фиксируется для сайта;
- Отправить уведомление.
+79
DoS эксплоит для движка WebKit
1 мин
145KОпределенная последовательность арабских символов позволяет вызвать критическую ошибку, приводящую к аварийному завершению любого приложения использующего движок WebKit в iOS и Mac OS.
Уязвимость воспроизводится на Mac OS 10.8 (Mountain Lion) и iOS 6. Версии iOS <6 и 7 beta, Mac OS <10.8 и 10.9 beta не подвержены проблеме.
Ссылка на эксплоит: https://zhovner.com/tmp/killwebkit.html
Уязвимость можно воспроизвести:
Уязвимость воспроизводится на Mac OS 10.8 (Mountain Lion) и iOS 6. Версии iOS <6 и 7 beta, Mac OS <10.8 и 10.9 beta не подвержены проблеме.
Ссылка на эксплоит: https://zhovner.com/tmp/killwebkit.html
Уязвимость можно воспроизвести:
- Отправив sms на iPhone — при этом происходит респринг и больше нельзя зайти в приложение «Сообщения». Исправить можно так habrahabr.ru/post/191654/#comment_6658802
- Отправив сообщение через iMessage на iOS или десктопный Messages в Mac OS — приложение завершится и более в него нельзя будет зайти.
- Открыв страницу содержащую строку — мобильный Safari в iOS просто закроется. При этом, если не удалить историю посещений, зайти повторно в него не получится. Десктопный Safari ведет себя так же. Десктопный Chrome завершит процесс вкладки показав сообщение об ошибке, сам браузер продолжит работать. Новая Opera и Яндекс.Браузер ведут себя аналогично Хрому.
- Поместив строку в название WiFi-сети (ESSID) — во время сканирования сетей это должно вызвать ошибку. Метод описан на news.ycombinator.com и мною не проверялся: news.ycombinator.com/item?id=6293824
+106
Информация
- В рейтинге
- Не участвует
- Откуда
- Москва, Москва и Московская обл., Россия
- Дата рождения
- Зарегистрирован
- Активность