Как стать автором
Обновить
65
0
Адель Файзрахманов @Adelf

Пользователь

Отправить сообщение

Что стоит знать при переходе на Mac

Время на прочтение9 мин
Количество просмотров92K

Вчера на Хабре вызвал шумиху пост об ужасных неудобствах Mac. В комментариях много было сказано о неинтуитивности macOS: мол, зачастую без гугления не поймёшь, как что-то сделать. И даже не узнаешь, что это вообще возможно сделать. И всё это значит, что с UX что-то не так.

Тут возникает вопрос «а поняли бы мы Windows без гугления, если бы не были знакомы с ней с детства?» Но я хочу не ввязываться в бесконечные споры «какая ОС лучше» а подойти конструктивнее. Действительно, при переходе с Windows возникает ряд неинтуитивных моментов. И чтобы при этом не приходилось гуглить кучу разных вопросов или читать длиннющие пользовательские руководства, я решил описать в одном тексте самые главные вещи, которые приходят мне в голову.

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

Читать далее
Всего голосов 147: ↑130 и ↓17+151
Комментарии403

Flipper Zero — как выйти на Кикстартер сидя на карантине на даче

Время на прочтение7 мин
Количество просмотров75K
Flipper Zero крупным планом

Flipper Zero — проект карманного мультитула для хакеров в формфакторе тамагочи, который я разрабатываю с друзьями. Предыдущие посты [1],[2],[3]

Я до сих пор не могу в это поверить. Это самая волнительная статья, которую я когда-либо писал. Мы прошли огромный путь: два раза полностью меняли электронику Флиппера, выживали при блекауте и закрытых границах из-за коронавируса, переносили компанию из Гонконга в США, с трудом прошли все проверки и верификации и НАКОНЕЦ ГОТОВЫ К ЗАПУСКУ ФЛИППЕРА НА КИКСТАРТЕРЕ! Сейчас мне осталось только нажать кнопку «Старт».

Внутри я расскажу: через что нам пришлось пройти, что нужно для выхода на Кикстартер, как мы за две недели зарегистрировали компанию в США и открыли банковский счет, как Stripe отказывался подтверждать нашу компанию и что будет дальше.
Читать дальше →
Всего голосов 220: ↑216 и ↓4+294
Комментарии221

Пора обновить ваш монитор

Время на прочтение16 мин
Количество просмотров177K

Иллюстрация: Юлия Прокопова

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

Поэтому я оптимизирую настройки, чтобы показывать действительно, действительно хорошие буквы. Для этого необходим хороший монитор. Не просто нужен, а ОБЯЗАТЕЛЕН. А под «хорошим» я имею в виду настолько хороший, насколько это возможно. Это мои мысли, основанные на моём собственном опыте того, какие мониторы лучше подходят для программирования.
Читать дальше →
Всего голосов 142: ↑109 и ↓33+115
Комментарии991

Rutracker включил eSNI. Конец эпохи DPI и конец блокировок

Время на прочтение4 мин
Количество просмотров202K


Несмотря на желтый заголовок, дальше будет не желтая статья. Всех нас (я надеюсь именно здесь я наконец-таки смогу сказать от всего сообщества) уже достали действия Роскомнадзора. А также его постоянное появление в рекомендованном на хабре. Поэтому эта новость вам понравится. Хоть что-то важное. Новость кстати еще от декабря 2018.
Читать дальше →
Всего голосов 205: ↑196 и ↓9+187
Комментарии361

Docker + Laravel + RoadRunner = ❤

Время на прочтение8 мин
Количество просмотров31K

picture


Данный пост написан по заявкам трудящихся, которые с завидной периодичностью спрашивают о том "Как запустить Illuminate / Symfony / MyOwnPsr7 приложение в докере". Давать ссылку на ранее написанный пост уже не хочется, так как взгляды относительно того, как следует решать поставленную задачу, довольно сильно изменились.


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


В качестве приложения так же буду использовать Laravel, так как он мне наиболее знаком и довольно широко распространен. Адаптировать под другие PSR-7-based фреймворки/компоненты возможно, но этот рассказ не про это.
Читать дальше →
Всего голосов 24: ↑23 и ↓1+22
Комментарии10

