Pull to refresh
0
0
Игорь Романов @rkit

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

Send message

Три новинки в MongoDB 2.8

Reading time3 min
Views23K
На днях я посетил грандиозную тусовку любителей NoSQL — World MongoDB Conference.



Eliot Horowitz, Co-Founder и CTO в MongoDB, рассказал о 3 новшествах, которые будут доступны уже в ближайшем релизе.
Каждое из анонсированных нововведений нацелено на достижение следующих принципов в архитектуре MongoDB:
  • Продуктивность разработчика
  • Горизонтальная масштабируемость
  • Операционная масштабируемость
  • Администрирование одного вебсервера должно быть простым. То же самое касается кластеров

Видео презентации можно посмотреть здесь.
Подробности здесь
Total votes 70: ↑66 and ↓4+62
Comments33

Лучшие свободные моноширинные шрифты с поддержкой кириллицы

Reading time2 min
Views165K


В 2011 году была переведена хорошая статья „Лучшие шрифты для программирования“. Теперь представляется список самых удачных шрифтов для кода на момент июня 2014 года.
Хотя я и уверен, что многих устраивает Courier New, используемый по умолчанию в Windows во многих редакторах. Но, как человек любящий типографику, настаиваю обратить внимание на одну из гарнитур из этой статьи. Хороший шрифт — это прекрасно!
Читать дальше →
Total votes 67: ↑62 and ↓5+57
Comments92

ANGULARJS + REQUIREJS

Reading time5 min
Views55K

Во время разработки проектов мы полюбили AngularJs. Но также мы встретили некоторые трудности в борьбе за чистоту модульности, с которой AngularJs справляется хорошо, но все же порой ему чего-то не хватает. RequireJs оказывается полезным там, где AngularJs оставляет желать лучшего, но использование их вместе — не совсем тривиальная задача.

Итак, опишем наш взгляд на решение проблемы.

Для чего?

Работая с AngularJs вы обязательно задумаетесь о правильной организации кода. Конечно уже существуют отличные примеры решения проблемы. Например можно изучить теоретический пост Брайана Форда или практическое руководство Клиффа Мейерса. Я же поделюсь способом организации кода в приложениях AngularJs с использованием RequireJs.

Данный подход будет полезен, если вы хотите:

  • перестать беспокоиться о подключении скриптов в правильном порядке;
  • загружать javascript код асинхронно;
  • иметь возможность скомпилировать код в один минифицированный JS-файл;
Читать дальше →
Total votes 34: ↑34 and ↓0+34
Comments66

Пример веб-производительности

Reading time21 min
Views48K
В любой сложной системе процесс оптимизации по большей части состоит из распутывания связей между различными слоями системы, каждый из которых обладает собственным набором ограничений. До сих пор мы рассматривали ряд отдельных сетевых компонентов детально — различные физические средства и протоколы передачи данных. Сейчас мы можем обратить наше внимание на более широкую, всеобъемлющую картину оптимизации веб-производительности:

  • влияние задержки и пропускной способности на веб-производительность;
  • ограничения, которые протокол TCP накладывает на HTTP;
  • особенности и недостатки самого протокола HTTP;
  • тенденции развития веб-приложений и требования к производительности;
  • ограничения браузеров и возможность оптимизации.

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


Поэтому, прежде чем мы углубимся в рассмотрение и анализ передового современного опыта, важно сделать шаг назад и определить, в чем проблема на самом деле: что такое современное веб-приложение, какие инструменты у нас есть, как мы измеряем веб-производительность, и какие части системы помогают и мешают нашему прогрессу.
Читать дальше →
Total votes 47: ↑31 and ↓16+15
Comments17

0xDBE. Новая IDE для разработчиков и админов СУБД от JetBrains

Reading time3 min
Views43K
Как могут помнить те из вас, кто читает хаб «Программирование», зимой 2014 JetBrains объявила подписку на private preview C++ IDE. В результате немалое количество подписчиков ей уже пользуются, в начале осени мы планируем выпустить общедоступную early preview, а мы до сих пор олучаем письма от друзей на тему «мы не успели подписаться, как вскочить в этот поезд сейчас?».

