Как стать автором
Обновить
11
0

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

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

Установка Oracle ApEx

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

Здравствуйте, друзья и коллеги. Однажды в компании возникла необходимость в создании веб-интерфейса для небольшой базы данных. Уже тогда было понимание того, что в будущем понадобится интеграция с LDAP, возможность гибко управлять правами доступа пользователей на просмотр определенных страниц, удобный конструктор для создания страниц, инструменты бизнес-аналитики. Тогда-то я и познакомился с Oracle Application Express (ApEx). Это мощнейшее средство входит в состав таких продуктов, как Oracle Database 11g, 12c, которые, в зависимости от используемой редакции, могут стоить немало. Как это часто бывает, желания превышали возможности...

Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии21

PhpStorm — повышаем производительность (клавиатурные сокращения). Часть 1

Время на прочтение4 мин
Количество просмотров209K
imagePhpStorm — повышаем производительность (плагины и темы оформления). Часть 2

У всех нас есть любимые IDE или редакторы в которых мы пишем код. Для меня это PhpStorm, и потребовалось некоторое время, чтобы освоить все клавиатурные сокращения и ускорить свой рабочий процесс. В этой статье я поделюсь с вами некоторыми сочетания клавиш и советами, которые возьмут на себя часть рутинной работы, если вы тоже делаете свою работу в этой IDE. Эта статья была частично вдохновлена этим Reddit тредом, и я буду упомянать и демонстрировать некоторые трюки найденные там.

Обратите внимание, что я разрабатываю на Linux в Vagrant, размещенном в Windows, я буду использовать клавишу CTRL вместо CMD. Если вы работаете в OS X, замените CTRL на CMD.

Клавиатурные сокращения и хаки


PhpStorm позволяет настроить себя практически до бесконечности — вы можете заточить этот инструмент под себя так, что постороннему может показаться, что это совсем другая IDE.

(осторожно, много gif изображений)
Давайте посмотрим, чем мы можем воспользоваться
Всего голосов 77: ↑68 и ↓9+59
Комментарии58

Проект General Assembly запустил интерактивный курс для желающих овладеть CSS, JavaScript и HTML

Время на прочтение1 мин
Количество просмотров69K
image

Образовательный проект General Assembly представил интерактивный курс Dash, призванный помочь тем, кто хочет изучить CSS, JavaScript и HTML, пишет TechCrunch. Для этого пользователям предлагаются различные задачи, похожие на те, с которыми сталкиваются веб-разработчики в реальной жизни. Так, по мере прохождения курса, вы сначала узнаете, как создать личный сайт, затем макет для блога и сайт небольшой компании и в конечном итоге робота в CSS.
Читать дальше →
Всего голосов 28: ↑28 и ↓0+28
Комментарии19

Getty отдаёт 4600 изображений в общественное достояние

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


Музей J. Paul Getty открыл часть своей коллекции и передал её в общественное достояние. В рамках программы Open Content Program почти 4600 изображений высокого разрешения полностью освобождены от исключительных прав на интеллектуальную собственность. Кто угодно может использовать их без всяких ограничений, например, в качестве иллюстраций в Википедии.
Читать дальше →
Всего голосов 37: ↑32 и ↓5+27
Комментарии29

Настраиваем NGINX для мультиязычных сайтов

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

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

Какой метод определения языка пользователя подходит лучше – вопрос достаточно спорный. Мой личный ранг значимости языковой информации (в порядке убывания): cookie, настройки браузера, регион.

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

Распространенные варианты кодирования языковой информации о ресурсе следующие:
  • каждая языковая версия на отдельном субдомене, например en.example.com, ru.example.com
  • язык ресурса указывается в префиксе URI, например example.com/en/, example.com/ru
  • язык ресурса указывается в GET параметре, например example.com?lang=en, example.com?lang=ru

Первый вариант наиболее радикальный, каждая языковая версия сайта рассматривается как отдельный ресурс. Могут возникнуть сложности с SSL сертификатом, необходимо заранее предусмотреть все возможные варианты в SAN DNS Host Name, или заказать сертификат с маской, например *.example.com.

Второй вариант наиболее практичный, выбор языка входит в URI, значит, не будет проблем с индексацией и копированием ссылки.

