6 заметок с тегом

Советы

Почему массив начинается с нуля?

UPD: читаем комментарии — мое объяснение не совсем верное, но будет понятно каждому.

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

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

Точка отсчета

Чтобы обозначить проблему при использовании отсчета массива не с нуля, а с единицы, приведу пример:

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

Когда вы будете выводить на графике или в таблице данные, вы сразу столкнетесь с тем, что 1 — будет результат за январь, а 12 — результат за декабрь. А где же будет исходно значение? Относительно чего будет прирост в январе?

Правильно! К моменту подсчета у вас должно быть какое-то значение, оно может быть равно нулю или иметь какое-то численное значение. И в массиве значений оно будет первым:

{
0 => 2 тыс // столько было например в прошлом месяце, если кафе открылось, то оно будет равно 0
1 => 1.7 тыс // посещения в январе
2 => 2.1 тыс // посещения в феврале
3 => 1.9 тыс // посещения в марте
...
12 => n тыс  // посещения в декабре
}

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

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

Когда нужно вывести первый элемент массива уже на автомате пишешь

$array[0]

где 0 — индекс первого элемента :)




Вроде как даже создатель языка Python (по-нашему Питон) хотел ввести индексацию массивов с единицы, но сообщество восприняло это в штыки...

2017   junior программист   Советы

Фильтрация задач по спискам или доскам в Trello

При работе с Trello иногда появляется задача — вывести сразу с нескольких досок актуальные задачи. или вывести по исполнителю и активности. Например есть 3-4 доски с разными проектами (разные сайты, или по отделам — дизайн и разработка) и нужно например вывести со всех досок одновременно все задачи из списка «Задачи» или из списка «ToDo».

Оказывается есть команды, которыми можно выводить тикеты как в фильтре — по названию списков, по активности, по людям и особенностям (с вложениями или описанием).

Например вывожу тикеты с разных досок, в каждой из которых есть список Задачи:

Доступные операторы

-operator — если добавить минус, то задачи с последующей отборкой не выведутся, например -has:members выведет все тикеты, никому не назначенные
@name — выведет тикеты, назначенные данному пользователю, @me выведет ваши картчоки
label: — выведет тикеты по точному названию, например label:«fix header»
board:id — выведет тикеты с определенной доски
list:name — выведет тикеты по названию списка
has:attachments, has:description, has:cover, has:members — выведут тикеты, которые содержат вложения, описания, обложку или участников соответственно
created:day — выведет тикеты, созданные за сутки, сожно вывести за неделю (week) или месяц (month)
edited:day — выведет тикеты, отредактированные за сутки
is:open, is: archived — выведут открытые и закрытые тикеты


Можно перейти отдельно на страницу поиска и фильтровать свои тикеты:

2017   trello   Советы

Прототипы сайтов на Pingendo вместо Axure

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

Как ты делаешь прототипы?

Ответил, что сразу в коде ХТМЛ — мне начали советовать Axure, а я даже и не понял, что было не так — проблем с прототипами и набрасывании эскизов в ХТМЛ у меня никогда не было. Сразу и не сориентировался, ведь использую Pingendo — эта штука позволяет набросать адаптивную страницу за 3-4 минуты и выплевывает чистый кода на Бутстрапе, а я это даже не рассматривал как инструмент для прототипа → сразу делал готовые сверстанные шаблоны для сайта и потом уже допиливал.

Конструктор адаптивных страниц — Pingendo

Pingendo — отдельный браузер, сделанный для ускорения (дикого ускорения) верстки на Бутстрапе, в панели этой программы предусмотрены все компоненты и блоки — просто перетаскиваешь и собираешь из них страницу.

Чувак за 8 минут собирает готовую страницу

Особенности Pingendo

+ Выплевывает готовый ХТМЛ-код, чистый
+ Если проект на Бутстрапе — сразу готовы исходники
+ Все компоненты, блоки, кнопки (да все есть) Бутстрапа в коробке
+ Адаптив — сразу можно просмотреть отображение на мобильном, планшете или ноутбуке
+ Можно добавлять свои классы и внизу в коде писать стили CSS
+ Поддерживает все ОС — я работаю под Линуксом и мне все нравится, под Мак тоже есть
+ Поддерживает LESS — инструмент не просто для прототипов, а для полноценной разработки
+ Уже есть версия с бетой Бутстрапа 4 — разрабы не сидят на месте
+ Обнаружил веб-версию, идет с версией под новый Бутстрап


— Немного мусорит — добавляет лишние блоки для обертки: .section и .container, ставит лишние переносы, устраняется секундами
— Дизайн подчинен сетке Бутстрапа — не подойдет для прототипов мобильных приложений, кабинетов (если не планируется Бутстрап) и специфичных интерфейсов

В общем я остался непонятым на собеседовании, не умеющим делать прототипы, но, сука, классным :)

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

2017   Инструменты   Прототип   Советы

Повысить себе зарплату за счет взносов и НДФЛ (не доработана)

Один способ повысить себе зарплату — забрать взносы и НДФЛ, которые работодатель платит за вас.

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

Когда я на собеседовании попросил, чтобы компания отдала мне все взносы и налог НДФЛ, которые бы платила за меня, это вызвало вопросы и у меня и у компании как это сделать — на самом деле есть хороший способ всем на этом заработать.)

Посчитаем расходы для белой зарплаты 50 000 рублей на руки

Трудовой договор

