🔥 DaisyDisk со скидкой 50%
Для вас скидка на потрясающую утилиту для мака — она поможет найти, куда делось всё свободное место. Пользуюсь ей столько же, сколько владею макбуками (и крайне рекомендую), но купить решил только по такому вот прекрасному поводу. Может быть, вам тоже будет полезно.
Для вас скидка на потрясающую утилиту для мака — она поможет найти, куда делось всё свободное место. Пользуюсь ей столько же, сколько владею макбуками (и крайне рекомендую), но купить решил только по такому вот прекрасному поводу. Может быть, вам тоже будет полезно.
Ещё полгода назад наша платформа, на которой работают издания TJ, vc.ru и DTF, представлялась мне не очень большой, но когда в процессе рефакторинга мы переписали десятки тысяч строк кода и потратили пять месяцев, стало понятно, что представление было ошибочным.
Конечно, в процессе мы внесли очень много функциональных изменений, которые были крайне необходимы, а мне пришлось принять несколько непростых архитектурных решений, которые невозможно пока оценить (потому что они могут быть провальными), но настоящий размер проекта оказался виден только в середине пути, когда мы уже не могли свернуть назад.
Наверное, самый главный урок из всего этого — не планировать глобальный рефакторинг, делать все небольшими шагами. Если вы не успеваете прочитать весь исходный код своего проекта за один день — будьте очень осторожны с оценками времени, похоже, у вас уже большой проект.
Конечно, в процессе мы внесли очень много функциональных изменений, которые были крайне необходимы, а мне пришлось принять несколько непростых архитектурных решений, которые невозможно пока оценить (потому что они могут быть провальными), но настоящий размер проекта оказался виден только в середине пути, когда мы уже не могли свернуть назад.
Наверное, самый главный урок из всего этого — не планировать глобальный рефакторинг, делать все небольшими шагами. Если вы не успеваете прочитать весь исходный код своего проекта за один день — будьте очень осторожны с оценками времени, похоже, у вас уже большой проект.
Помню, как мы отключали репортинг о notice'ах в своих проектах. Хорошее было время, беззаботное. Прямо девяностые в мире PHP.
— Выложите на Гитхаб
— Босс, выложили за Гитхаб круглую сумму, когда можем объявить о покупке?
https://www.theverge.com/2018/6/3/17422752/microsoft-github-acquisition-rumors
— Босс, выложили за Гитхаб круглую сумму, когда можем объявить о покупке?
https://www.theverge.com/2018/6/3/17422752/microsoft-github-acquisition-rumors
The Verge
Microsoft has reportedly acquired GitHub
Deal could be announced on Monday
Avito опубликовали свой playbook. Из него можно, в частности, узнать, что они используют Kubernetes для оркестрации контейнеров, Sentry для сбора ошибок, Twig в качестве шаблонизатора для PHP и многое другое.
Мне всегда было интересно покопаться в том, «как это работает у них».
https://github.com/avito-tech/playbook
Мне всегда было интересно покопаться в том, «как это работает у них».
https://github.com/avito-tech/playbook
Маленькая утилита для создания https-сертификатов для локальной разработки.
https://github.com/FiloSottile/mkcert
Программа создаёт локальный CA, устанавливает его в систему как доверенный и позволяет создавать SSL-сертификаты для любого домена.
https://github.com/FiloSottile/mkcert
Программа создаёт локальный CA, устанавливает его в систему как доверенный и позволяет создавать SSL-сертификаты для любого домена.
Яндекс научился индексировать гуглдоки, у которых открыт доступ. Это не «только те документы, на которые где-то опубликовали ссылки» — я нашёл там в том числе нашу внутреннюю документацию, которую никто нигде не шарил.
Огромное количество доков с договорами, паролями, в общем, всем тем, для чего так круто использовать Google Docs и к чему для удобства открыли доступ. Интересно, Яндекс уберёт из индекса эти документы?
P.S. Кто придумает запрос, по которому можно найти биткоин-кошелёк, тот сорвёт джекпот!
Огромное количество доков с договорами, паролями, в общем, всем тем, для чего так круто использовать Google Docs и к чему для удобства открыли доступ. Интересно, Яндекс уберёт из индекса эти документы?
P.S. Кто придумает запрос, по которому можно найти биткоин-кошелёк, тот сорвёт джекпот!
Яндекс закрыл возможность поиска по гугл-документам. Но если вам повезло не спать сегодня ночью, то вы могли узнать, что...
Вот тут, например, магазин Утконос подводит итоги конкурса «Угадай счет в матче Россия – Испания».
Коля и Настя планировали свадьбу (хорошо, что она была в июне, а то приехали бы всем интернетом).
Моспосуда потратила в мае 200 000 на Яндекс.Директ (а выставка RosUpack обошлась в 243 000, надеюсь, что это окупится, пожелаем им удачи).
И многое-многое другое 😄 Доброй ночи, дорогие друзья, всегда проверяйте свои robots.txt.
Вот тут, например, магазин Утконос подводит итоги конкурса «Угадай счет в матче Россия – Испания».
Коля и Настя планировали свадьбу (хорошо, что она была в июне, а то приехали бы всем интернетом).
Моспосуда потратила в мае 200 000 на Яндекс.Директ (а выставка RosUpack обошлась в 243 000, надеюсь, что это окупится, пожелаем им удачи).
И многое-многое другое 😄 Доброй ночи, дорогие друзья, всегда проверяйте свои robots.txt.
Потрясающая новость: Фейсбук включил возможность таргетинга рекламы на россиян, «заинтересованных в государственной измене».
То есть можно было разместить рекламное объявление, старгетированное на эту группу, ну, например, баннер ВНЖ в ЕС для фрилансеров за 700 евро, 100% легально, и записать IP всех перешедших по ссылке. Эффективность поиска «экстремистов» у ФСБ может вырасти на 1000%.
Интересно то, как именно они собрали такую группу — допустим, алгоритм выделил её как большую и важную, модератор подумал «о, круто, предатели» и активировал её? Как именно это всё работало — достаточно ли лайкать Навального, например, чтобы попасть в список предателей родины?
В общем, я думаю, это один из немногих реальных примеров того, как большие данные корпораций, которые они о нас собирают (и мы обычно отмахиваемся, считая, что ничего серьёзного в этом нет) могут непосредственно влиять на реальную жизнь.
То есть можно было разместить рекламное объявление, старгетированное на эту группу, ну, например, баннер ВНЖ в ЕС для фрилансеров за 700 евро, 100% легально, и записать IP всех перешедших по ссылке. Эффективность поиска «экстремистов» у ФСБ может вырасти на 1000%.
Интересно то, как именно они собрали такую группу — допустим, алгоритм выделил её как большую и важную, модератор подумал «о, круто, предатели» и активировал её? Как именно это всё работало — достаточно ли лайкать Навального, например, чтобы попасть в список предателей родины?
В общем, я думаю, это один из немногих реальных примеров того, как большие данные корпораций, которые они о нас собирают (и мы обычно отмахиваемся, считая, что ничего серьёзного в этом нет) могут непосредственно влиять на реальную жизнь.
Сделал порт популярной библиотеки на PHP.
Она позволяет определить название и фирменный цвет банка по первым цифрам карты. Так как база большая её не стоит грузить в браузер, лучше делать поиск на бэкенде. Для PHP я просто сгенерировал массив для быстрого поиска по первым 6 цифрам и написал пару классов для удобной работы. Такой формат БД отлично кэшируется opcache.
chekalskiy/php-bank-db
Она позволяет определить название и фирменный цвет банка по первым цифрам карты. Так как база большая её не стоит грузить в браузер, лучше делать поиск на бэкенде. Для PHP я просто сгенерировал массив для быстрого поиска по первым 6 цифрам и написал пару классов для удобной работы. Такой формат БД отлично кэшируется opcache.
chekalskiy/php-bank-db
На протяжении многих месяцев почти каждый день мне в телеграм пишут незнакомые люди по разным вопросам — дело, видимо, в том, что они вводят в поиск по контактам «Илья», а услужливый телеграм предлагает написать мне на @ilya0.
Обычно там просто какие-то приветы и удивления типа «Ого, Илья, это ты?», пару раз писали какие-то длинные сообщения типа «Илья, по результатам нашего звонка имею сообщить следующее... блаблабла». Но круче всего оказалась девушка, которая, видимо, искала какого-то священника и по ошибке написала мне о своих проблемах и переживаниях, и спросила, какие молитвы надо читать. Я не нашёл ничего лучше, чем посоветовать ей обратиться к психологу.
Хорошо, что я не Саша.
Обычно там просто какие-то приветы и удивления типа «Ого, Илья, это ты?», пару раз писали какие-то длинные сообщения типа «Илья, по результатам нашего звонка имею сообщить следующее... блаблабла». Но круче всего оказалась девушка, которая, видимо, искала какого-то священника и по ошибке написала мне о своих проблемах и переживаниях, и спросила, какие молитвы надо читать. Я не нашёл ничего лучше, чем посоветовать ей обратиться к психологу.
Хорошо, что я не Саша.
Ого, кто-то два с половиной месяца назад выложил на гитхаб по крайней мере часть исходников снапчата. Сейчас они уже удалены в результате DMCA-жалобы Snap Inc. (но конечно их уже успели скопировать).
https://motherboard.vice.com/en_us/article/ywkqew/snapchat-code-leaked-online-github-removed?utm_source=mbtwitter
https://motherboard.vice.com/en_us/article/ywkqew/snapchat-code-leaked-online-github-removed?utm_source=mbtwitter
Инстаграм не стал дожидаться, пока Apple выкатит на iOS функциональность ограничения времени зависания в аппах, и запускает аналогичную сам.
Вполне вероятно, эта фича потом перейдёт в приложение Фейсбука. Ну и конечно красивый ход во всех отношениях — Инстаграм предлагает уведомление о превышении лимита, а не блокировку приложения и необходимость совершать какие-то действия.
Вполне вероятно, эта фича потом перейдёт в приложение Фейсбука. Ну и конечно красивый ход во всех отношениях — Инстаграм предлагает уведомление о превышении лимита, а не блокировку приложения и необходимость совершать какие-то действия.
Если вашего макбука про топовой конфигурации тоже не хватает, чтобы комфортно сидеть в слэке, появилась консольная альтернатива!
Очень клёвый формат — «Что нового в PHP 7.3 за 30 секунд в виде диффов».
https://www.tomasvotruba.cz/blog/2018/08/16/whats-new-in-php-73-in-30-seconds-in-diffs/
https://www.tomasvotruba.cz/blog/2018/08/16/whats-new-in-php-73-in-30-seconds-in-diffs/
По сравнению с этим хаком считаю, что у нас нет вообще никакого хардкода в проекте.
https://twitter.com/_inside/status/1035319938641276928
https://twitter.com/_inside/status/1035319938641276928
Twitter
Guilherme Rambo
The Apple Watch pride face is hardcoded to not show up if the paired iPhone is using the Russian locale
Менеджмент спецпроектов
Наши коммерческие спецпроекты — это микропроекты с очень коротким жизненным циклом: они разрабатываются, запускаются, какое-то время работают и закрываются.
Наши спецпроекты бывают простые в разработке и сложные, чаще всего это определяется сложностью бэкенда. И в спецпроектах любого типа и уровня сложности мы иногда косячим. Бывает, что успеваем поправить, и никто не замечает, а бывает и так, что приходится идти к клиенту и извиняться за свой промах. Из своего опыта мы выделили несколько правил, которые, я надеюсь, помогут нам (и вам) избежать некоторых проблем.
1. Не браться за проект, если времени не хватает, а дедлайн несдвигаемый. Иначе может быть так, что вы будете запускаться с серьёзными багами — отменить запуск невозможно, а ответственность слишком большая.
2. Полностью логгировать все присылаемые пользователем данные — регистрационные, ответы, клики, в общем всё, что можно потом использовать в случае, если данные в основном хранилище пропадут или будут испорчены. Однажды мы очистили хранилище на продакшене после запуска коммерческого спецпроекта, даже просто лог всех POST-запросов нас бы спас.
3. Не лениться прописывать все исключения и логгировать все ошибки и исключительные ситуации. Да, это одноразовый код. Нет, не надо экономить время на этом.
4. При запуске спецпроекта обязательно в рабочем режиме должен быть кто-то из разработчиков — следить за логами, ошибками и багрепортами. Однажды мы запустились в выходной без дежурного разработчика, считая, что всё достаточно протестировано. Это был тяжёлый опыт.
5. Прописывание универсальных чек-листов для запуска и окончания спецпроекта: очистить тестовые данные, проверить шериг в соцсети, прекратить приём заявок и так далее — ведь нельзя ничего пропустить.
6. У каждого проекта должен быть только один ответственный, но не для того, чтобы повесить всех собак на него в случае промаха, а для того, чтобы не было ситуаций типа «я думал, что ты это проконтролируешь».
7. Да, это маленькие проекты и темпы их разработки сильно отличаются («в такие дни я деплою на продакшн по 50 раз в сутки»), но это не значит, что моно ограничиться мессенджером для фиксирования задач — нужно вести список в Jira, Trello или хотя бы в гугл доке — чтобы ничего не потерялось, потому что каждый запуск нового минипроекта — это жара.
Наши коммерческие спецпроекты — это микропроекты с очень коротким жизненным циклом: они разрабатываются, запускаются, какое-то время работают и закрываются.
Наши спецпроекты бывают простые в разработке и сложные, чаще всего это определяется сложностью бэкенда. И в спецпроектах любого типа и уровня сложности мы иногда косячим. Бывает, что успеваем поправить, и никто не замечает, а бывает и так, что приходится идти к клиенту и извиняться за свой промах. Из своего опыта мы выделили несколько правил, которые, я надеюсь, помогут нам (и вам) избежать некоторых проблем.
1. Не браться за проект, если времени не хватает, а дедлайн несдвигаемый. Иначе может быть так, что вы будете запускаться с серьёзными багами — отменить запуск невозможно, а ответственность слишком большая.
2. Полностью логгировать все присылаемые пользователем данные — регистрационные, ответы, клики, в общем всё, что можно потом использовать в случае, если данные в основном хранилище пропадут или будут испорчены. Однажды мы очистили хранилище на продакшене после запуска коммерческого спецпроекта, даже просто лог всех POST-запросов нас бы спас.
3. Не лениться прописывать все исключения и логгировать все ошибки и исключительные ситуации. Да, это одноразовый код. Нет, не надо экономить время на этом.
4. При запуске спецпроекта обязательно в рабочем режиме должен быть кто-то из разработчиков — следить за логами, ошибками и багрепортами. Однажды мы запустились в выходной без дежурного разработчика, считая, что всё достаточно протестировано. Это был тяжёлый опыт.
5. Прописывание универсальных чек-листов для запуска и окончания спецпроекта: очистить тестовые данные, проверить шериг в соцсети, прекратить приём заявок и так далее — ведь нельзя ничего пропустить.
6. У каждого проекта должен быть только один ответственный, но не для того, чтобы повесить всех собак на него в случае промаха, а для того, чтобы не было ситуаций типа «я думал, что ты это проконтролируешь».
7. Да, это маленькие проекты и темпы их разработки сильно отличаются («в такие дни я деплою на продакшн по 50 раз в сутки»), но это не значит, что моно ограничиться мессенджером для фиксирования задач — нужно вести список в Jira, Trello или хотя бы в гугл доке — чтобы ничего не потерялось, потому что каждый запуск нового минипроекта — это жара.