А сейчас есть отличная возможность вписаться в похожую историю без опозданий: JetBrains открывает подписку на early preview новой IDE для разработчиков, которые пишут на SQL. И для админов баз данных, — им тоже бывает нужно что-то поудобнее, чем pgAdmin. Для админов новая IDE пригодится там, где им надо поработать с данными в таблицах. Назначать права, делать бэкапы и выполнять прочие чисто админские задачи IDE пока не умеет, хотя мы подумываем ее этому научить.

Короче: тут — подписываться, а под катом — подробности.

Читать дальше →
Total votes 90: ↑88 and ↓2+86
Comments52

То, что вам никто не говорил о z-index в статье «То, что вам никто не говорил о z-index»

Reading time2 min
Views45K
image
Почти два года назад вышла статья «What no one told you about z-index» (и её перевод на Хабре «То, что вам никто не говорил о z-index»), авторы которой рассказывают о малоизвестной (76% проголосовавших пользователей Хабра слышат об этом впервые), но документированной возможности создания нового контекста наложения указав opacity меньше единицы.

Но несмотря на название статьи, авторы не рассказали вам ещё кое о чём.

Предполагается, что вы знакомы с понятием контекста наложения (англ. stacking context).
Элементы с общими родителями, перемещающиеся на передний или задний план вместе известны как контекст наложения. Понимание контекста наложения является ключом к пониманию z-index и порядка наложения элементов.

Каждый контекст наложения имеет свой корневой элемент в HTML структуре. В момент формирования нового контекста на элементе, все дочерние элементы так же попадают в этот контекст и занимают своё место в порядке наложения. Если элемент располагается в самом низу одного контекста наложения, то никаким мыслимым и немыслимым образом не получится отобразить его над другим элементом в соседнем контексте наложения, располагающимся выше по иерархии, даже с установленным z-index равным миллиону.
— Из статьи «То, что вам никто не говорил о z-index». Для понимания темы настоятельно рекомендую к ознакомлению либо её, либо классический труд на MDN.

Новый контекст наложения формируется в случаях:

  • Корневой элемент () всегда содержит корневой контекст наложения. Любой элемент на странице, не участвующий в локальном контексте наложения (сформированном любым из последующих вариантов), участвует в корневом контексте наложения.
    Элемент с position отличным от static и значением z-index отличным от auto. Кроме одного исключения для position: fixed, но я это вынес в отдельный пункт.
    Элемент имеет значение opacity меньше, чем 1.
Нужно больше контекстов наложения!
Total votes 45: ↑42 and ↓3+39
Comments12

MongoDb for developers. Неделя 2

Reading time7 min
Views15K
Доброе время суток, хабр. Этот топик — продолжение цикла статей, основанных на материалах онлайн курса M101 от 10gen. Поскольку вторая неделя является одной из самых насыщенных, она будет разбита на две статьи.
Добро пожаловать под кат
Total votes 28: ↑24 and ↓4+20
Comments3

Git 2.0.0

Reading time1 min
Views57K


Состоялся долгожданный релиз, содержащий достаточно много обновлений, нововведений и багфиксов.

Одним из самых главных изменений является поведение команды git push. Теперь по умолчанию (если не указана ветка) push будет осуществлен только в текущую ветку. Git 1.* по умолчанию делал push во все ветки, которые были изменены локально. Конечно же можно вернуться к прежнему поведению, для этого служит опция push.default.

Поведение Git 1.*:
git config --global push.default matching

Новое поведение по умолчанию в Git 2.0:
git config --global push.default simple

Другие изменения:
Читать дальше →
Total votes 123: ↑116 and ↓7+109
Comments20

Хроники LinguaLeo: как мы сделали «Диалоги на английском» с Node.js и DynamoDB

Reading time5 min
Views37K


