• Как я выиграл суд с EMS Почта России

      Как я выиграл суд с EMS.
      Итак, как было обещано в вопросе habrahabr.ru/qa/19545, я публикую свой опыт по подаче иска к «EMS – Почта России», который завершился положительно для меня. Впрочем, обо всем по порядку.
      Big Update — сегодня, 6.03.2013 получил деньги. Кафкианский процесс завершен. Ура!
      Читать дальше →
    • oDesk (Upwork). Мой опыт за полтора года

        Вот уже полтора года я зарабатываю фрилансом на бирже oDesk. За это время у меня накопилось много материалов по данной теме. В данном топике я собрал все в одну статью и адаптировал для аудитории хабра.
        image
        Читать дальше →
      • Как была взломана Gamma International

          image

          3 августа в сабреддите /r/Anarchism некто пользователь PhineasFisher создал тред, в котором сообщил о том, что ему удалось украсть 40 гигабайт различных данных компании Gamma International. Возможно, подобная история могла оказаться не столь громкой, если бы не бизнес, которым занимается эта европейская фирма — создание и продажа программных средств для взлома и скрытой слежки (а иными словами — самой настоящей малвари), заказчиками которых обычно выступали государственные структуры. Через несколько дней после первого сообщения взломщик выложил длинный рассказ о том, как ему удалось проникнуть на сервера Gamma International и что удалось там найти.

          Читать дальше →
        • Enlarge your pension-3. Примеры. Все познается в сравнении

            Первым же комментарием к предыдущему топику про тушение пожара керосином был вопрос о вкладе эмпирики в формирование накопительного портфеля. Это очень хороший, правильный и своевременный вопрос, сразу чувствуется разумность хабро-сообщества. Конечно «эмпирически» задним умом можно получать какие угодно хорошие цифры. Сама портфельная теория Марковица в лоб не используется именно потому, что все характеристики активов имеют склонность меняться во времени, в том числе после формирования портфеля активов. С классами активов проще.

            На западе есть такой термин “портфель простака”, “портфель лежебоки”. Пусть я простак (это предположение недалеко от истины) и у меня нет экономического образования. Я выбираю, куда можно инвестировать. Какие рынки мне могут прийти в голову? Их не так-то много:
            Читать дальше →
          • Readability своими руками

              Поскольку побеждать Великий Китайский Роскомнадзор наша штука для обхода блокировок в интернете пока не особенно научилась, а рассказать что-нибудь странное про свою работу все равно хочется, расскажу про реимплементацию похожего на Readability алгоритма при помощи Node.js и Бэйцзинского технологического института.

              Что это вообще такое


              Readability — это радикальное продолжение идеи AdBlock убирать с веб-сайтов лишние элементы. Там, где AdBlock старается снести только самые бесполезные для пользователя вещи (в основном рекламу), Readability удаляет заодно скрипты, стили, навигацию и все остальное ненужное. Раньше такой вид страницы называли «версия для печати», хотя на самом-то деле текст предназначен для чтения (отсюда название Readability – «Удобочитаемость»).

              Лирическое отступление про парсеры


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

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



                50$. Basecamp



                image

                Простая и удобная система управления проектами от команды 37signals. Это основной инструмент взаимодействия как внутри студии, так и с заказчиками. Все задачи заводятся в виде простых списков и легко меняются местами друг с другом простым перетаскиванием. Каждая задача выглядит как публикация с комментариями. Любой может указывать, кто из команды получит уведомление на email о его комментарии. Можно ограничивать видимость некоторых задач для клиента.
                Читать дальше →
              • Как слетать в Гонконг на выставку (часть 1)

                  image
                  Возвращаюсь в очередной раз из командировки в Гонконг и Шеньжень. 10 часов полета. Скучно. Вспомнилось, как я летел туда в первый раз несколько лет назад… Первое в жизни посещение ЮВА. Апрельские выставки электроники в Гонконге, потом выставка в Гуаньджоу, потом посещение 12 фабрик в Шеньжене. Насыщенная выдалась поездка. Благо, что мне помогли хорошие люди и я вляпался всего лишь в одну небольшую неприятность. Но вот денег я потратил гораздо больше, чем нужно, потому что очень многого не знал.
                  Вот и захотелось мне, имея в полете кучу свободного времени, написать эту статью — как наиболее эффективно потратить время и деньги (летаю я исключительно на свои, так что оптимизация затрат рулит), чтобы посетить Гонконг, посмотреть сразу две весьма интересные выставки электроники и получить массу положительных впечатлений. Конечно, я далеко не первый в мире эксперт по Гонконгу, т.к. бывал там в общей сложности только раз 15. Есть куда более опытные люди. Но, по-моему, никто из них еще не написал статью на Хабре, а до апреля (и, соответственно, выставок), осталось не так уж и много времени. С другой стороны, полтора десятка посещений — не так уж и мало, я люблю и нелохо знаю этот город, плюс я получаю много информации из первых рук: мой партнер с семьей живет в Гонконге уже больше 10 лет, а мой очень хороший приятель работает там по контракту 3.5 года, его жена — лицензированный гид по Гонконгу. В общем, сильно налажать с советами я не должен, ну и в комментариях меня знающие люди поправят, если что.
                  Читать дальше →
                • Монолог инкогнито с одной айтишной конференции

                    Disclaimer. Монолог ниже является стенограммой выступления одного из докладчиков на одной из айтишных конференций. Автор поста всего лишь публикует его здесь с разрешения докладчика.

                    Всем привет!

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

                    Меня зовут Сергей. Чтобы сказать про себя «я плохой докладчик», нужно хотя бы им, докладчиком, быть. Я вообще не оно. Свою первую и одну из последних презентаций я провел в 18 лет в Испании, перед аудиторией человек в 100. Мой весьма средний на тот момент английский синхронно переводили на испанский, народ зевал и почесывал репы, ожидая когда ЭТО недоразумение закончит блеять и объявится кофебрейк.

                    Сказать что мне было стыдно — это ничего не сказать, красный как рак, я свалил вторым выходом, забился в свой номер и боялся показаться на глаза. Всякие public professionals типа Карнеги сказали бы «позор!» и «never again!». Для себя я решил — все что угодно, хоть жигулевское пиво по пятницам, только не публичные экзекуции

                    К чему это я? Многие, глядя на ИТшников, путают скромность со стеснительностью. Да и фиг с ними. Главное — чтобы мы сами не путали. Я — стеснительный, поэтому буду смотреть в пол и читать по бумажке. Я бы выпил, конечно, для смелости, граммчиков сто (а лучше сто пятьдесят), но организаторы запретили. Ну что, пусть фигово, зато честно!

                    Я владелец компании П, в которой мы уже лет 13 или 14 занимаемся разработкой всякой фигни, про которую никто не слышал. Не имея таланта делать что-то красивое и эстетичное, мы довольствуемся подводной частью айсберга: софт-свитчи и клиенты для IP-телефонии, аппаратно-программные решения для высоконагруженных систем обработки контента, системы имперсонализации web и e-mail для виртуального присутствия, облачное видеонаблюдение, несколько справочных и торговых интернет-порталов, ну и еще пара проектов в стадии стартапа, говорить о которых рано, потому что стыдно

                    Все о чем собираюсь сказать, основано исключительно на личном опыте, относится к маленьким компаниям и совершенно не обязано работать в больших, хотя иногда бывает. За 25 лет, отданных айти-бизнесу, я умудрился побывать в разных шкурах, от техника, подносящего кофе джуниор девелоперам, до владельца компаний, которому не надо вставать в 8. Посредине между этими сомнительными гранями было, наверное, два главных увлечения — язык Си и темное ирландское пиво. Увы, и то и другое со временем пришлось сильно урезать.
                    Читать дальше →
                  • Промежуточные итоги биржевого стартапа

                      Биржа, как стартап. Звучит довольно необычно. Сразу в голову лезет огромное количество юридических моментов, регуляторских замутов и т.д. Казалось бы, просто так не начать.

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

                      Историю развития такого противостояния/дополнения можно долго расписывать. Но мы остановимся на одном из крайних событий этого фронта: криптовалюты. И даже еще сузим повествование: криптовалютные биржи.

                      Сразу скажу, чтобы полностью понять материал, пусть и написанный старательно общедоступным языком, все же придется потрудиться и ознакомиться с ликбезом.

                      Читать дальше →
                    • Поверхностно об основах рыночной архитектуры и алготрейдинге

                      Многие знают, что одно из первых, что говорят в техническом ВУЗе — забыть все, что проходили в школе. Данная рекомендация актуальна и здесь. Полезно иногда с чистого листа начать.

                      На данный момент все рынки автоматизированы. По этой причине какие-то экономические объяснения ценообразования являются некими рудиментами. Рулят алгоритмы + некое ручное вмешательство.

                      Задача каждого торгового алгоритма всегда одна и та же — принести денег владельцу. Алгоритм тем лучше, чем больше денег он в состоянии принести.
                      Читать дальше →
                    • Кроссворд на основе украденной у Adobe базы паролей

                        Как известно, больше месяца назад компания Adobe сообщила о хакерской атаке на свои сервера, в результате которой была украдена база данных пользователей, включающая ФИО, зашифрованные пароли и номера банковских карт, а также исходники её главных продуктов. Изначально говорилось о 2.9 миллионах скомпрометированных учетных записей, но реальность оказалась намного страшнее.

                        Вскоре файл с 130 324 429 уникальными записями весом в 10GB был выложен в открытый доступ и любой желающий смог скачать и покопаться в нем.

                        image
                        Читать дальше →
                      • Пишем single-page web application framework в 60 строках кода

                          В качестве предисловия



                          Веб-дизайнерский народ в последнее время распробовал single page web applications. Что оправдано во многих случаях.
                          Но явно ошибочно считать что single page web application не сделать без чего-то типа AngularJS, Ember и прочих Knockouts.
                          Во всяком случае если вам нужно сделать нечто простое типа To-do списка совершенно не обязательно тащить на клиент килобайты мега-фреймворка. На самом деле килобайты трафика это пол беды. Основная цена, скажем AngularJS, в том что он, как любой универсальный data binding механизм, создает значительную run-time нагрузку.

                          Эта статья про то как в 60 строках кода + jQuery/Zepto сделать простой app framework котрый можно расширять под свои нужды и без лишних сущностей в нагрузку.

                          Постановка задачи



                          Наш framework должен ...:

                          1. … поддерживать routing, т.е. должна быть возможность сказать в деклартивной модели: «этот вот url hash должен быть показан в этом view».
                          2. Должна быть возможность динамической загрузки разных view. Какие-то части нашего приложения могут быть либо тяжелы для начальной загрузки, либо не нужны, например, для незалогиненного пользователя.
                          3. Должна быть возможность динамической загрузки скриптов. По причинам изложенным в п. 2
                          4. Наше приложение будет поддерживать browsing history — кнопка «назад» в браузере должна показывать предыдущую страницу и т.д.
                          5. Ну и все это должно быть компактным и расширяемым как того будет требовать логика нашего приложения.


                          Пример того что мы хотим получить



                          Приложение Bootstrap'нутый список контактов — содержит сам список, карточку — детали контакта и некую панель управления (dashboard). Что будет на той панели нам не важно — знаем что что-то будет и ладно.

                          Personas demo

                          Поехали
                        • 3G интернет в удаленности от базовой станции с помощью тарелки и кофейной банки

                          Всем жителям Хабра — привет!




                          Суть этой статьи показать еще один вариант словить за уши Э/М волну в относительной глубинке для нужд доступа в интернет.
                          Если где-то точно такая конструкция уже мелькала, милости прошу ссылку, будет интересно сравнить и пообщаться.
                          Материал изложу в повествовательной форме, надеюсь, никого этим сильно не замучаю, всякие термины, если кто не знает, и прочие подробности можно смело пропускать, от этого суть поста сильно не изменится.

                          Постановка задачи

                          Интернет – штука полезная и нужная, с этим, думаю, поспорить сложно. И если проблем в городе с интернетом нет, то в деревне, где мне часто приходиться по семейным обстоятельствам бывать, есть определенные проблемы. Есть частный деревянный дом а-ля «хата» (место действия: РБ), из интернета в моей окрестности доступ предоставляют 3 оператора, но максимум – это лишь технология EDGE. До двух ближайших базовых станций (БС) около 3.5 и 7 км. Между домом и БС лес, но не вплотную. Хватило бы и EDGE, но загрузка этих станций от других соседних деревень, судя по скорости, такая, что можно «прятаться в картошку».
                          Вариант покупать готовое решение отпал сразу из соображений спортивного интереса.
                          Вдохновившись на одном из форумов удачным опытом парней, где использовалась спутниковая тарелка (она же «офсетная зеркальная антенна») и сам 3G модем в фокусе, решил что-то подобное смоделировать да скрутить.
                          Сразу скажу, что антенну с модемом хотелось закинуть на чердак, дабы не портила внешний вид дома (об этом ниже).

                          Читать дальше →
                        • Интеграция веб-сервисов в популярные cms

                            В этой статье мы дадим рекомендации как за короткий срок освоить cms и написать для неё расширение, модуль или плагин, а также расскажем о результатах и нашем опыте интеграции сервиса Cackle в эти системы. Cтатья может стать руководством для тех, кто собирается делать интеграции сервисов с cms системами или просто создать модуль.

                            Перед тем как решить с какой cms делать интеграцию стоит собрать статистику по запросам на интеграцию своих пользователей, а также посмотреть на общую статистику по cms на сайтах зоны .RU (http://statonline.ru/metrics/webapp_cms?tld=ru) из которой видно, какие cms имеют самую большую популярность.
                            image

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

                            Интеграция позволяет удобным образом встраивать сервисы в cms и максимизировать выгоду от его использования. Идеальным решением является установка плагина в несколько кликов. Приемлемым решением может быть мод — инструкция по допиливанию cms, при котором изменяются скрипты cms. Для нашего проекта любая интеграция комментариев Cackle для cms обычно включает следующие пункты:

                            — Cинхронизация комментариев с сервиса Cackle в локальную БД каждые 5 минут
                            — Отображение html для SEO
                            — Экспорт существующих на сайте комментариев в Cackle
                            — Возможность ресинхронизации(повторное копирование комментариев в локальную БД)
                            — SSO (авторизация своих пользователей)
                            — Счётчик комментариев на главной странице
                            — Виджет последних комментариев

                            Все эти требования к модулю включают реализацию таймера, получение комментариев запросом через API, сохранение в БД, отображение js виджета в шаблонах cms на определенных страницах и админку для ввода ключей API, и других настроек.

                            Мы сделали интеграции нашего сервиса комментариев Cackle в следующие cms системы:
                            Wordpress, Drupal, DLE, InstantCms, Joomla, Bitrix.

                            Теперь хронологическом порядке опишем наш опыт по интеграции для каждой cms.
                            Читать дальше →
                          • Подборка инструментов для эффективной frontend разработки

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

                              Form Builder

                              image

                              Этот прекрасный генератор форм поможет вам в создании красивейших CSS логин-боксов и прочих input вещей, при минимальных временных затратах. Помимо форм на сайте этого проекта можно создавать и другие не менее красивые CSS элементы, в том числе кнопки и ленты.
                              еще 24 ссылки
                            • Как определить язык напечатанного текста? (Европейские языки)

                                Увидев красивую и понятную блок-схему, описывающую, как отличать одну письменность от другой, я удивился. В первую очередь тому, что это оказалось кому-то интересным. Но раз уж та схема показалась любопытной, то я попробую продолжить тему, начатую уважаемым soulburner. Здесь речь пойдёт о том, как отличать друг от друга европейские языки.

                                Для начала – что такое европейские языки. Предлагаю ограничиться государственными языками стран Европы. Так как границы Европы – вещь спорная, то отдельно оговоримся про соседние страны. Духовно близкий Израиль, а также Грузию и Армению можно отличить по письменности из той же блок-схемы, Азербайджан и Казахстан я включу по доброте душевной, а Абхазию и Южную Осетию – в качестве прогиба перед российской властью. Так что абхазский в наш классификатор попадёт, а баскский и гэльский – ну уж нет, перебьются.

                                Языков больше, чем типов письменности. Поэтому диаграмка получилась большая. Отличать языки друг от друга будем в основном по особенным буквам, в частности, по буквам с диакритическими значками (диакритикой). Диакритика бывает над гласной (в букве й), над согласной (буква č) или может как-то сопровождать букву (как в букве ç; строго говоря это не дикритика вовсе, но мы здесь будем придерживаться такого жаргона). Наиболее известные (с моей точки зрения) значки в Европе — это умляут (он же диаерезис: ü), гачек (č) и акут (é).

                                Тех, кто не испугался, прошу под кат
                              • Как я покупал квартиру

                                  Я хотел написать статью про линейную регрессию, но потом подумал, да ну её, лучше куплю квартиру. И пошёл искать, что предлагают. А предлагают, как оказалось, много чего. В подходящий мне ценовой диапозон попало больше 500 квартир. И что, мне теперь все это просматривать? Ну нееет, программист я в конце концов или не программист. Надо это дело как-то автоматизировать.
                                  Читать дальше →
                                • Парсим русский язык


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

                                    Наша цель заключается в создании парсера русского языка, т.е. программы, которая на вход бы принимала произвольный текст, а на выходе выдавала бы его синтаксическую структуру. Например, так:

                                    "Мама мыла раму":
                                    
                                    (предложение
                                        (именная гр. (сущ мама))
                                        (глаг. гр. (глаг мыла)
                                            (именная гр. (сущ раму)))
                                        (. .)))
                                    


                                    Это называется синтаксическим деревом предложения. В графическом виде его можно представить следующим образом (в упрощенном виде):

                                    Читать дальше →
                                  • Кузявые ли бутявки, т.е. пишем морфологический анализатор на Python

                                      Морфологический анализатор для русского языка — это что-то заумное? Программа, которая приводит слово к начальной форме, определяет падеж, находит словоформы — непонятно, как и подступиться? А на самом деле все не так и сложно. В статье — как я писал аналог mystem, lemmatizer и phpmorphy на Python, и что из этого получилось.
                                      Читать дальше →