Показаны сообщения с ярлыком эффективность. Показать все сообщения
Показаны сообщения с ярлыком эффективность. Показать все сообщения

вторник, 10 января 2012 г.

Сегодня хочу поделиться своей подборкой плагинов к гугловскому Хрому, которые превращают этот и без того крутой браузер просто в какой-то турбированный мустанг для сёрфинга!

Мощь и скромность

AdBlock автоматически вырезает навязчивую рекламу, идиотские баннеры и текстовые сниппеты Google AdSense из сайтов. То, что не режется автоматом, можно убрать вручную в три клика, я так избавился от настырного попрошайки Джибмо Уэйльса, томного взирающего на мой бумажник с каждой статьи Википедии.

iReader отображает главный контент страницы в удобном для чтения виде, пряча шапку, элементы навигации и комментарии на сайте. Все сайты отображаются единообразно хорошо, несмотря на оригинальный дизайн или кривую вёрстку. Очень похоже на режим Reader в Safari на iOS.

Страничка с весьма умеренным дизайном

Она же в режиме для чтения

Send from Gmail использую, когда надо быстро послать ссылку на страницу друзьям или себе в будущее. Удобно.


Google Mail Checker показывает количество непрочитанных писем в ящике Gmail, а так как я придерживаюсь политики "ноль непрочитанных", то всегда знаю, есть ли новые письма.

Google Dictionary. Ctrl+дабл клик по незнакомому слову на страничке, и я через секунду знаю, что оно означает, произношение, синонимы и т.п.


Google Quick Scroll навигирует в найденной страничке на место, релевантное поисковому запросу в гугловском поиске.


Виджет-навигатор Google Quick Scroll

Super Full Feeds for Google Reader расширяет ридер возможностью читать посты целиком, не переходя на сайт-источник. С новым дизайном ридера смотрится немного коряво.

IETab позволяет открывать страницы в режиме, совместимом с Internet Explorer. На работе без него вообще никак, ибо там — вселенское зло под названием SharePoint.


Search by Image. Поиск по картинке, интересная идея; не знаю пока, насколько будет полезным, поставил в экспериментальных целях.


А какими плагинами пользуетесь вы?

вторник, 5 октября 2010 г.

Почти каждый день я получаю по письму от Николая Замяткина. Он пишет мне давно с завидным постоянством и по сути просит купить материалы для изучения английского языка. Письма стали приходить с тех пор, как я скачала книжку с заманчивым названием, что-то вроде "Почему вы до сих пор не выучили английский". Главный посыл автора гениален: раз вы читаете мою книгу, то вы не выучили английский, и уже не выучите, так как:
1. обычные методы изучения языков не эффективны;
2. дорогой читатель, ты - неудачник,
НО не все потеряно, так как есть новый супер метод Николая Замяткина. Эдакая гипнопедия. Я даже не сомневаюсь в том, что это отличный способ изучения новых языков.
Однако вся эта ярко-салатовая напористость напоминает дневную рекламу для домохозяек: "Купите эту потрясающую тёрку, и вы сможете вырезать самые невероятные звёздочки, чтобы поразить своих гостей. Только сегодня! Первые пять позвонивших получат в подарок надувную лодку-кресло-качалку."
В общем, мне пишет Николай Замяткин, и самое удивительное, что я не отправляю его в спам и не отписываюсь от рассылки. Более того, я читаю эти письма ). Очень интересным был материал "О том как Шлиман изучал языки" (письма рассылки есть  в сети). 
А в одном недавнем письме Николай рассказывает, какие качества наиболее важны для успеха:

1. Nothing happens until something moves. Встаём и двигаемся!
2. Способность доводить начатое до конца.
3. Гибкость: умение отказаться от того, что не работает, и расширение сферы вовлечения (поиск новых направлений). 

"Есть такая неофициальная статистика: в среднем только 1 из 17 новых начинаний оказывается успешным. Большинство опускают руки после 3-5-7 неудачных попыток. Успешный же бизнесмен –
это коллекционер собственных неудач… Который их уже никогда не повторяет. Но не останавливается, и всегда ищет новые возможности."

Так что я решила повторить n-ную неудачную попытку и написать пост.

суббота, 26 декабря 2009 г.

Вот на одном форуме встретил спам с ужасным русским (английский тоже не шекспировский):

grace4ammed@yahoo.com


Меня зовут благодати,
Я молодая красивая девушка с полной любви, заботы и романтично. Я была впечатление, когда я видел ваш профиль, и я люблю его, я думаю, мы можем нажмите вместе. Я хотел, чтобы вы ответить мне через эту grace4ammed@yahoo.com мой электронный адрес и я покажу вам мою фотографию то вы будете знать обо мне больше.
Пожалуйста, свяжитесь со мной прямо на мой электронный адрес grace4ammed@yahoo.com так что я буду иметь достаточно места, чтобы приложить свою фотографию и отправить его к вам оттуда Вы будете знать обо мне больше.
Возраст, расстояние и язык не имеет значения, но любовь вопросов в жизни.
Жду Вашего ответа на мой адрес в ближайшее время.