Началось голосование за доклады секции Backend на юбилейном DevConfX, который пройдет 21-22 июня в Москве

Время на прочтение1 мин
Количество просмотров1.1K
Юбилейный DevConfX пройдет 21-22 июня в Москве. Как всегда — Вы решаете, кто попадет в программу секции Backend — голосуйте за интересные доклады, список заявок под катом.

Читать дальше →
Всего голосов 23: ↑22 и ↓1+21
Комментарии0

Асинхронный PHP и история одного велосипеда

Время на прочтение12 мин
Количество просмотров29K

После выхода PHP7 появилась возможность сравнительно небольшой ценой писать долгоживущие приложения. Для программистов стали доступны такие проекты, как prooph, broadway, tactician, messenger, авторы которых берут на себя решение наиболее частых проблем. Но что если сделать небольшой шаг вперёд, углубившись в вопрос?


Попробуем разобрать судьбу ещё одного велосипеда, который позволяет реализовать Publish/Subscribe приложение.

Читать дальше →
Всего голосов 36: ↑35 и ↓1+34
Комментарии44

Повышаем продуктивность на GitHub: советы для новичков и не только

Время на прочтение3 мин
Количество просмотров27K


От переводчика: публикуем для вас статью Даррена Барнса, который делится своим опытом работы с GitHub. Его советы будут полезны, в первую очередь, новичкам. Возможно, и опытный кодер найдет что-то для себя.

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

Сервис разрабатывался программистами для программистов. Его создатели добавили большое количество очень удобных инструментов, которые повышают производительность. Но, к сожалению, не все разработчики об этих инструментах знают. А кто знает — не всегда использует.
Читать дальше →
Всего голосов 66: ↑62 и ↓4+58
Комментарии5

Вам действительно нужны entrust или laravel-permission для реализации вашей авторизации?

Время на прочтение3 мин
Количество просмотров14K
«Так… мне нужна простая авторизация. Какая-нибудь админская роль, и может роль редактора/модератора. Сейчас погуглим. О! Для laravel уже есть готовые пакеты! zizaco/entrust, spatie/laravel-permission и другие! Давай выберем какой-нибудь!»

Примерно так все и происходит. Потом миграция пакета добавляет в базу 5 табличек для хранения ролей, пермишенов и их отношений. Все правила авторизации, такие как роли 'admin' и 'editor' могут делать 'edit posts', хранятся в этих таблицах. Обычно в проекте много копий базы данных. Копии разработчиков, тестовая база(ы) и продакшен. В итоге все эти правила авторизации вынуждены синхронизироваться между базами данных.

Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии12

Технологии технологиями, а главное — код

Время на прочтение3 мин
Количество просмотров11K
Так зачем же мы пишем этот плохой код, который изо дня в день замедляет нашу работу?
Потому, что мы тогда вынуждены были сделать что-то быстрее!
Я оставлю вас наедине с это логической несостыковкой…
На одной из лекций Роберта Мартина

У нас на DevConf будет не самый обычный мастер-класс. Там не будут рассказывать о новых технологиях или хайлоаде. Будут говорить о коде. Хорошем, плохом. Называется он Принципы хорошего кода на реальных примерах. Расспросим немного автора.

Кто ты и чем занимаешься?

Меня зовут Адель. Я фрилансер. Обычно занимаюсь backend-разработкой. Еще иногда пишу и дописываю плагины для PhpStorm. Из популярных Laravel plugin и .env files support.

Что тебя побудило на такой мастер-класс?

Удрученность текущей ситуации в отрасли. Все одержимы технологиями. В последнее время облачными. Читаешь вакансию, перечисляют используемые технологии, необходимый опыт (который почти никогда, на самом деле, не нужен). Очень круто звучит на собеседованиях. Приходишь на проект. Смотришь на код… и он печально говорит тебе: «Пристрели меня». Смотришь глубже и понимаешь всю его печаль. Он смертельно болен. Как раковые опухоли разрослись классы, которые кто-то, словно в шутку, назвал контроллерами. Как метастазы везде расползлись копипасты. На психологию кода давит то, что он лишь жалкая обвязка для крутых облачных технологий. Но пристрелить дорого.
Читать дальше →
Всего голосов 41: ↑37 и ↓4+33
Комментарии55