Третий вариант выглядит менее привычно, требует дополнительной логики при добавлении остальных GET параметров и может смутить пользователя при копировании ссылки. Не самый лучший вариант для публичных ссылок.
image
Я расскажу о реализации второго варианта на базе сервера NGINX. При минимальных изменениях можно применить описанные настройки и для первого варианта.
Читать дальше →
Всего голосов 55: ↑50 и ↓5+45
Комментарии22

Лёгкий сайт или как посадить браузер на диету

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

А что если объединить профессионалов, работавших над крупными web проектами, чтобы создать исчерпывающее руководство по оптимизации front-end разработки?
И получить в результате не скучную инструкцию, а что то поинтереснее? А если позвать Briza Bueno (Americanas.com), Davidson Fellipe (Globo.com), Giovanni Keppelen (ex-Peixe Urbano), Jaydson Gomes (Terra), Marcel Duran (Twitter), Mike Taylor (Opera), Renato Mangini (Google), и Sérgio Lopes (Caelum) чтобы собрать лучшие практики?

Именно это мы и сделали! Мы научим вас создавать быстрые сайты.

Zeno Rocha, руководитель проекта.


Читать дальше →
Всего голосов 193: ↑179 и ↓14+165
Комментарии80

Бенчмарк HTML парсеров

Время на прочтение10 мин
Количество просмотров82K
Переписывал в островке кусок одного сервиса с Python на Erlang. Сам сервис занимается тем, что скачивает по HTTP значительное количество однотипных HTML страниц и извлекает из них некоторую информацию. Основная CPU нагрузка сервиса приходится на парсинг HTML в DOM дерево.

Сперва захотелось сравнить производительность Erlang парсера mochiweb_html с используемым из Python lxml.etree.HTML(). Провел простейший бенчмарк, нужные выводы сделал, а потом подумал что неплохо было бы добавить в бенчмарк ещё парочку-другую парсеров и платформ, оформить покрасивее, опубликовать код и написать статью.
На данный момент успел написать бенчмарки на Erlang, Python, PyPy, NodeJS и С в следующих комбинациях:
  • Erlang — mochiweb_html
  • CPython — lxml.etree.HTML
  • CPython — BeautifulSoup 3
  • CPython — BeautifulSoup 4
  • CPython — html5lib
  • PyPy — BeautifulSoup 3
  • PyPy — BeautifulSoup 4
  • PyPy — html5lib
  • Node.JS — cheerio
  • Node.JS — htmlparser
  • Node.JS — jsdom
  • C — libxml2 (скорее для справки)

В тесте сравниваются скорость обработки N итераций парсера и пиковое потребление памяти.

Интрига: кто быстрее — Python или PyPy? Как сказывается иммутабельность Erlang на скорости парсинга и потреблении памяти? Насколько быстра V8 NodeJS? И как на всё это смотрит код на чистом C.
Читать дальше →
Всего голосов 72: ↑66 и ↓6+60
Комментарии36

Разработка системы синхронизации в реальном времени с использованием SockJS, Django, Tornado и ZeroMQ

Время на прочтение5 мин
Количество просмотров21K
Не так давно, разрабатывая очередной программный продукт, наша команда разработчиков столкнулись с задачей реализации полноценной системы синхронизации пользовательских данных в реальном времени, путем рассылки (PUSH метод) изменений сервером. В самом приложении объем данных был не велик, но они могли просматриваться несколькими пользователями одновременно. Поэтому нам был необходим легковесный и достаточно производительный подход к синхронизации данных в рамках Веб-приложения. После того как были рассмотрены различные пути к решению этой задачи, мы остановили свой выбор на достаточно популярном эмуляторе WebSocket’ов – SockJS, который использует различные алгоритмы обмена данными между клиентом и сервером, в зависимости от браузера, которым пользуется клиент. В рамках данной статьи я не буду заострять внимание на том, почему был сделан именно такой выбор (по этому поводу написано немало статей, в том числе и на хабрахабре), а просто скажу, что мы ещё ни разу об этом не пожалели.

