Некоторое время назад Facebook стал использовать решение основанное на NFS для хранения фотографий ...
Некоторое время назад Facebook стал использовать решение основанное на NFS для хранения фотографий пользователей. Оно помогает справляться с напором в около 220 миллионов новых файлов занимающих 25TB каждую неделю и в часы пик раздающее более 550 тысяч изображений в секунду [1]. Максимальное количество файлов загружаемых в один альбом было увеличено с 60 до 200 на радость пользователям.
Наличие настроек приватности и то обстоятельство, что свободное место на Picasa благополучно было съедено шедеврами прошлых лет, подтолкнуло меня и некоторых знакомых к попытке использования Facebook в качестве фотохранилища.
Практика, однако, выявила некоторые неудобства сервиса, самым досадным из которых оказалась
невозможность удаления альбома после загрузки в него множества фотографий. Всем, кого затронула эта проблема и кому любопытен очередной пример использования замечательного кроссплатформенного инструмента визуальной автоматизации Sikuli посвящается эта статья.
Читать дальше →
...
Расскажу вам как я использую интерактивную консоль Jython для ускорения разработки Bean'ов в поддерживаемом мной приложении.
Суть вопроса
Каждый кто хоть раз сталкивался с долго разрабатывающимися Java-приложениями, знает, что многие из них очень медленно собираются и стартуют. Не будем обсуждать почему так получается. Это тема отдельной статьи.
По долгу службы пришлось поддерживаю очень древнее приложение с громадной кодовой базой. Хуже всего то, что оно собирается оно от минуты до семи и ещё минуты три стартует. Опять же каждому программисту не сложно представить себе какой ад написать энное количество кода, а затем ловить NullPointerException'ы от внешних сервисов с таким длинным циклом Implement->Compile->Start Deploy->Wait->Smoke->Wait->Test.
Возможен также другой вариант. Есть энное количество кода в классе, который нужно адаптировать под выполнение задачи, близкой уже им выполняемой. А теперь представьте, что этот класс реализован в рамках Java 1.4. Он не работает с Generic'ами, потому что они были добавлены только в Java 1.5. Кроме того программисты, ранее занимавшиеся поддержкой системы, этим активно пользуются и суют в коллекции возвращаемые методами других классов, что не попадя вплоть до анонимных реализаций java.lang.Object.
Поев кактус пару дней я почувствовал, что начинаю сходить с ума от того, что пишу
пять-двадцать строк работающего кода в день.
Читать дальше →