Pull to refresh
0
Илья @l1bbcsgread⁠-⁠only

User

Send message

Написание расширения для Оперы и Хрома: взгляд на процесс

Reading time7 min
Views8.5K

Как многие из вас помнят какое–то время назад Гугл во второй раз спрятал ссылку на Ридер, заменив ее ссылкой на Фотографии. В первый раз это вызвало волну недовольства пользователей и Гугл вернул все назад, сославшись на ошибку. Тогда, сразу же, появилось расширение для Хрома, возвращающее ссылку на Ридер. Я портировал это расширение для Оперы.

Когда второй раз Гугл перенес ссылку, волна возмущения уже была не такой сильной. Сначала мне даже показалось, что никто не обратил внимания. Сообщество было занято более важными новостями. Но появилось обсуждение на форуме поддержки Гугла и даже официальный ответ о том, что Гугл всегда стремится улучшить свои продукты и такое улучшение может приводить к действиям подобным случившемуся с ссылкой на Ридер. Я вспомнил про свое расширение, расчехлил запылившийся код и решил сделать расширение более приятным и более осмысленным. А именно — дать пользователю возможность задавать структуру ссылок самому. Расширение должно динамически выдергивать все ссылки со страницы, показывать их пользователю в виде двух колонок и позволить перетаскивать их мышкой. Оказалось, что для Хрома такого расширения тоже не было и дополнительно я задался идеей написать два расширения с общим кодом.
Под катом мои впечатления от работы и подходов Оперы и Гугла к расширениям

Блеск и нищета фан-сайтов

Reading time4 min
Views3.2K
В последнее время в сфере интернет-сообществ нельзя не заметить несколько очевидных изменений, о которых я хочу рассказать.

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

По моим наблюдениям, в русскоязычном интернете расцвет таких сообществ пришелся на 2005-2009 годы. Это соответствует времени, когда скоростной доступ в интернет появился у широких масс населения (в частности, у «среднего класса» и близких к нему по доходам и образу жизни социальных слоев), а цены на хостинг и аренду доменных имен снизились. В итоге, человек получил возможность сравнительно просто и дешево открыть свой сайт, посвященный любимой команде, певице, рок-группе, актеру, своему хобби и т.п. Этот сайт мог быть раскручен честными методами и получить высокие места в поисковой выдаче без активного пиара и применения SEO. Проще говоря, этот сайт мог быть успешен. Широкое распространение получили форумы (практически полностью вытеснившие гостевые книги и доски объявлений). Технический и содержательный уровень таких сайтов мог быть совершенно различным.

Что произошло дальше

Заземлённые указатели

Reading time8 min
Views52K
pointres, gnd

Не так давно, один из сотрудников покинул наш коллектив и присоединился к компании, занимающийся разработкой программного обеспечения, связанного с встраиваемыми системами. Ничего особенного в этом нет, всегда и везде, кто-то уходит, а кто-то приходит. Всё зависит от количества плюшек, удобства и предпочтений. Интересно другое. Человек искренне переживает за состояние кода на новом месте работы, что в результате и вылилось в эту совместную статью. Тяжело, «просто программировать», когда знаешь, что такое статический анализ кода.
Читать дальше →

Samsung ATIV Smart PC Pro — Полная восьмёрка на планшете

Reading time6 min
Views104K
Не так давно на IFA компания Samsung показала на выставке новые девайсы на Windows 8: телефон, планшет, два «гибрида»и моноблок. Одним из таких сенсорных гибридов был ATIV Smart PC Pro – таблетка, обладающая характеристиками ультрабука. Несмотря на своеобразное сочетание форм-фактора, возможностей и характеристик, именно этот девайс оказался одним из самых интересных не только с точки зрения позиционирования, но и технологически.



Ну а сразу после IFA в российский офис Samsung попали первые образцы (в данном случае – предсерийные), по которым можно делать выводы о производительности, общем уровне начинки и автономности, а также покрутить, потестить и помучить девайсы под новой ОС от Майкрософт. В 11.6-дюймовом малыше спрятали действительно серьёзную начинку, так что не поделиться первыми впечатлениями от девайса с подобным набором характеристик было бы пости преступно.