DevConf 2017: Эффективное управление WEB-проектами — заканчивается голосование за доклады

Время на прочтение2 мин
Количество просмотров2.9K
Добрый день, коллеги! В этом году мы возрождаем направление PMDays — ведущие эксперты делятся накопленным опытом всего за 1 день, можно узнать много нового.

На текущий момент на секцию «Управление» конференции DevConf 2017 пришло 11 заявок на доклады, 1 мастер-класс и 1 митап.

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

Алекс Чистяков. Git in Sky.
Доклад  о выборе языка программирования. А ведь выбор платформы — это то, что на долгие годы может определить успех или проблемы вашего проекта.

Евгений Кузовлев. Smartmedicina.ru.
Расскажет, как избежать хотя бы части граблей при переходе из стадии разработки к стадии поддержки и развития. Ох, если бы во всех проектах об этом думали
Читать дальше →
Всего голосов 35: ↑34 и ↓1+33
Комментарии2

17 июня в Москве пройдет DevConf 2017

Время на прочтение1 мин
Количество просмотров4.8K
image17 июня в Москве пройдет DevConf 2017 — большая конференция для веб-разработчиков. Каждый год собирается более тысячи участников, чтобы рассказать и узнать обо всем самом новом в мире программирования для веб.

Будет большая тусовка, доклады будут читать опытные специалисты по Go, MySQL, PostgreSQL, PHP, Javascript и мобильным платформам.
Читать дальше →
Всего голосов 61: ↑56 и ↓5+51
Комментарии7

YiiConf 2017, Москва 16 июня

Время на прочтение2 мин
Количество просмотров4.9K

Этим летом, 16 Июня 2017, в Москве пройдёт конференция веб-разработчиков, посвящённая PHP фреймворку Yii.



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

Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Комментарии5

Эффективное использование Github

Время на прочтение13 мин
Количество просмотров123K

Github — важная часть жизни современного разработчика: он стал стандартом для размещения opensource-проектов. В «2ГИС» мы используем гитхаб для разработки проектов web-отдела и хостинга проектов с открытым кодом.

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


Содержание



Читать дальше →
Всего голосов 149: ↑148 и ↓1+147
Комментарии38

Разумное АОП для поклонников IOC-контейнеров

Время на прочтение8 мин
Количество просмотров19K
Я очень не люблю boilerplate. Такой код скучно писать, уныло сопровождать и модифицировать. Совсем мне не нравится, когда тот самый bolierplate перемешан с бизнес-логикой приложения. Очень хорошо проблему описал krestjaninoff еще 5 лет назад. Если вы не знакомы с парадигмой AOP, прочитайте материал по ссылке, он раскрывает тему.

Как на момент прочтения этой статьи, так и сейчас меня не устраивают ни PostSharp ни Spring. Зато за прошедшее время в .NET появились другие инструменты, позволяющие вытащить «левый» код из бизнес-логики, оформить его отдельными переиспользуемыми модулями и описать декларативно, не скатываясь при этом в переписывание результирующего IL и прочую содомию.

Речь пойдет о проекте Castle.DynamicProxy и его применении в разработке корпоративных приложений.
Следуй за белым кроликом
Всего голосов 11: ↑11 и ↓0+11
Комментарии29

Гексагональная архитектура

Время на прочтение31 мин
Количество просмотров168K
На недавнем Laracon NYC я читал доклад о гексагональной архитектуре. Несмотря на то, что я получил позитивную реакцию слушателей, мне кажется, что остались люди, которые хотели бы получить чуть более полное представление о том, что это такое. Разумеется, с примерами. Это моя попытка расширить тот доклад.

  1. Видео с доклада
  2. Слайды


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



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



Гексагональная архитектура, ни в коем случае не новый подход к разработке с применением фреймворков. Напротив, это всего лишь обобщение «лучших практик» — практик новых и старых. Я обернул эти слова в кавычки, чтобы люди не воспринимали их совсем буквально. Лучшие практики, которые работают для меня, могут не работать для вас — все зависит от задачи и преследуемых целей.



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


