Между Гуглом и Яндексом

Я давно уже отмечаю, что эти два монстра друг на друга похожи, но никогда не сравнивал их.

Очень многие сервисы повторяют друг друга: 

  • Почта и поисковик – это только основная открытая часть
  • ГуглТолк против Я.Онлайн
  • Метрика Яндекса против Гугловой Аналитики
  • Лента Яндекса против Гуглового Ридера
  • ЯндексДирект против “как-эта-штука-называется-у-гугла”
  • Фотки Яндекса против ГуглоПикасы
  • Ютуб против ЯндексВидео
  • и так далее…

Часто используются не только похожие принципы, но и похожая реализация. Различие кроется в деталях.

Вот можно, например, детально сравнить Ленту с Ридером:

  • Яндекс имеет рекламный блок, у Гугла всяческая реклама отсуствует
  • Яндекс имеет прокрутку по полной странице, Гугл имеет прокрутку по вложенным спискам
  • Гугл имеет полный AJAX, а у Яндекса он, похоже, только частичный.
  • Яндекс использует постраничное разбиение списка новостей, а Гугл использует прокрутку и динамическую подгрузку
  • Гугл имеет колаборативные сервисы “нравится, общие, комментарии”, а у Яндекса есть только репостеры в ЖЖ, Твит и иже с ними
  • Гугл умеет оперировать статистикой подписки – причем как серверной, так и юзерной, а у Яндекса такие возможности почти отсуствуют – можно посмотреть только количество подписчиков
  • Рекомендации Гугла основываются на текущей подписке, но вот откуда сложились рекомендации у яндекса – для меня загадка
  • Гугл позволяет лепить дополнительные теги на новости, а классификация Яндекса останавливается на папках
  • Возможности настройки интерфейса у Гугла более серьёзные, нежели у Яндекса

 

В разрезе данного сервиса мне видится преимущество Гугла несомненным.

Кодекс чести

Перевод статьи Code of Honour за авторством Jens Steckhan (SAP).

Что общего между самураем, клингонцем и работником SAP?

Кодекс чести.

 

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

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

(далее…)

Компромиссы

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

Купить или не купить.
Использовать или выбросить.
Встать рано или проспать.
Доделать или бросить.
Уйти или вернуться.
Любить или ненавидеть.

Если есть решение, значит есть выбор, значит есть компромисс. И даже выбор между мгновенным интуитивным или взвешенным осознанным решением — это также компромисс.

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

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

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

Вселенная силу приложенную уравнивает противодействием. Просто по привычке.

Текущее состояние — мгновенный слепок постоянно сдвигающегося компромисса между тем, что было, и тем, что будет.
И будущее постоянно уговаривает своё прошлое на уступки, подкидывая ему события.

ЗЫ. UPD.

Различные варианты по запросу значений

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

И, разумеется, рисовать собственные экраны и писать обработчики при таком раскладе – занятие целиком неблагодарное.

Запрос ответа “ДА” или “НЕТ”

Вызов совсем простой:

POPUP_CONTINUE_YES_NO

Выглядит этот экран следующим образом:

POPUP_CONTINUE_YES_NO

Запрос значения или нескольких значений

Сначала надо определить список полей и начальные значения:

POPUP_GET_VALUES

Затем следует вызов этой функции:

POPUP_GET_VALUES

Получить введённые значения можно из той же таблицы.

Выглядит этот экран следующим образом:

POPUP_GET_VALUES

Для подобного экрана есть вариант: POPUP_GET_VALUES_USER_CHECKED. В этом функциональном модуле (по всей видимости) можно указать callback-подпрограмму для проверки введённых значений.

Выбор с вариантами ответов

Сначала определяем варианты ответов:

POPUP_TO_DECIDE_LIST

Затем вызываем функцию и анализируем ответ:

POPUP_TO_DECIDE_LIST

А выглядит это окно следующим образом:

POPUP_TO_DECIDE_LIST

Прочее

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