------


grace4ammed@yahoo.com
My name is grace,
I am a young beautiful girl with full of love,caring and romantic. I was impress when i saw your profile and i love it, i think we can click together. I will like you to reply me through this my email address grace4ammed@yahoo.com and i will show you my picture then you will know more about me.
Please contact me direct to my email address grace4ammed@yahoo.com so that i will have enough space to attach my picture and send it to you from there you will know more about me.
Age,distance and language does not matter but love matters in life.
Waiting for your reply to my email address soon.

Сначала решил, что это народный китайский перевод, потом, думаю, дай проверю, может это google translate? И точно, оказалось совпадает слово в слово. Молодцы, толковые ребята!

воскресенье, 13 декабря 2009 г.

Про конкуренцию


В Киеве появилась новая сеть фастсудов местного пошиба МакФокси, прямой конкурент МакДональдса. Не знаю, на что именно делают ставку владельцы "Фокси", будь то качество, цены, обслуживание или различные комбинации из этих трех, но первый шаг их кампании по истине достоин внимания: свежеиспеченые столовые (простите, терпеть ненавижу название "домашний ресторан") выросли вплотную с существующими "Маками". Этакие двое из ларца, одинаковы с лица, кого хочешь, выбирай. Не сочтите все это спекулятивной профанацией доморощенного пиарщика, я искренне надеюсь, что у "фоксов" действительно есть, чем переманить клиентов постылого американского клоуна. Не потому что я не люблю МакДоанльдс, просто мне нравятся конкурентноспособные Давиды. Берегись, Голиаф!

пятница, 15 мая 2009 г.

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

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

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

Меня не будет завтра,
Тебя не будет завтра,
Всех нас не будет завтра,
Сегодня или завтра.

вторник, 28 апреля 2009 г.

Прозрение


Пишу по-английски, потому что ну не приспособлен еще русский язык к программистскому профессиональному жаргону.

There is one problem using smart pointers on generic classes — if the one is a member variable of some class XX, then you can't simply forward declare class YY you're wrapping with a smart pointer, because C++ compiler will generate a warning "destruction of an unknown type: destructor of YY will not be called" while generating code for the smart pointer on YY.

// XX.h
class YY;

class XX
{
public:
XX(smart_ptr
ptr);

void doSomething();

private:
smart_ptr
m_ptr; // warning here, YY::~YY() is unknown
};

Usually, I was solving the issue by including "YY.h" in place of forward declaration. However, this involves extra cascade header files inclusion that slows down compilation.

// XX.h
#include "YY.h" // potential slowdown of the compilation

class XX
{
public:
XX(smart_ptr
ptr);

void doSomething();

private:
smart_ptr
m_ptr; // no warning here
};

But yesterday I had been taught a much better solution: it is sufficient to declare destructor in XX and define it within XX.cpp.

// XX.h
class YY;

class XX
{
public:
XX(smart_ptr
ptr);
~XX();

void doSomething();

private:
smart_ptr
m_ptr; // no warning here
};

// XX.cpp
#include "XX.h"
#include "YY.h"

XX::~XX()
{
// destructs m_ptr here, YY::~YY() is accessible
}

It is because when compiler doesn't find a particular class' destructor, it generates it as an inline function, and if YY.h is not included at the moment, the warning appears. So, moving destructor to the cpp and having YY.h included before does the trick. The only drawback is that destructor can not be inlined, but this is a good tradeoff in most cases.

Хороший UI


Хорошая лаконичная статья: 8 characteristics of successful user interfaces.

вторник, 24 февраля 2009 г.

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

Невероятно, но существует метод, лишенный всех недостатков предыдущих подходов - Poker game estimates! Вкратце, его можно описать так:
  • в "игре" участвуют все разработчики (и ПМ, если он близок к технической части) и, возможно, отвечающий за ТЗ человек, вносящий ясность в спорные моменты
  • каждый игрок по очереди называет свою оценку и аргументирует ее, если необходимо
  • оценки составляются взакрытую, то есть одновременно и независимо
  • в конце каждого раунда "игроки" договариваются о коллективной оценке

Реализовать на практике такие посиделки совсем не сложно, а результат - налицо, да и команда сплочается.

Конечно же, на совести ПМа остается заложение необходимых рисков, составление расписания и остальной ПМ-stuff, но теперь он может быть более уверен в решении своей проблемы №1.

понедельник, 9 февраля 2009 г.

GROW-модель


GROW - пошаговая техника выработки групповых решений.

Расшифровка: Goal - Reality - Options - Will.

Шаг 1. Формулировка цели (goal)
Шаг 2. Описание реальной ситцаии (reality)
Шаг 3. Рассмотрение возможных альтернатив (options)
Шаг 4. Принятие решения и взятие обязательств (will)

Оригинал тут: http://www.mindtools.com/pages/article/newLDR_89.htm