Публікації

Зачем они это делают?

Зображення
В греческом городке Паралия (пригород Катерини) увидел странное. Некоторые автомобили стоят с прикрытыми картоном покрышками. Кто знает, зачем это?

Git - дешево и сердито

Давно планировал перейти на Git, вместо SVN. Основные мотивы такие: Я работаю с ноутбука и часто не в онлайне. Бывает так, что надо откатить сделанные изменения, а доступа к серверу SVN нет. С Git-ом проще - у него вся история изменений есть в локальном хранилище. Да, места занимает больше, но кто эти гигабайты сегодня считает? Visual Studio Express содержит встроенный клиент для Git-а, а для SVN - нет. И в Express версию нельзя поставить плагин. Сначала пытался поставить его под Windows. Не осилил. Пробовал несколько дистрибутивов. У некоторых слишком много внешних зависимостей, у других какая-то мутная система настройки прав доступа... Решил использовать вариант под Linux. Так как годной машинки под рукой не было - решил арендовать. Так как у меня уже есть одна машина с CentOS в DigitalOcean - решил арендовать машинку там же. Думал взять сервер с Ubuntu 14.04 и поднять на нем GitLab . Оказалось - все гораздо проще: у DigitalOcean можно арендовать готовую конфигурацию...

Чтение больших 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 минут назад стояли в дверях и не давал их закрыть (огрызаясь на просьбы закрыть, звучащие из помещения), на...