Отчисления при стандартном трудоустройстве

Взносы в фонды за 2017 — 2 250 рублей (27 тысяч рублей за год) 
НДФЛ (50 000/82% * 100%) — 10 975 рублей

На руки вы получили 50 тысяч, но в действительности ваши доходы:
10 975 + 2 250 + 50 000 = 63 225 рублей

Агентский договор

Налог по УСН 6% — 3 793 рубля
Взносы в фонды за 2017 — 2 250 рублей

Минусуем налог УСН на величину взносов:
3 793 - 2 250 = 1 543 рубля

На руки вы получите:
63 225 - 1 543 рубля = 61 682 рубля

Сменив логику оформления своих отношений можно увеличить свою белую зарплату c 50 тысяч рублей до 66 тысяч.

Сложности

  • вы потеряете отпускные, больничные и декрет!
  • нужно будет оформить ИП и стать предпринимателем
  • каждый квартал нужно самостоятельно платить взносы и налоги
  • каждый год нужно сдавать налоговую декларацию
  • всю выгоду может забрать себе предприниматель, заплатив вам прежние 50 тысяч в месяц и получив еще несколько плюсов себе

Плюсы для работодателей

  • Возможность всю сумму записать в расходы и снизить налогооблагаемую базу
  • Уйти от серых зарплат — ведь налоги и взносы будет платить сам гражданин
  • Можно забрать полный размер экономии себе
    ...

Личный опыт

Мне удалось на собеседовании договориться несколько раз — к сожалению я отказался от работы и не могу привести личный пример. Небольшие предприниматели точно идут на такой шаг — это способ оптимизации налогов. Кстати один из двух предпринимателей при беседе со мной явно намеревался НДФЛ и взносы себе забрать и не хотел поднимать размер зарплаты, будьте осторожнее.

Если у вас есть опыт, напишите мне на hello@maksfedorov.ru

2016   Советы

Навожу порядок в новостях и в Яндекс‑почте

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

Огромное количество блогов и СМИ идет с разных сторон, половина повторяется и в ВК и в Фейсбуке:

  • в Фейсбуке идут новости от Бирмана и Ильяхова
  • в ВК опять лезет Бирман, плюс новости от vc.ru, Варламова и десятков пабликов
  • 20 блогов, которые хочется читать, лежит в закладках — неудобно каждый раз кликать по ним и поэтому редко их читаю.

Нужно было решение — все упорядочить и желательно сделать одним источником, в котором смогу сортировать тематику и интересы. Об РСС всегда знал, но как-то вот не дотянулась рука с ним поработать. Теперь решил его использовать для решения моей задачи.

Перебрал несколько инструментов:

  1. Сервис «Мои новости» в Яндекс-новостях — СМИ типа Варламова и vc.ru удобно отображает, но РСС из блогов не работает, плюет ошибками
  2. Фидли — читалка РСС, на ней и остановился
  3. Своя читалка РСС на ПХП — отложил на потом
  4. Гугл-ридер — закрылся

Фидли

За полчаса сделал себе офигенную подборку со всех блогов и СМИ и раскидал по интересам.

Cтраница настройки Feedly источников по группам

Проблема 2: Почту сортировал по папкам — чтобы просмотреть новые сообщения, приходилось смотреть в каждой папке, искать также было не удобно и терял письма.

Решение — не сортировать по папкам, а просто давать метки и смотреть все в одной ленте. Чтобы метка автоматически добавлялась к письму к определенному адресату или теме, нужно настроить в правило обработки.

Очень много крутых фишек работы с Яндекс-почтой есть в их блоге.

Если мне нужно письмо по определенной теме, просто с помощью метки спокойно смотрю их:

В любой момент я могу перейти к письмам по выбранной метке

2016   Советы

Не смотреть в Яндекс‑метрике свои посещения — пример на Эгее и Симпле

Когда заходите в Метрику или Аналитикс вы видите посещения пользователей, в том числе свои. Это может сильно портить картину, так как за день я могу зайти с разных устройств и 500 раз обновлять страницы — все мои действия будут отражены в аналитике.

Недостаток способа в том, что вы должны зайти под учеткой админа, чтобы это условие сработало — Эгея будет видеть, что вы админ и не выводить Метрику на страницы. Я уже взял за привычку сразу набирать адрес админки, потом уже работать с блогом.

Отключить через условия php в шаблоне Эгеи

Оборачиваем код счетчика в код проверки на администратора:

<!-------------------------------------------------------
Не показываем админам счетчики, чтобы очистить метрику
-------------------------------------------------------->	
<?php if ($content['sign-in']['done?']) { } 
    else { ?>


<!-- Yandex.Metrika counter {literal}-->
<script type="text/javascript">
    Вывод кода моего счетчика
</script>
<!-- Yandex.Metrika counter {/literal}-->


<?php } ?>

Отключить через условия smarty в шаблоне Симплы

Оборачиваем код счетчика в код проверки на администратора:

<!-------------------------------------------------------
Не показываем админам счетчики, чтобы очистить метрику
-------------------------------------------------------->	
{if $smarty.session.admin !== 'admin'}


<!-- Yandex.Metrika counter {literal}-->
<script type="text/javascript">
    Вывод кода моего счетчика
</script>
<!-- Yandex.Metrika counter {/literal}-->


{/if}

Отключить через Google Tag Manager

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

2016   Симпла   Советы   Эгея