Яндекс.Метрика

    Ни о чём

    Ни о чём

    Тема открытой платформы для создания учетных приложений поднятая командой Teamlab

    Здравствуйте Хабрачитатели.
    Недавно на Хабре столкнулся с темой набора команды свободных программистов для создания Open source платформы, с помощью которой будут разрабатываться учетные и управленческие решения. Что-то вроде 1С, только открытая.

    Вот мой личный опыт связанный с этим.


    Более пяти лет назад я начал финансировать подобный проект (но у нас не было конкретных планов, что продукт будет открытым, иначе я бы не стал финансировать).
    Я выступал в роли инвестора, внедренца, руководителя проекта. По второму и третьему пункту я не имел большого опыта. А мой бизнес был лабораторным кроликом.

    Ни о чём

    Первые шаги в Китай

    День добрый, уважаемое Хабрасообщество.
    Я хочу написать свою историю, как сбежать из раши, не имея за плечами даже трактора уехать из России в Китай.
    image
    Предложение поехать в Китай поступило от моей подруги, которую я давненько не видела, так как она учится в студенческом городе Харбине. Подсказала, где можно посмотреть работу по специальности, после чего в общих чертах объяснила, как добраться. В итоге решение пришло внезапно, ибо на родине терять было нечего. Дальше – больше.

    Ни о чём

    Будет ли вам интересна статья про постиндустриальное общество?

    У меня сейчас в черновиках лежит недописанная статья «Постиндустриальное общество: ценности, семья, мораль и право», по мотивам предыдущих топиков про порнографию и мозг.

    Лежит давно, пишется с трудом. Поэтому хочу заранее спросить, будет ли эта статья здесь востребована.

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

    Если интересно, пишите в комменты. Если неинтересно, тоже пишите в комменты.

    Кстати, сразу анонсирую следующую статью — про государство, общество и национализм. Можно и за неё сразу голосовать :).

    Ни о чём

    Из США в Россию за неделю… Почта России может!

    Очень много негатива на почту, но всетаки негатив он выплескивается всегда, а вот положительные отзывы никто не публикует, считая это в порядке вещей. Под катом скриншот трекинга моей посылки. Надеюсь это скоро войдет в обычную практику.

    Ни о чём

    На работу в Чехию

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

    Начать бы хотелось с главного: времена, когда эмигрировать в Чехию было очень просто, похоже, уходят окончательно. И теперь сюда попасть почти такой же гемор, как и любую другую страну Шенгена. А, если нет разницы, почему бы не уехать в страны побогаче (Германия, Франция и т. п.)? Ах, вам нравится чешское пиво и тихая, размеренная жизнь? Тогда прошу под кат.

    Ни о чём

    Клиент для Lenta.ru под Android

    Часто читаю новости Lenta.ru в метро. Заголовков из их RSS-канала недостаточно, а читать полные статьи в браузере — не совсем удобно. В Android Market нашелся достойный клиент, но мне захотелось написать более простое и удобное в навигации приложение. Возможно, кому-то из сообщества оно будет интересно.

    image

    Главный экран приложения накапливает новости из RSS-канала издания и показывает 40 последних статей. Статьи кэшируются полностью (включая текст статьи с сайта), поэтому достаточно обновится один раз и читать новости в подземке. Уже после загрузки всех статей, клиент скачивает небольшие эскизы, которые дают представление о содержимом конкретной статьи. В отличие от текстов, картинки для статей подгружаются по мере доступа к ним пользователя. Если Вам не интересна какая-либо статья, Вы просто ее не откроете и сэкономите трафик на загрузке картинки.

    Новые и прочитанные статьи выделяются для наглядности. Есть возможность регулирования размера шрифта для удобства чтения. Также можно поделиться любой статьей с друзьями.

    Чтобы сократить расходы на трафик, в настройках можно отключить загрузку эскизов и/или картинок. Если необходимо освободить немного места на SD-карте, можно очистить кэш (эскизы и картинки) прямо из приложения.

    Программа бесплатна и доступна в Android Market. Резюмируя, можно отметить следующие ее особенности:
    • простой и интуитивный пользовательский интерфейс;
    • быстрая загрузка статей;
    • полнотекстовые статьи с картинками;
    • регулируемый размер шрифта;
    • возможность делиться новостями с друзьями;
    • настройки: включение/отключение загрузки картинок;
    • настройки: очистка кэша.

    Скачать с Android Market

    скачать Lenta.ru для Android

    Ни о чём

    Обучающий рэп от Google

    Возможно некоторым хабражителям будет интересно посмотерть, как доходчиво гугл объясняет, как пользоваться его справкой. Топик-ссылку опубликовать не могу, поэтому здесь привожу просто ссылку на это видео:

    docs.google.com/support/bin/answer.py?answer=181336

    Нарочно не встраиваю видео сюда, т.к. его лучше смотреть на сайте справки :-)

    Ни о чём

    Наивный Байесовский классификатор в 25 строк кода

    Наивный Байесовский классификатор один из самых простых из алгоритмов классификации. Тем не менее, очень часто он работает не хуже, а то и лучше более сложных алгоритмов. Здесь я хочу поделиться кодом и описанием того, как это все работает.

    И так, для примера возьму задачу определения пола по имени. Конечно, чтобы определить пол можно создать большой список имен с метками пола. Но этот список в любом случае будет неполон. Для того чтобы решить эту проблему, можно «натренировать» модель по маркированным именам.
    Если интересует, прошу .

    Немного теории


    Пусть у нас есть строка текста O. Кроме того, имеются классы С, к одному из которых мы должны отнести строку. Нам необходимо найти такой класс с, при котором его вероятность для данной строки была бы максимальна. Математически это записывается так:

    image

    Вычислить P(C|O) сложно. Но можно воспользоваться теоремой Байеса и перейти к косвенным вероятностям:

    image

    Так как мы ищем максимум от функции, то знаменатель нас не интересует (он в данном случае константа). Кроме того, нужно взглянуть на строку O. Обычно, нет смысла работать со всей строкой. Намного эффективней выделить из нее определенные признаки (features). Таким образом формула примет вид:

    image

    Знаменатель нас не интересует. Числитель же можно переписать так.

    image

    Но это опять сложно. Здесь включаем «наивное» предположение о том, что переменные O зависят только от класса C, и не зависят друг от друга. Это сильно упрощение, но зачастую это работает. Числитель примет вид:

    image

    Финальная формула примет вид:

    image

    Т.е. все что нужно сделать, это вычислить вероятности P( C ) и P(O|C). Вычисление этих параметров и называется тренировкой классификатора.

    Код


    Ниже — код на питоне. Содержит всего две функции: одна для тренировки (подсчета параметров формулы), другая для классификации (непосредственный расчет формулы).

    from __future__ import division
    from collections import defaultdict
    from math import log
    
    def train(samples):
        classes, freq = defaultdict(lambda:0), defaultdict(lambda:0)
        for feats, label in samples:
            classes[label] += 1                 # count classes frequencies
            for feat in feats:
                freq[label, feat] += 1          # count features frequencies
    
        for label, feat in freq:                # normalize features frequencies
            freq[label, feat] /= classes[label]
        for c in classes:                       # normalize classes frequencies
            classes[c] /= len(samples)
    
        return classes, freq                    # return P© and P(O|C)
    
    def classify(classifier, feats):
        classes, prob = classifier
        return min(classes.keys(),              # calculate argmin(-log(C|O))
            key = lambda cl: -log(classes[cl]) + \
                sum(-log(prob.get((cl,feat), 10**(-7))) for feat in feats))
    


    Чтобы натренировать протестировать классификатор возьмем размеченный список мужских и женских имен и воспользуемся этим кодом.

    def get_features(sample): return (sample[-1],) # get last letter
    
    samples = (line.decode('utf-8').split() for line in open('names.txt'))
    features = [(get_features(feat), label) for feat, label in samples]
    classifier = train(features)
    
    print 'gender: ', classify(classifier, get_features(u'Аглафья'))
    


    Файл 'names.txt' можно скачать здесь.

    В качестве фич я выбрал последнюю букву имени (см функцию get_features). Работает неплохо, но для рабочего варианта лучше использовать схему посложнее. К примеру, выбрать первую букву имени и две последних. К примеру, вот так:

    def get_features(sample): return (
            'll: %s' % sample[-1],          # get last letter
            'fl: %s' % sample[1],           # get first letter
            'sl: %s' % sample[0],           # get second letter
            )
    


    Тесты


    Я протестировал классификатор на части исходного корпуса с именами. Точность составила 96%. Это не блестящий результат, но для многих задач вполне достаточно.

    Ни о чём

    Как изменит платформа Sensor and Location в Windows 7 нашу жизнь

    Sensor and Location platform в Windows 7 – большая платформа для работы с различными датчиками. Датчики необходимы для получения дополнительной информации об окружающей среде. В особенности, это относится к переносным устройствам: ноутбук, планшет. Типичным примером, является изменения яркости дисплея ноутбука, в зависимости от уровня освещения окружающей среды. Если пользователь выходит в парк и присаживается на скамейку в солнечный яркий день, то установленной яркости дисплея ему скорее сего будет не хватать. Датчик считает значения уровня освещённости, полученным значением воспользуется программа регулирования яркости экрана используя Sensor and Location platform, и установил соответствующую яркость.

    Ни о чём

    Just5. Необычный взгляд на необычное для наших дней устройство

    Недавно мне удалось попользоваться мобильным телефоном Just5. Некоторые взглянув на фото подумали, что им уже все понятно и бросили читать… а зря. Это устройство может прийтись в пору человеку любого возраста. Некоторые мысли на этот счет под катом. Сразу предупреждаю, что это не реклама, а просто ИМХО на тему.

    Ни о чём

    Диссоциативное расстройство идентичности ASUS Украина…

    Или сказ о том как я общался и общаюсь до сих пор со службой поддержки и сервис центром ASUS

    Глава 1
    Покупка.

    В чудном месяц апреле стал обладателем довольно мощного ноутбука: ASUS N53Sv. Как всем уже известно всеми любимая компания Intel слегка «накосячила» при дизайне или же уже при производстве в чипсетах Sandy Bridge(О чем уже сообщалось на Хабре), но во всех официальных источниках говорилось, что партию отозвали и стать обладателем компьютера на этих чипсетах практически невозможно. Практически…

    Ни о чём

    О «проблемах» молодых предпринимателей (стартаперов) в России простыми словами

    Дмитрий Потапенко как всегда четко и по-простому рассказывает о «проблемах» предпринимательства в России.

    «У нас до сих пор совковый подход к себе… Якобы, у нас проблема с мотивацией… Если ты не хочешь, урод, то тебя, урода, невозможно что-то заставить делать» (с) Потапенко

    Ни о чём

    День рождения alex14n — День памяти

    image
    Сегодня, 17 мая, День рождения Александра Яковлева, более известного как alex14n.
    Саша был одним из основоположников развития Bit Torrent в Рунете, сооснователем NNM-Club`a и его ведущим разработчиком, являлся частым автором топиков на Хабре.
    alex14san навсегда останется в наших сердцах…

    Ни о чём

    Что будет, если у вас умрет жесткий диск?

    Всем привет.

    Сегодня у моего диска (Сrucial SSD C300) случилась странный глюк — после обычной перезагрузки он перестал быть виден системе. С него мало того, что нельзя было загрузиться, его не было видно даже в биосе на любом компе, к которому я его подключал.

    Если бы это был обычный HDD за пару тысяч рублей, проблемы бы не было — старый выбросил, вставил новый, периодические бэкапы рулят. Но эта железка стоит $600, согласитесь — серьезные деньги за накопитель, и выбрасывать такое после 4-х месяцев эксплуатации чертовски жалко. Но есть гарантия, всегда можно вернуть железку продавцу, пару-тройку месяцев помучиться и получить свои деньги обратно. Файлы восстановить из бэкапов и жить дальше припеваючи.

    Но тут есть одно очень большое НО — что будет с вашими данными, когда (если) они попадут в чужие руки? К примеру, у меня на этом диске все рабочие материалы — исходники всех проектов, коды доступа, пароли, записи в OneNote, почта и т.п. Если вдруг работник сервиса все-таки восстановит железку, он может получить доступ практически ко всему, чем я занимался последние 5 лет, и как он будет это использовать остается только догадываться.

    В итоге варианта два — или отнести диск в сервис и надеяться на то, что он умер безвозвратно, или смириться и купить новый.

    А как поступили бы вы?

    PS: К счастью диск ожил сам после двух десятков перезагрузок, это сэкономило мне кучу времени, денег и нервов. Сейчас шифрую раздел битлокером :)

    Ни о чём

    Организация автозапуска VPN-соединения под Windows

    Мой компьютер включен почти всегда. Редкое исключение — длительные поездки далеко за пределы ДС.
    Включен почти всегда, потому что очень часто, когда я нахожусь вне дома (на работе, в гостях, просто летом на даче), возникает необходимость зайти на него (по http или же через Remote Desktop) за какими-либо данными.

    Всё бы ничего, но доступ в интернет обеспечивается через VPN-соединение.
    Которое иногда обрывается. Из-за проблем у провайдера, из-за перезагрузки системы после установки критичных апдейтов или еще по каким-либо причинам.

    До недавнего времени каждый такой обрыв связи приводил к тому, что находясь вне дома, я терял возможность подсоединиться к компьютеру до возвращения домой и запуску VPN-соединения вручную. Пока однажды не решил разобраться в проблеме и сделать решение, которое позволило бы забыть про подобные неприятные ситуации.

    Покопавшись в интернете, обнаружил, что запустить соединение можно, используя программу rasdial.exe, входящую в стандартный набор Windows:

    C:\Windows\system32\rasdial.exe элемент [пользователь [пароль|*]] [/DOMAIN:домен]
    [/PHONE:номерТелефона] [/CALLBACK:ответныйНомер]
    [/PHONEBOOK:файлАдреснойКниги] [/PREFIXSUFFIX]

    Ну а дальше запустить соединение по расписанию — дело техники.
    Кому-то ближе Планировщик задач + bat-файлы, мне ближе cron + perl.
    Как и отношение к цвету и вкусу фломастеров, сложность скрипта — личное дело каждого.

    Можно даже так:

    c:\windows\system32\rasdial.exe "имя_vpn_соединения" имя_юзера пароль_юзера

    А можно чуть сложнее.
    Например, у меня сначала идет проверка доступности канала (пингом на определенные адреса), а потом запуск одного из VPN-соединений. В случае его недоступности — запуск другого и так далее.

    Единственный нюанс, на который нужно обратить внимание — под каким пользователем будет выполняться данный скрипт. Если VPN-соединение не расшарено между всеми пользователями системы, при запуске скрипта по расписанию система может не найти соединение, поскольку по умолчанию задачи запускаются с правами системного пользователя, а не того, под которым шла отладка.

    Ни о чём

    McDao – MarkDown с акцентом

    Вопрос о методике контент менеджемента (в узком техническом его смысле, как конкретно редактор контента управляет данными) передо мной стоял уже давно. Многолетний опыт разработок показал, что однозначного ответа нет и не будет. Очень много зависимостей от конкретной задачи, технический подготовке менджеров и других факторов. Решение о том, какая методика будет применена в системе, будет разная в каждом случае.

    Ни о чём

    С днём Радио!!!

    Хочу поздравить всех радиолюбителей Хабрахабра с Днём Радио!
    Ведь именно радиолюбители на заре зарождения электросвязи способствовали скорейшему её развитию.

    Также, особо хочется поздравить коротковолновиков и УКВ-истов от лица RA0ZHX, чистого вам эфира, терпеливых домочадцев, устойчивости вашим антеннам! 73!

    Ни о чём

    Проверка пяти открытых проектов статическими анализаторами общего назначения



    В статье «Трудности сравнения анализаторов кода или не забывайте об удобстве использования» [1] говорится о том, что сравнить между собой два инструмента не так просто как кажется, потому что помимо собственно технических характеристик анализаторов очень большое значение имеет такой параметр как удобство использования.

    Но все-таки от сравнения по обнаруживаемым ошибкам никуда не деться. Естественно, просто посчитать их количество – смысла нет. Поэтому мы решили провести практический эксперимент по обнаружению ошибок в реальных проектах.

    В статье показаны ошибки, выявленные с помощью статического анализатора кода, встроенного в Visual Studio 2010. Исследование проводилось на пяти open source проектах. Эти же проекты были проверены с помощью PVS-Studio. Приведены результаты сравнения этих двух инструментов.

    Ни о чём

    Настройка ALUA Multipath на Centos 5.x с хранилищем EMC

    Пишу скорее для себя что бы не забыть. Но вдруг кому-то тоже будет полезно.

    Столкнулся с такой проблемой. Когда регистрируешь хост в Unisphere указываешь failover mode 0.
    Система ставится, но не грузится. Не стартует multipathd. В логах видим запись типа: «Invalid faliver mode 0»
    Ставив на хранилище failover mode 1 — все стартует

    Теперь задача настроить active/active вместо active/passive

    Ставим failover mode 4, в /etc/multipath.conf добавляем следующий текст:

    devices {
    device {
    vendor "DGC"
    product "*"
    prio_callout "/sbin/mpath_prio_alua /dev/%n"
    path_grouping_policy group_by_prio
    features "1 queue_if_no_path"
    failback immediate
    hardware_handler "1 alua"
    }
    }


    После этого пересобрать initrd (mkinitrd) и ребутнуться

    Ни о чём

    Он знал!

    Пересмотрел мульт Незнайка на Луне по мотивам романа-сказки Н.Носова. Один в один с нас описано, хотя произведению 50 лет как.

    Не удержался и сделал нарезку. Длинновато получилось, но иначе терялась смысловая нить. В конец концов из песни слов не выкинешь :)