Pull to refresh
21
0
Александр @Pyjamec

User

Send message

Huti — Сервис вопросов и ответов

Reading time3 min
Views1.1K
Существует много споров на тему copycаt’ов (повтрение оригинальной идеи, без внесения изменений). Стоит ли повторять западные аналоги, если да, то стоит ли это вуалировать и хотя бы видоизменять интерфейс. Пока нет единого мнения на этот счет. Мы же решили повторить один из западных стартапов.

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

Логирование в Android приложениях

Reading time3 min
Views60K
Уверен, что всем разработчикам приложений на платформе Android знаком класс Log, позволяющий логировать различные события. По различным причинам, формат записи логов для каждого проекта может отличаться достаточно сильно — начиная от «AAA», «111111» и «I was here» до более-менее внятных — «Opening HTTP connection to habrahabr.ru». Под катом вы найдете пример функции, которая поможет навести порядок в логах.
Данный топик не претендует на оригинальность и универсальность. И поэтому, если в вашем проекте уже существует некий стандарт логирования событий, то смело проходите мимо — топик скорее ориентирован на начинающих разработчиков.
Читать дальше →

PyUNO — быстрое незначительное редактирование xls-отчета из Python

Reading time3 min
Views14K

Просто и быстро


Не так давно я столкнулся с необходимостью запротоколировать список изменений в нашем ПО. Заказчик прислал мне формуляр, который я должен был заполнить в соответствии с их внутренними требованиями к документации. Я открыл прилагавшийся к письму файл «Изменения 1.xls» и немного приуныл. Точнее, мне в голову последовательно пришли мысли об увольнении, а затем — о самоубийстве. Формуляр состоял из 14 колонок. Быстро перемножив в уме количество колонок с числом внесенных нами атомарных изменений (около пятисот), я пошел курить.
Сделать такую работу руками мне не под силу. Большинство данных (номера новых версий, описания изменений и т. п.) у меня, конечно, имелись в наличии, но в разных местах и самых причудливых форматах. Но семьсот копипастов — увольте. Поэтому мне пришлось немного освоить PyUNO. На всякий случай — опишу вкратце процесс управления документом OOo из питоновского биндинга, вдруг кому пригодится.
Поехали!

Unladen Swallow — всё…

Reading time5 min
Views3.9K
От переводчика: пару часов назад Гвидо в своём твиттере упомянул блог-пост своего коллеги, одного из (бывших) разработчиков Unladen Swallow, в котором тот рассказывает грустную историю яркой, но короткой жизни Unladen Swallow в Google.

Оригинал: Reid Kleckner — Unladen Swallow Retrospective


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

Как построить Open Source сообщество

Reading time7 min
Views4.4K
Сообщество жизненно важно любому проекту Open Source. Активное и живое сообщество явлется сердцем проекта. Однако, писать код под свободной лицензией не достаточно для привлечения пользователей и разработчиков к построению сообщества. В этой статье рассматривается то, что позволяет выстроить успешное сообщество OpenSource.
Читать дальше →

Отслеживание утечек памяти в Android приложениях

Reading time3 min
Views8.4K
На самом деле, данная статья является продолжением данного топика: Анализ памяти для Android приложений. Всем, кто хочет изучить вопрос детально, будут рады под катом.
Читать дальше →

Рабочий процесс как важная часть договорённостей с клиентом

Reading time5 min
Views6K
Написать эту статью нас побудила отличная статья Данила Снитко «Как хороший договор спасает нервы и монетку».

К этой статье мы бы хотели добавить, что ооочень полезно дополнять договор так называемыми Правилами работы над проектом.

Основная цель правил: избежать проблем в процессе работы над сайтом, сделать её максимально эффективной. Вторичная, но также очень важная, цель: повысить удовлетворенность клиента от работы. Если клиент информирован — он готов к нашим требованиям, и их предъявление не будет для него «шоком».

Правила решают следующие задачи:
  1. Информировать клиента о процессе работы: как будет проходить работа, что от него потребуется в процессе и когда. В результате мы получим более образованного клиента и необходимые для работы материалы вовремя.
  2. Информировать клиента об ограничениях, которые мы на него накладываем в процессе работы, чтобы они не были для него сюрпризом. В результате мы получим более спокойного и удовлетворённого клиента.
  3. Юридически зафиксировать договорённости, чтобы потом на них можно было сослаться. Если клиент пытается сказать, что дизайн-концепция — это свёрстанный HTML-прототип, нам есть, на что сослаться.
Правила исключительно полезны, потому что они организуют процесс с самого начала, что позволяет избежать потерь времени и ресурсов.

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

Анализ памяти для Android приложений

