Публікації

Чтение больших JSON-файлов

Все мы привыкли читать JSON как-то так (с использованием Json.NET ): Product deserializedProduct = JsonConvert.DeserializeObject (json); И это отлично работает, пока размер сообщения, которое мы читаем сравнительно небольшой. Вчера мне понадобилось прочить JSON размером 1.7 Гб. Все попытки десериализации сохраненного в файле массива ожидаемо закончились OutOfMemoryException . Без лишних разговоров, публикую рецепт: В каждой итерации цикла в переменной obj мы будем получать следующий элемент массива. Память такой подход не использует вообще :)

Сервис "Формы и бланки" достиг показателя "50000 документов в месяц"

В январе сервис Формы и бланки впервые достиг столь внушительных показателей: 56 тысяч уникальных пользователей в месяц. 55 тысяч сгенерированных документов (почти совпадает с количеством уникальных пользователей) 190 тысяч просмотров страниц.

Twitter Bootstrap

Как-то раньше я незаслуженно обходил стороной прекрасную библиотеку Bootstrap от Twitter: Продуманный набор стилей; Подобранные шрифты, цвета, иконки; Набор достаточно удачных jquery-плагинов (модальные попапы, карусель, табы, меню т т.д.) Поддержка тем; Упрощение многих рутинных задач; Еще много чего... Короче, в проекте где  надо построить достаточно симпатичный сайт, но нет дизайнера - самое то! Для всяких админок и прочих непубличных частей сайта - очень удобная штука.

OAuth-аутентификация через ВКонтакте

В одном из проектов появилась задача обеспечить вход пользователей на сайт через социальные сети. Начало было положено с помощью модуля DotNetOpenAuth extensions for ASP.NET (WebPages). В результате появилась возможность использовать такие сети: Facebook Google+ Live.com LinkedId Twitter На борту имелся клиент еще и для Yahoo, но в связи с его малой популярностью в Рунете решили его не подключать. А вот для популярных в Рунете сетей ВКонтакте и Одноклассники встроенной поддержки нет. Решил сделать это самостоятельно, тем более что, на первый взгляд, задача казалась не сложной.

Но есть нюанс

На днях ездил в районную администрацию зарегистрировать изменение видов деятельности. Рядовая операция в любой развитой стране, но у нас занимает почти целый день. Чтобы гарантированно пройти до обеда, надо прийти в 6:00 утра и записаться в список. Потом прийти в 9:00 и взять в терминале талончик, в котором будет указано какой Вы в очереди к регистратору (список - это, фактически, очередь к терминалу). Но речь не об этом... В 9:00 открылись двери и около 200 человек выстроились в очереди к терминалу. Терминал находится внутри помещения, где помещается только 25-30 человек. Остальные ждут на улице, где температура около -15С и дует противный ветер. Когда стоишь на улице, но недалеко от дверей - из открытых дверей идет теплый воздух и переносить холод немного проще. Но одновременно тянет холодным воздухом по ногам тех, кто уже в помещении. Интересно наблюдать, как те, кто еще 10 минут назад стояли в дверях и не давал их закрыть (огрызаясь на просьбы закрыть, звучащие из помещения), на...

Type is not resolved for member 'System.Data.Entity.Migrations.Design.ToolingFacade+GetPendingMigrationsRunner, EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.

Столкнулся с тем, что не могу добавить новую миграция в существующий проект. Получаю ошибку: Type is not resolved for member 'System.Data.Entity.Migrations.Design.ToolingFacade+GetPendingMigrationsRunner,EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. Оказалось причина в том, что основная сборка проекта была собрана для .NET Framework 4.5, тогда как сборка с миграциями - под 4.0. Это приводит к использованию разных версий EntityFramework: в .NET 4.5 используется версия EF 5.0,  а в 4.0? по-прежнему, загружается 4.4. Если посмотреть на содержимое пакета EntityFramework, установленного NuGet, то все становится понятно. В папке lib есть 2 папки: net40 и net45 с разными версиями EF. После изменения настроек проектов (везде .NET 4.5), новая миграция добавлена без проблем.

Покращення

Зателефонували з валютного відділу банку з хорошими новинами - прийшов платіж від американського партнера. Але є нюанси: 50% валюти одразу продають і зараховують на гривневий рахунок Відтепер від дати акта до дати оплати повинно проходити не більше 90 діб (раніше було 180). Отаке.