По неизвестным причинам топик долго лежал в черновиках, так что «вау» уже не очень «вау», но материал актуален, и характеристики радуют, по этой причине всех желающих ознакомиться с ними — прошу под кат. ;)
Читать дальше →

Еще раз о том, как уехать учиться за границу

Reading time4 min
Views95K
Этой истории уже почти год, однако после недавнего общения с пригласившим меня на хабр andorro я все же решил выложить этот текст на Хабр. Тема как мне кажется достаточно актуальна — как бесплатно продолжить обучение зарубежом. Сейчас я учусь в аспирантуре Университета Мельбурна (Австралия) на факультете информационных систем. Надеюсь, мой опыт будет интересен и полезен.



Идея сделать карьеру в науке возникла у меня в январе 2011 года. На тот момент я уже был аспирантом ВШЭ, куда поступил в ноябре 2010, однако вариант ухода в науку с возможностью заниматься ей 2-3 часа после работы не устраивал совсем. Перед глазами у меня были примеры моих одногруппников и однокурсников, которые не особенно выделяясь во время учебы, уехали получать PhD в Швейцарию, Великобританию и США, получая при этом стипендии/зарплаты, сравнимые с доходами программистов 1-3 годами опыта. С этого момента я решил проследовать их путем.

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

Как правильно сортировать контент на основе оценок пользователей

Reading time5 min
Views92K


В оригинале название звучит как «How Not To Sort By Average Rating». Я подумал, что дословный перевод «Как не сортировать по усреднённому рейтингу» будет малопонятен и хуже отражает содержание статьи.

Постановка проблемы


Вы занимаетесь веб программированием. У вас есть пользователи, которые оценивают контент на вашем сайте. Вы хотите разместить высоко оцененный контент наверху, а низко оцененный — внизу. Для этого на основе пользовательских оценок вам нужно вычислить некий «рейтинг».

Неправильное решение №1

Рейтинг= (Число положительных оценок) - (Число отрицательных оценок)

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

Валидация в Yii

Reading time6 min
Views35K
Доброго времени суток. Сегодня мне хотелось бы разобрать такую интересную возможность Yii Framework, как валидация данных моделей. На момент написания статьи актуальная версия фреймворка 1.1.10, собственно рассматривать валидацию на ней и будем.
Хочу сразу сказать, что мне не хочется перепечатывать мануалы и API, поэтому я по возможности буду ссылаться на готовые источники. Кроме того, я не буду описывать то, как пользоваться валидаторами. Я постараюсь раскрыть механизм валидации моделей Yii на основе правил валидации, чтобы используя их вы понимали что же на самом деле происходит и где в случае чего можно искать ошибки.
Читать дальше →

Магистратура за рубежом: как поступить и получить стипендию?

Reading time4 min
Views209K
Об авторе: выпускник НИУ-ВШЭ, в настоящее время работает над проектом по Semantic Web в Институте им. Лейбница и учится в университете Мангейма, Германия по последипломной стипендии DAAD

Данная статья – это своеобразный FAQ (пригоден и для «неайтишников»), который содержит ответы на основные вопросы по поводу поступления за рубеж и получения стипендии, предполагающий сильное желание, но ограниченное количество финансовых ресурсов у студента. Основная цель – правильно направить способных заинтересованных людей. Представленная информация касается, прежде всего, магистратуры (MA/MSc), однако многое, с некоторыми оговорками, также применимо и для аспирантуры (PhD). Итак:
Читать дальше →

Динамическое (нелинейное) тестирование GUI

Reading time5 min
Views9.5K
Что такое?

Выполнение действий над элементами графического интерфейса в случайном порядке.

Для чего нужно?