Reading time5 min
Views42K
В Dalvik есть сборщик мусора, но это не значит, что можно игнорировать управление памятью. Даже наоборот — нужно быть особенно внимательным при использовании памяти, которая, как известно, на мобильных устройствах ограничена. В этой статье будут рассмотрены инструменты, которые значительно помогают следить за тем, как приложение использует память.
Читать дальше →

Hetzner dedicated или в поисках дешевого хостинга

Reading time7 min
Views21K
Хочу рассказать о том, как я озадачился поиском недорогого хостинга с поддержкой Java.
В начале решил, что неплохо бы купить железку, поставить ее дома, дать ей хороший канал и радоваться жизни. Но потом решил подсчитать примерную ежемесячную стоимость такого решения, и вышло, что 200Вт блок будет кушать ~3-4кВт в месяц (100-150Вт будет кушать железо), и это обойдется в 350-400 руб (у меня газовая плита).
Прибавим сюда хороший канал+ип, и имеем порядка 750 рублей (и это без резервного!).
Итого около 1000 рублей в месяц и еще порядка 8000 рублей уйдет разово на покупку компонентов, которые могут сойти за «файлопомойку» + UPS (>=2000 р) и мы видим что самостоятельно хостить «пару сайтов и почту» становится напряжных делом.
Кто-то предложит окупить это размещением проектов — но кто согласится платить на хостинг, которые висит дай-то бог на 30 мегабитах, при этом имеет шансы быть в offline из-за того, что кто-то перерезал провод в щитке, или у провайдера «опять сгорел dns».
Начал поиск я с матушки России и нашел
Читать дальше →

«Стиллион» — поиск специалистов в области красоты

Reading time3 min
Views797
imageИдея нашего стартапа «Стиллион» происходит из положительного опыта создания проекта по поиску частных специалистов в области обучения вождению «Спокойно.ру». Встречайте: «Стиллион» — место встречи тех, кто хочет стать красивее и тех, кто может в этом помочь. Запуск состоялся 8 марта.




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

Архитектура и платформа проекта Одноклассники

Reading time10 min
Views120K

Архитектура и платформа проекта Одноклассники


В этом посте расскажем о накопленном за 5 лет опыте по поддержанию высоконагруженного проекта. Надеемся, что коллегам-разработчикам будет интересно узнать, что и как мы делаем, какие проблемы и трудности у нас возникают и как мы справляемся с ними.

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

Предотвращение рекурсии и ленивые вычисления в Java

Reading time5 min
Views5.4K
Не так давно, я написал небольшой класс для автоматического кэширования и обновления произвольных значений. Пользоваться им было очень легко — стоило лишь создать анонимный класс с перегруженным методом update, а потом, когда нужно, вызывать функции для пометки значения устаревшим и для получения самого значения:
Читать дальше →

Пишем приложение под Android с поддержкой Cloud to Device Messaging (C2DM)

Reading time15 min
Views36K


Здравствуйте, читатели Хабрахабр!

В данном посте я хочу уделить внимание сервису C2DM от компании Google и попытаюсь рассказать, как реализовать поддержку данного сервиса в вашем Android-приложении. Напомню, что C2DM — это специальный сервис, предоставляющий API для отправки сообщений приложениям, установленным на устройствах Android. Использование данного сервиса является незаменимым способом при необходимости передать сообщение пользовательскому приложению, зарегистрированному в системе, но не являющемуся на данный момент активным.

Хотя C2DM является одной из фундаментальных возможностей платформы Android, информации о нем в рунете мало. Попытка изменить данную ситуацию и является одной из задач этого поста.

Под катом я расскажу, как написать простые клиентское и серверное приложения, покажу некоторые «подводные камни», а также дам ссылки на примеры кода.

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

DriverPack Solution 11 доступен для скачивания

Reading time3 min
Views7.6K

Дорогие коллеги!


Рад сообщить о выходе новой версии программы для установки драйверов DriverPack Solution 11!

В новой версии используются свежие базы драйверов, новый движок и реализована возможность установки дополнительных программ.
Ссылка для скачивания (объём 2,8Гб): http://drp.su/ru/download.htm


Наша цель – собрать все драйвера в одном месте.
Кстати, у нас уже 9млн. пользователей!
Читать дальше →

Поддельные сертификаты для популярных сайтов

Reading time1 min
Views11K
Сначала немного жёлтого:

Удостоверяющий центр Comodo Internet Security (их корневой сертификат объявлен заслуживающим доверия большинством производителей браузеров) подписало следующие сертификаты для неизвестных мошенников:

* mail.google.com, www.google.com
* login.yahoo.com (3шт)
* login.skype.com
* addons.mozilla.org
* login.live.com