Пользователи LinguaLeo начинают изучать английский язык в Джунглях — хранилище тысяч материалов разного уровня сложности, формата и тематик; шаг за шагом учатся слышать и понимать речь носителей языка и расширять словарный запас. Кому нужна грамматика — идут в Курсы. Словарный запас пополняется не только из Джунглей, при добавлении незнакомых слов в Личный словарь, но и с помощью подготовленных Наборов слов, доступных для индивидуального изучения. В разделе Общение можно вести Диалоги на английском, чтобы практиковать язык с другими пользователями LinguaLeo в режиме real-time, выбирая темы для общения. Общение только на английском!

Для создания Диалогов на английском мы использовали Node.js, DynamoDB (все на AWS). Сейчас поделимся нашим опытом.
Читать дальше →
Total votes 107: ↑96 and ↓11+85
Comments81

Вышла версия 1.0 библиотеки Socket.IO

Reading time1 min
Views12K
28 мая библиотека для создания приложений реального времени на Node.js Socket.IO доросла до версии 1.0. Socket.IO возникла практически сразу же после появления Node.js и быстро стала одним из самых популярных и востребованных проектов экосистемы Node. Socket.IO реализует коммуникацию сервера и клиента в реальном времени с помощью Web Sockets, а при отсутствии этого API в старых браузерах эмулирует сокеты с помощью других доступных технологий — сокетов Adobe Flash, запросов AJAX или JSONP.
Читать дальше →
Total votes 39: ↑37 and ↓2+35
Comments5

Рендеринг WEB-страницы: что об этом должен знать front-end разработчик

Reading time6 min
Views232K
Приветствую вас, уважаемые хабравчане! Сегодня я бы хотел осветить вопрос рендеринга в веб-разработке. Конечно, на эту тему уже написано много статей, но, как мне показалась, вся информация довольно разрознена и отрывочна. По крайней мере, чтобы собрать всю картину в своей голове и осмыслить её, мне пришлось проанализировать немало информации (в основном — англоязычной). Именно поэтому я решил формализовать свои знания в статью, и поделиться результатом с сообществом Хабра. Думаю, информация будет полезна как начинающим веб-разработчикам, так и более опытным, чтобы освежить и структурировать свои знания.

Данное направление можно и нужно оптимизировать на этапе вёрстки/frontend-разработки, поскольку, очевидно, что разметка, стили и скрипты принимают в рендеринге непосредственное участие. Для этого соответствующие специалисты должны знать некоторые тонкости.
Читать дальше →
Total votes 121: ↑110 and ↓11+99
Comments42

Дайджест интересных материалов из мира веб-разработки и IT за последнюю неделю №108 (4 — 10 мая 2014)

Reading time5 min
Views39K
Предлагаем вашему вниманию подборку с ссылками на полезные ресурсы, интересные материалы и IT-новости


Читать дальше →
Total votes 57: ↑50 and ↓7+43
Comments8

PHP и различные виды NoSQL

Reading time11 min
Views69K


В последнее время набирают популярность различные NoSQL базы данных. Эта статья начиналась как изучение особенностей графитовой графовой базы данных Neo4j. Но, в процессе подбора информации, мне захотелось систематизировать информацию о NoSQL решениях и о графовых базах данных, в частности.
В ходе этого небольшого исследования, были выбраны для подробного рассмотрения СУБД, успешно применяющиеся в области Web. И, поскольку в тегах присутствует «PHP», я выбирал СУБД, которые уже можно использовать с этим языком.

Читать дальше →
Total votes 120: ↑108 and ↓12+96
Comments34

Типажи и анонимные функции в PHP. Кря-кря!

Reading time5 min
Views28K
В данной статье я не буду рассказывать, что такое Типажи, не буду описывать синтаксис, или разбирать всякие тонкости, связанные с разрешением имен и наследованием Типажей. На эту тему на Хабре уже есть фундаментальная статья.
Я хочу лишь показать один маленький, но гордый пример использования типажей совместно с анонимными функциями. В нем не будет ничего технически сложного: всего один типаж и два класса. Практической ценности в нем тоже не очень много, как и в любом модельном примере. Но идея — каким образом можно структурировать и переиспользовать код — на мой взгляд очень ценна.
Заинтересовавшихся прошу под кат.
Читать дальше →
Total votes 74: ↑63 and ↓11+52
Comments51