Читать дальше →
Всего голосов 20: ↑16 и ↓4+12
Комментарии16

«Never say never» или Работаем с таймзонами правильно

Время на прочтение9 мин
Количество просмотров75K
Эта статья рассказывает о проблемах, которые поджидают программиста, работающего с часовыми поясами. В теории, вроде, всё хорошо, просто и понятно, но жизнь — штука сложная, и на практике, порой, возникают совершенно неожиданные ситуации.

TL;DR: Работа с таймзонами — это боль и унижение. Никогда не работайте с таймзонами!

Итак, все кругом твердят вам, что при получении времени от пользователя нужно сразу же переводить его в UTC, работать со временем нужно только в UTC и хранить время тоже нужно строго в UTC. Совет, на первый взгляд, выглядит разумным, и следование ему делает вашу жизнь проще… Если только ваша программа не предполагает сложной работы с датами. Записать в базу данных дату и время регистрации пользователя на сайте? Сохранить время отправки сообщения или дату создания заказа в интернет-магазине? Вывести сообщение в лог с указанием даты-времени? Используйте UTC и всё будет в порядке, можете даже не читать эту статью дальше. Любое текущее время можно совершенно спокойно конвертировать в UTC и забыть о проблемах. Но что, если мы хотим работать с временем в будущем? Или в прошлом? Например, если мы пишем сервис календаря, или сервис для отложенной отправки сообщений?

Читать дальше →
Всего голосов 84: ↑79 и ↓5+74
Комментарии103

Готовим ASP.NET 5: Continuous Deployment с Docker и Tutum

Время на прочтение4 мин
Количество просмотров9.3K
В этой статье я расскажу, как сделать обеспечение непрерывного развертывания (Continuous Deployment) для ASP.NET 5 (Vnext) приложения на базе Docker контейнера, Tutum, сервера или облака.

При изучении материалов по Docker наибольшее количество вопросов у меня вызвало развертывание моего приватного репозитория на сервер и автоматизация этого процесса, причем сделать это хотелось не только решением для Azure, но иметь такую возможность для Digital Ocean или Vscale.
Принципиальная схема

Читать дальше →
Всего голосов 14: ↑13 и ↓1+12
Комментарии4

Как писать тестируемый код

Время на прочтение17 мин
Количество просмотров87K
image


Если вы программист (или чего хуже архитектор), то можете ли вы ответить на такой простой вопрос: как писать НЕ тестируемый код? Призадумались? Если с трудом можете назвать хотя бы 3 способа добиться не тестируемого кода, то статья для вас.

Многие скажут: а зачем мне знать, как писать не тестируемый код, плохому хочешь меня научить? Отвечаю: если знать типичные паттерны не тестируемого кода, то, если они есть, можно легко увидеть их в своем проекте. А, как известно, признание проблемы — уже половина пути к лечению. Также в статье дается ответ, как собственно осуществляется такое лечение. Прошу под кат.
Читать дальше →
Всего голосов 72: ↑63 и ↓9+54
Комментарии77

Про модель, логику, ООП, разработку и остальное

Время на прочтение29 мин
Количество просмотров109K
Часто ли вы задумываетесь – почему что-то сделано так или иначе? Почему у вас микросервисы или монолит, двухзвенка или трехзвенка? Зачем вам многослойная архитектура и сколько у вас вообще слоев? Что такое бизнес-логика, логика приложения, презентационная логика и почему все так разделено? Посмотрите на свое приложение – как оно вообще спроектировано? Что в нем и где находится, почему это сделано именно так?
Потому что так написано в книжках или так говорят авторитетные личности? Какие ВАШИ проблемы решает тот или иной подход/паттерн?
Даже то, что на первый взгляд кажется очевидным, порой бывает очень сложно объяснить. А иногда, в попытке объяснения, приходит понимание того, что очевидные мысли были и вовсе ошибочны.
Давайте попробуем взять какой-нибудь пример и изучить на нем эти вопросы со всех сторон.
Читать дальше →
Всего голосов 55: ↑51 и ↓4+47
Комментарии34
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Казань, Татарстан, Россия
Дата рождения
Зарегистрирован
Активность