Если мошенник предъявит этот сертификат, то он будет принят как правильный браузерами. Другими словами, не будет ни малейшего метода определить, что сайт поддельный.

Теперь подробнее. Эти сертификаты были выпущены, после чего началась подковёрная буча, производители браузеров (как минимум хром и файрфокс) внесли их в black list (вкомпиленный в код). Для firefox'а это произошло 17ого марта 2011 года, все версии, вышедшие до этого момента будут доверять этим сертификатам (я хотел было написать «подвержены уязвимости», но проблема в том, что это не уязвимость, это распиз… ство Comodo, которому почему-то все вынужены доверять). В теории, должна осуществляться проверка на то, не входит ли сертификат в список отзыва (его туда внесли), однако, на практике, если доступ к этому списку ограничен, то браузеры не выдают внятных предупреждений и доверяют сертификату.

Ссылки:

1) Пресс-релиз comodo: www.comodo.com/Comodo-Fraud-Incident-2011-03-23.html
2) Secity Advisory от MS: www.microsoft.com/technet/security/advisory/2524375.mspx
3) Детективная история о том, как обнаружили «странное» в патчах в firefox'е до офицального обнародования результатов беспечности Comodo: blog.torproject.org/blog/detecting-certificate-authority-compromises-and-web-browser-collusion
4) О политической составляющей произошедшего: avva.livejournal.com/2321707.html

Геолокационный сервис inmile.com

Reading time2 min
Views1K
Проект InMile.com — определяет местоположение пользователей, размещает их на карте и дает возможность общаться. Не только с друзьями, но с совершенно незнакомыми людьми, находящимися рядом.

inmile.com

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

Но! Вы знаете тех, кто рядом с вами? Кто живет в соседнем дворе (и вы не выросли в этом районе), кто учится в одном здании, кто работает в соседнем офисном корпусе, кто обедает в одной кафешке с разницей в два часа? Как зовут симпатиную девушку случайно увиденную из окна? Кто наклеил обкусанное яблоко/пингвина на детскую коляску своего чада?

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

Как хороший договор спасает нервы и монетку

Reading time14 min
Views62K
Договоры, отчеты, акты — кому охота заниматься этой скукотой, когда вокруг бьет ключом и фонтанирует идеями креативная жизнь? Особенно, если заказчик снисходительно хлопает творческого подрядчика по плечу: «Да ладно, зачем какие-то договоры. Мое слово — закон!» Остается только радостно согласиться и приступить к работе.

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

Переписываем проект с Zend Framework на Rails

Reading time9 min
Views7.9K
Около пяти месяцев назад я завязал с zend framework и пересел на рельсы. Тогда же начал переписывать свой проект www.okinfo.ru. Сейчас он уже закончен и sloccount показал что количество строк в проекте уменьшилось с 15000 до 4000. Мои знакомые php разработчики попросили success story и в итоге родилась эта статья. В ней я опишу как оно было, а так же немного расскажу о своем переходе на ruby.
Читать дальше →

Изучая Vaadin

Reading time3 min
Views44K
Я хочу рассказать про Vaadin — фреймворк для разработки веб-приложений на Java. Да, на Java этих фреймворков — пруд пруди, но Vaadin заметно выделяется среди них.

Чем Vaadin отличается от других Java web фреймворков?


Если вкратце, Vaadin позволяет писать веб-приложение в стиле Swing:
import com.vaadin.ui.*;

public class HelloWorld extends com.vaadin.Application {

    public void init() { 
        Window main = new Window("Hello window"); 
        setMainWindow(main);
        main.addComponent(new Label("Hello World!")); 
    }
}

Считается преимуществом, при использовании Vaadin приходится программировать только на одном языке — Java, то есть не надо заморачиваться с XML, JavaScript, Html и т.д. и можно вовсю использовать весь мощный инструментарий Java: рефакторинг, юнит-тесты, заглушки (моки) и т.д. Ты пишешь new Label("Hello World!"), а Vaadin сам уже ломает голову, как это превратить в Html и JavaScript.

С чем можно сравнить Vaadin?

Антипаттерн settings.py

Reading time4 min
Views19K


Хабрапитонерам привет!

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

Сейчас я хочу понегодовать на паттерн «все настройки — в settings.py». Понятно, что популярность он набрал благодаря Django. Я то и дело встречаю в проектах, никак не завязанных на этот фреймворк ту же самую историю: большая кодовая база, маленькие, хорошенькие никак не связанные друг с другом компоненты, и нате вам: все дружно из произвольных мест лезут в волшебный недомодуль settings за своими константами.

Итак, почему же такой подход на мой взгляд отвратителен.

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

Information

Rating
Does not participate
Location
Ростов-на-Дону, Ростовская обл., Россия
Date of birth
Registered
Activity