Человек, выполняющий тестирование, это Homo sapiens, т.е. он обладает неким интеллектом. Этот самый интеллект, мешает (очень редко, но мешает) ему находить «нелепости поведения» приложения связанные с непредвиденными ситуациями. Он просто не может представить себе настолько нелогичную ситуацию.
Пользователь же, намного превосходит QA в количестве и может значительно уступать ему в IQ. Отсюда, вероятность непредвиденного поведения пользователя отнюдь не крайне мала.
Итак, что нам, обладая свободными ресурсами и желанием, мешает принять меры по предотвращению подобных ситуаций? — Ничего.
Теперь сформулируем конкретные задачи, в которых «бессмысленное клацанье» по кнопкам может быть полезно:
  • Дополнить существующее тестирование стабильности приложения путем введения модели нелинейного поведения пользователя в GUI.
  • Исследовать потребление ресурсов при всех возможных вариантах работы приложения (инициированные из GUI).

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

Как делать будем?

Дальнейшее описание предназначено для тестирования приложений на платформе Windows.
Предлагаю воспользоваться связкой python + pywinauto. Хотя pywinauto и имеет некоторые ограничения в плане доступа к элементам окна, для большинства случаев этого должно быть достаточно.
Честно говоря, альтернативы я не вижу. Все знакомые мне средства автоматизации тестирования GUI не обладают динамичностью, показанной ниже – уже во время выполнения теста получать список контролов, определять их тип и выполнять допустимое действие.
Также не стоит недооценивать возможностей самого Питона и его модулей. Тут вам можно и видео снять, CPU замерить и сообщение, куда надо, в случае чего отправить…
Читать дальше →

Автоматизация работы интернет-радио на Linux

Reading time18 min
Views32K
Привет, `whoami`.

В этом посте я расскажу тебе об одном из методов автоматизации интернет-вещания – не самом надежном, но самом бюджетном. Сразу предупреждаю, что эта система заточена на использование ее под Linux, хотя с помощью знакомого многим «столярного инструмента», можно и под Windows реализовать. Эта статья расчитана на начинающих IT-шников, поэтому многие моменты я постарался «разжевать». Как у меня это получилось, решать тебе, мой дорогой читатель, но если мне удалось заинтересовать тебя, прошу под кат.
Читать дальше →

Взвешиваем селекторы CSS

Reading time4 min
Views88K
Ближе к двум часам ночи в голову в месте с мыслями о вечном приходят не менее вечные вопросы — «в чём смысл жизни ?», «зачем вообще человеку спать ?» или «Какого чёрта эта #%^$ не работает ?» и чем ближе утро, тем сильнее начинает волновать именно этот самый последний вопрос.

Чуть ниже я расскажу о том какого чёрта сss селекторы иногда не ведут себя так, как нам кажется правильным, и о том как они на самом деле должны себя вести.

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

Юникод для чайников

Reading time8 min
Views328K
logo
Сам я не очень люблю заголовки вроде «Покемоны в собственном соку для чайников\кастрюль\сковородок», но это кажется именно тот случай — говорить будем о базовых вещах, работа с которыми довольно часто приводить к купе набитых шишек и уйме потерянного времени вокруг вопроса — «Почему же оно не работает?». Если вы до сих пор боитесь и\или не понимаете Юникода — прошу под кат.

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

Делаем приватный монитор из старого LCD монитора

Reading time2 min
Views978K


Вы наконец-то можете сделать кое-что со своим старым LCD монитором, который завалялся у Вас в гараже. Превратите его в шпионский монитор! Для всех вокруг он будет выглядеть просто белым экраном, но не для Вас, потому что у Вас будут специальные «волшебные» очки.

Всё что Вам нужно – это пара старых очков, нож для бумаги и растворитель для краски.

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

Идеальная маркерная доска

Reading time5 min
Views172K
Доска маркерная или whiteboard является практически обязательным атрибутом любой, уважающей себя, команды разработчиков. При должном умении и желании обычная доска способна сэкономить массу времени и существенно улучшить результат работы команды — быстрый и эффективный способ коммуникации всегда был очень критичным и непосредственно влиял на результат коллективных усилий.

Но можно ли сделать сам инструмент приятнее? Добавить изюминку?


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

Information

Rating
Does not participate
Location
Томск, Томская обл., Россия
Date of birth
Registered
Activity