Практически любое соглашение об именовании лучше его отсутствия

… а лучше оно потому, что если его придерживаться, то порядок увеличивается, а беспорядок уменьшается.

С практической точки зрения порядок можно увеличивать до момента, когда он уже начинает вредить “поворотливости”.

(далее…)

Заповеди бывают разными

Десять заповедей по Синодальному переводу Библии.

    1. Я Господь, Бог твой, Который вывел тебя из земли Египетской, из дома рабства; да не будет у тебя других богов пред лицом Моим.
    2. Не делай себе кумира и никакого изображения того, что на небе вверху, и что на земле внизу, и что в воде ниже земли; не поклоняйся им и не служи им, ибо Я Господь, Бог твой, Бог ревнитель, наказывающий детей за вину отцов до третьего и четвёртого рода, ненавидящих Меня, и творящий милость до тысячи родов любящим Меня и соблюдающим заповеди Мои.
    3. Не произноси имени Господа, Бога твоего, напрасно, ибо Господь не оставит без наказания того, кто произносит имя Его напрасно.
    4. Помни день субботний, чтобы святить его; шесть дней работай и делай в них всякие дела твои, а день седьмой — суббота Господу, Богу твоему: не делай в оный никакого дела ни ты, ни сын твой, ни дочь твоя, ни раб твой, ни рабыня твоя, ни вол твой, ни осёл твой, ни всякий скот твой, ни пришелец, который в жилищах твоих; ибо в шесть дней создал Господь небо и землю, море и всё, что в них, а в день седьмой почил; посему благословил Господь день субботний и освятил его.
    5. Почитай отца твоего и мать твою, чтобы тебе было хорошо и чтобы продлились дни твои на земле, которую Господь, Бог твой, даёт тебе.
    6. Не убивай.
    7. Не прелюбодействуй.
    8. Не кради.
    9. Не произноси ложного свидетельства на ближнего твоего.
    10. Не желай дома ближнего твоего; не желай жены ближнего твоего, ни поля его, ни раба его, ни рабыни его, ни вола его, ни осла его, ни всякого скота его, ничего, что у ближнего твоего.

 

 

Десять заповедей в буддизме:

    1. Не убивать
    2. Не красть
    3. Не прелюбодействовать
    4. Не лгать и не клеветать
    5. Не использовать дурманящих веществ
    6. Не сплетничать о других буддистах
    7. Не превозносить себя и не уничижать других
    8. Не скупиться к нуждающимся
    9. Не держать зла и не побуждать ко злу
    10. Не клеветать на Три Драгоценности [ Будда, Дхарма (закон), Сангха (община) ]

 

Найдите 10 отличий.

О дизайне

Борьба с энтропией сродни борьбе с ветряными мельницами. И моё скептическое отношение к дизайну лежит в области энтропии.

Энтропия — мера беспорядка системы, состоящей из многих элементов.

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

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

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

(далее…)

Сертификация по CRM

Сначала прослушал курсы по CRM (Customer Relationship Management System — Система управления взаимодействием с клиентами).

TCRM10 CRM Fundamentals I

TCRM20 CRM Fundamentals II

Затем пошёл на сертификацию по этому модулю.

SAP Certified Application Associate – CRM Fundamentals with SAP CRM 7.0

Тест сдан. С чем могу сам себя поздравить.

Хотя зачем мне был нужен этот модуль… ? Это немного не моя специализация…

О контрольных счетах в бухгалтерии

В плане контрольных счетов у SAP в бухгалтерии сформировалась достаточно специфическая концепция.

Во-первых. Карточка контрагента.

Контрольный счёт – практически единственное необходимое поле ракурса БЕ из карточки контрагента. Без ракурса БЕ контрагент не может использоваться в бухгалтерии.