Изначально при изучении стандартных подходов к реализации подобного рода задач мы столкнулись с одной проблемой. Эта проблема заключалась в том, что взаимодействие с нашей системой производилось не только посредством веб интерфейса, но также посредством использования API сторонними продуктами, которые мы не могли контролировать. И конечный пользователь нашего продукта, безусловно, ожидает увидеть всю информацию об изменениях в данных, которые его касаются. Стандартный подход использования sockjs сервера подразумевает, что уведомления об изменении каких-либо данных в системе будут посылаться с использованием того же самого JS клиента, который используется для получения информации об этих изменениях. Именно поэтому в нашем случае такой подход был бы неприменим.

В этой статье я хотел бы рассказать о том, как мы решили эту задачу.
Читать дальше →
Всего голосов 28: ↑26 и ↓2+24
Комментарии20

Генерация текстовых версий писем из HTML с помощью lynx

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

Введение


Email-рассылки, отправляемые через Печкин, в большинстве своем содержат как html-версию письма, так и plain-text версию. Отправить рассылку без HTML-версии можно, а вот, отправив ее без plain-text, вы рискуете лишиться ряда подписчиков, почтовые клиенты которых без сожаления вырезают html-версии писем в целях безопасности. Особенно этим отличаются корпоративные аккаунты, почтовые администраторы которых заботятся о защите своих подопечных от спама и вирусов.

Ставим задачу


Итак, plain-text версия письма необходима, это факт. Но как же сложно заставить себя написать ее, если вы только что потратили кучу времени на создание html-версии своей рассылки. Очевидно, что Печкин должен снимать эту нагрузку и автоматически генерировать текстовую версию писем для наших клиентов. Но как это сделать?

Мы перепробовали многое:
  • разнообразные регулярные выражения
  • кучу разных библиотек для парсинга html


Все было криво и невпопад, класс для генерации увеличивался на глазах, а косяки шли за косяками. А ведь нам требовалось просто и красивое решение, которое позволяло бы:
  • выделять заголовки и подзаголовки
  • выделять и аккуратно отображать ссылки
  • следить за количеством переносов и аккуратно распологать блоки с текстом для их читаемости
  • делать все это быстро

Как Печкин реализовал быструю конвертацию html в plain text?
Всего голосов 8: ↑7 и ↓1+6
Комментарии4

Кроссбраузерная кастомизация системного скроллбара

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


Проблема размещения непрерывного контента произвольного объёма в экран, или окно, фиксированных размеров, существует несколько десятков лет. Примерно столько же существует и лучшее решение этой проблемы: элемент графического интерфейса — скроллбар.

Под катом можно узнать, как в ближайшее время будет работать скролл в 2ГИС Онлайн.
Подробности
Всего голосов 127: ↑116 и ↓11+105
Комментарии132

Иконкомания или боязнь неиспользования иконок

Время на прочтение5 мин
Количество просмотров60K
«И эти дурацкие иконки! Пиктограмма — это знак, который ни на одном человеческом языке невозможно объяснить. Не зря же появилась речь!»
Джеф Раскин.

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

Читать дальше →
Всего голосов 124: ↑117 и ↓7+110
Комментарии194

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

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

Уже достаточно давно украинская налоговая (а также другие органы) стали принимать документы в электронном виде. Для сдачи таких документов они должны быть подписаны электронной цифровой подписью. Дело двигалось достаточно медленно – подписи стоили денег, учиться их применять всем было лень, хороших программ не было и т.д. За последний год-полтора, всё, как ни удивительно, резко изменилось:

  • Появились нормальные законы и открытые стандарты – программу для формирования документов теперь может написать любой (и их действительно уже написано много)
  • Налоговая стала выдавать подписи бесплатно
  • Опять-таки бесплатно оказывается техподдержка
  • Одна и та же подпись может использоваться во всех гос. органах
  • Налоговая стала намекать, что скоро бумажные документы принимать не будет (это не правда, но людей подстёгивает)

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

Что этот пост делает на Хабре? Многие айтишники зарегистрированы как частные предприниматели и должны примерно 5 раз в год тратить по полдня на сдачу отчетов в налоговую. Теперь это время можно будет свести к 5-10 минутам. Кроме того, мы уделим некоторое внимание вопросам информационной безопасности всего этого механизма.
Читать дальше →
Всего голосов 24: ↑20 и ↓4+16
Комментарии25

Информация

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