Тестирование «быстрой MongoDB» – TokuMX в условиях, близких к реальности

Reading time4 min
Views21K
В последнем выпуске Радио-Т мы упоминали TokuMX — High-Performance MongoDB Distribution. Продукт этот звучит интересно — 9ти кратное сжатие данных в комплекте с 20ти кратным приростом скорости и поддержкой транзакций. При этом переход с mongo на tokumx весьма прост и с точки зрения внешнего наблюдателя — полностью прозрачен. Такое волшебство показалось мне более чем привлекательным и я решил проверить насколько все хорошо на практике.
Читать дальше →
Total votes 73: ↑72 and ↓1+71
Comments16

Пора перестать сохранять

Reading time4 min
Views44K

Немного лирики


Как-то раз, примерно полгода назад, при переезде с одной квартиры на другую в одной из бесконечных коробок обнаружился архив аудиокассет — штук 30. Этот набор долёживал там свой век, хотя последний магнитофон, способный проигрывать кассеты, сломался года за три до этого.
Моя 9-летняя дочь, наткнувшись на эту коробку, взяла одну из этих кассет в руки, повертела и спросила: «Папа, а что это?».
Конечно, если задуматься, в этом нет ничего удивительного. Новое поколение, рожденное после 2000, уже не видело ни кассет, ни дискет.



И что-то мне подсказывает, что поколение, родившееся после 2020, не увидит уже и компакт дисков — все планомерно уходит на всевозможные флешки и карты памяти, а в перспективе и обмен, и хранение (благодаря «облакам»), и ритейл софта/фильмов/музыки (благодаря Стиву Джобсу) уйдут в «онлайн». Я и сам больше уже не записываю полюбившиеся фильмы на болванки.
И что с того?
Total votes 82: ↑63 and ↓19+44
Comments56

Организация js кода для джуниоров

Reading time4 min
Views72K
С недавних пор я стал работать в сфере web разработки, и еще нахожусь в стадии падавана. Однако недавно я открыл для себя способ организации клиентского javascript кода, который может быть легко интегрирован в любой существующий проект и который легко освоить.

Этот подход называют «Модульный javascript», и под катом мы научимся его применять.

image
Читать дальше →
Total votes 72: ↑48 and ↓24+24
Comments41

Тестирование безопасности клиент-серверного API

Reading time6 min
Views41K
2 года назад я выступал на конференции CodeFest с темой «Пентест на стероидах. Автоматизируем процесс» и делал пересказ выступления в качестве статьи. В этом году я с большим удовольствием снова принял участие в конференции и выступил с темой «BlackBox тестирование безопасности клиент-серверного API» и, видимо уже в качестве традиции, также делаю пересказ выступления.



Уязвимости в API встречаются. Правда.

О чем разговор?


Разговор про API, но API бывает разным — API операционной системы, сайта, десктопной программы, да хоть чего. Вкратце — API это обращение к методам чего-либо (например в случае ОС — запись в файл) через определенный метод. И запуск какого-нибудь файла с т.ч. зрения разработки произойдет схожим образом (тоже через API метод ОС), хотя результат выполнения команды совершенно разный. В веб-технологиях многие тоже реализуют API к своим проектам, и если на пальцах: можно отправить сообщение в соц. сети зайдя на сайт, а можно — сформировав специальный HTTP запрос. И при реализации подобного альтернативного использования функционала допускаются (как и везде) ошибки в безопасности. Статья как раз о специфичных ошибках при реализации подобного функционала в веб-проектах.
Читать дальше →
Total votes 68: ↑66 and ↓2+64
Comments16

Information

Rating
Does not participate
Location
Россия
Registered
Activity