А счёт этот контрольный означает:

  1. Единственный счёт, на котором могут отражаться бухгалтерские операции по нему (за исключением операций по ОГК). Здесь всё просто. Указал контрагента, и точно знаешь, на каком счёте он будет отражаться.
  2. “Любимый” счёт по умолчанию. Это уже сложнее. Указал контрагента, при этом автоматически подтягивается его контрольный счёт, но его можно поменять на один из возможных (альтернативный).

 

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

Во-вторых. Деление в главной книге.

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

Например:

  • Счета выданных авансов резидентам
  • Счета выданных авансов нерезидентам
  • Счета кредиторской задолженности резидентов
  • Счета кредиторской задолженности нерезидентов
  • Счета налоговой задолженности
  • Счета сотрудников и заработной платы
  • Счета долгосрочной задолженности

 

Авансовые счета – практически всегда отделяют по коду ОГК (A). Таким же образом можно разделить и долгосрочную часть. А остальные  — это обычная кредиторская задолженность по разным группам контрагентов. С моей точки зрения должно работать строгое соответствие “группа контрагентов <=> группа контрольных счетов”, жесткое, но не обязательно по принципу “один-к-одному”.

А о авансовых и долгосрочных счетах можно поговорить отдельно.

В группе задолженности резидентов (для примера) может быть выделено несколько субсчетов КР001-Услуги и работы, КР002-Материалы, КР003-Прочие и подобные.

Возникают такие вопросы:

  • А зачем они так разделены, не проще ли вести задолженность на одном счёте ?
  • А что делать, если одна счёт-фактура относится и к материалам, и к услугам (в счете фактуре должна быть только одна позиция кредиторской задолженности)?

 

С учетом этих вопросов можно сократить список таких счетов, передав соответствующую аналитику на откуп отчётности.

Список альтернативных счетов

Но если уж вдруг поделили и определились, то возникает понятие альтернативного счёта. Это связано с тем, что поставщик не всегда поставляет только что-то одно. Может он обычно поставляет материалы, но иногда может поставлять услуги, или наоборот. А контрольный счёт в его карточке только один. Перед проводкой на счёт менять контрольный счёт в карточке – этот вариант глуп, хотя и может быть использован в исключительных случаях.

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

Но какой именно счёт ставить контрольным в конкретной карточке контрагента: любимый(по желанию бухгалтера) или более определённый ? Здесь возникает палка с двумя концами.

С одной стороны, при использовании “любимого” счёта, потребуется вести в настройках все возможные комбинации каждого контрольного с его альтернативными из группы. Максимальное число комбинаций равно N*(N-1), то есть при десяти счетах в группе потребуется ввести до девяноста их комбинаций. А если учитывать межгрупные связи, то прозрачность также не увеличивается. Можно ещё отметить, что этот справочник является настройкой, и поэтому конфигурируется через переносы из системы разработки.

С другой стороны, при использовании “определённого” счёта необходимо в проводках переключать этот счёт на требуемый в каждом конкретном случае (хотя пользователю можно немного помочь в этом расширениями). Но зато список альтернативных счетов выглядит гораздо понятней: только один контрольный счёт из группы (первый?) и остальные как альтернативные к нему. Тем не менее, такой подход не запрещает устанавливать для конкретного контрагента контрольным счет из списка альтернативных – просто другие счета не смогут быть использованы.

Что именно выбрать – уже зависит от особенностей внутреннего бухгалтерского учёта.

Разделение контрагентов по ролям

Как один из альтернативных вариантов можно применять разделение контрагентов.

Если придерживаться схемы “группа контрагентов => группа контрольных счетов”, то вполне допустимо ведение нескольких карточек контрагентов, которые выполняют совершенно разные функции. Например: сотрудник как подотчётное лицо, и сотрудник как покупатель. Такое разделение ещё более допустимо, если учитывать, что такие операции, как правило, обслуживаются разными бухгалтерами или даже разными подразделениями бухгалтерского учёта. Таким образом устраняются связи по альтернативным счетам между группами счетов.

Зачетные операции между такими задолженностями одного контрагента следует проводить только на основании первичных документов (писем, заявлений), как и в случае “взаимозачёта”.