В среду утром проснулся, а интернета нет. Перезагрузил роутер - не помогло. Позвонил в Ростелеком. Тамошний робот безмятежным женским голосом сообщил, что о проблеме уже знают и делают всё возможное. К следующему утру обещают починить.
Я-то в курсе, что время они себе дают с запасом. И, скорее всего, починят раньше. Но всё равно без инета плохо. Я схватился за планшет. А там инет ещё с ночи отсутствует. Потому что угроза атаки БПЛА.
Что же, ладно. Пошел завтракать без инета. А потом ещё и поработал без инета. Без него я просто в Git ничего не могу выложить. А работать на домашнем полигоне мне никто не запрещает.
И мне неожиданно понравилось. Тишина, никто не отвлекает. Телега не тренькает, почта не проверяется, новости не открываются. Красота. Даже продуктивность повысилась. Я успел гораздо больше, чем за обычное утро.
Вспомнилось детство. Придёшь из школы, пообедаешь и рыбок покормишь. А потом разложишь учебники, тетради и делаешь уроки. Отвлекающие моменты отсутствуют как класс. Ни телефона, ни, прости Господи, инета. Только тишина и сосредоточенность. Через это задачи делаются быстрее и осознаннее.
А задачи этим утром были простенькие. Например, сделал на таксишном сайте всплывающее предупреждение об использовании Cookie. Так требует закон о защите персональных данных. Пресловутый ФЗ 152. С тридцатого мая повышаются штрафы за его нарушение. Поэтому тема актуальная.
Вообще, я считаю, что такие всплывающие окна мешают просмотру контента. А потому являются злом. Я должен был бороться с этим злом. А пришлось примкнуть к нему. Потому что бизнес не хочет платить штрафы. И я его понимаю.
Так вот, сделал я всплывающее окно и проверил работу в разных браузерах. Везде работает. Кроме браузера Brave. В нём моё окно отсутствует. Как корова языком слизала.
Стал разбираться и вот, что выяснил. Контейнер со своим окном я обозвал cookieWarn. А Brave отказывается показывать блоки с подобными именами: cookieWarn, cookieAlert и т.д. Просто скрывает через CSS display: none.
Вообще, этот браузер известен своим блокировщиком рекламы. Оказывается, он блокирует не только рекламу, но и предупреждения о куках. Причём, совершенно незатейливо. Я, конечно, эту блокировку легко обошел. Просто обозвал окно по-другому. Нормально так примкнул к злу. Качественно.
Немедленно вспомнилась байка-поговорка, над которой смеялись ещё в универе. Что если бы строители строили дома также, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию.
Ближе к обеду пришла СМС об отбое угрозы воздушной атаки. А инет на планшете так и не появился. Я решил прогуляться до салона связи в ближайшем ТЦ. Там меня проконсультировала симпатичная девочка с пирсингом на нижней губе. Два металлических колечка были очень похожи на клыки. Я представил себе, какую боль ей пришлось терпеть. И даже поёжился. Может, там анестезию какую-то делают?
Так вот, оказалось, что нужно всего лишь... перезагрузить планшет. Мы перезагрузили, инет тут же появился. Вспомнилась ещё одна байка из универа. Что если у вас заглохла машина, то нужно выйти из неё и зайти снова. Как же я сам не сообразил? Ладно, в следующий раз соображу. Зато погулял и с девочкой пообщался )
Я-то в курсе, что время они себе дают с запасом. И, скорее всего, починят раньше. Но всё равно без инета плохо. Я схватился за планшет. А там инет ещё с ночи отсутствует. Потому что угроза атаки БПЛА.
Что же, ладно. Пошел завтракать без инета. А потом ещё и поработал без инета. Без него я просто в Git ничего не могу выложить. А работать на домашнем полигоне мне никто не запрещает.
И мне неожиданно понравилось. Тишина, никто не отвлекает. Телега не тренькает, почта не проверяется, новости не открываются. Красота. Даже продуктивность повысилась. Я успел гораздо больше, чем за обычное утро.
Вспомнилось детство. Придёшь из школы, пообедаешь и рыбок покормишь. А потом разложишь учебники, тетради и делаешь уроки. Отвлекающие моменты отсутствуют как класс. Ни телефона, ни, прости Господи, инета. Только тишина и сосредоточенность. Через это задачи делаются быстрее и осознаннее.
А задачи этим утром были простенькие. Например, сделал на таксишном сайте всплывающее предупреждение об использовании Cookie. Так требует закон о защите персональных данных. Пресловутый ФЗ 152. С тридцатого мая повышаются штрафы за его нарушение. Поэтому тема актуальная.
Вообще, я считаю, что такие всплывающие окна мешают просмотру контента. А потому являются злом. Я должен был бороться с этим злом. А пришлось примкнуть к нему. Потому что бизнес не хочет платить штрафы. И я его понимаю.
Так вот, сделал я всплывающее окно и проверил работу в разных браузерах. Везде работает. Кроме браузера Brave. В нём моё окно отсутствует. Как корова языком слизала.
Стал разбираться и вот, что выяснил. Контейнер со своим окном я обозвал cookieWarn. А Brave отказывается показывать блоки с подобными именами: cookieWarn, cookieAlert и т.д. Просто скрывает через CSS display: none.
Вообще, этот браузер известен своим блокировщиком рекламы. Оказывается, он блокирует не только рекламу, но и предупреждения о куках. Причём, совершенно незатейливо. Я, конечно, эту блокировку легко обошел. Просто обозвал окно по-другому. Нормально так примкнул к злу. Качественно.
Немедленно вспомнилась байка-поговорка, над которой смеялись ещё в универе. Что если бы строители строили дома также, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию.
Ближе к обеду пришла СМС об отбое угрозы воздушной атаки. А инет на планшете так и не появился. Я решил прогуляться до салона связи в ближайшем ТЦ. Там меня проконсультировала симпатичная девочка с пирсингом на нижней губе. Два металлических колечка были очень похожи на клыки. Я представил себе, какую боль ей пришлось терпеть. И даже поёжился. Может, там анестезию какую-то делают?
Так вот, оказалось, что нужно всего лишь... перезагрузить планшет. Мы перезагрузили, инет тут же появился. Вспомнилась ещё одна байка из универа. Что если у вас заглохла машина, то нужно выйти из неё и зайти снова. Как же я сам не сообразил? Ладно, в следующий раз соображу. Зато погулял и с девочкой пообщался )
Вчера написал один заказчиков, для которого я когда-то давно делал сайт. Переслал мне скрин письма от Яндекс Вебмастера. В нём говорится, что за неделю страницы сайта «выросли на 383%». И что добавлен блог.
Очень интересно. Что значит страницы выросли? Если не количество, то что? Просмотры? И откуда блог? Заказчик говорит, что добавлял. Вот и беспокоится. Может, хакнули сайт?
Я тоже забеспокоился. Зашел на вебмастер. Не увидел никаких новых страниц и, тем более, блога. О чём же тогда письмо?
Ещё раз посмотрел скрин. Ну, конечно! Написано же: пересказ от нейрофильтра YaGPT. Значит, у меня на руках не само письмо. Ох уж эти нейросети. Вечно что-то напутают.
Написал заказчику. Попросил проверить письмо. Есть ли там про блог? Заказчик тоже вздохнул с облегчением. Обещал проверить и ответить. На вторые сутки ещё не ответил. Делаю вывод, что всё в порядке.
А ещё вывод, что не стоит полагаться на нейросети. Иначе можно стать седым раньше времени.
Очень интересно. Что значит страницы выросли? Если не количество, то что? Просмотры? И откуда блог? Заказчик говорит, что добавлял. Вот и беспокоится. Может, хакнули сайт?
Я тоже забеспокоился. Зашел на вебмастер. Не увидел никаких новых страниц и, тем более, блога. О чём же тогда письмо?
Ещё раз посмотрел скрин. Ну, конечно! Написано же: пересказ от нейрофильтра YaGPT. Значит, у меня на руках не само письмо. Ох уж эти нейросети. Вечно что-то напутают.
Написал заказчику. Попросил проверить письмо. Есть ли там про блог? Заказчик тоже вздохнул с облегчением. Обещал проверить и ответить. На вторые сутки ещё не ответил. Делаю вывод, что всё в порядке.
А ещё вывод, что не стоит полагаться на нейросети. Иначе можно стать седым раньше времени.
Взялся за редизайн сайта мастерской по изготовлению манекенов для обучения кунг-фу. На китайском такой манекен называют чонгом. Отсюда выбор домена.
Сайту уже больше 12 лет. Он устарел и нуждается в адаптивной версии. От прежнего варианта оставлю только фон с текстурой дерева под старинный китайский вайб. И логотип в виде чонга на поперечных рессорах.
Это, к стати, не единственная модель. Есть ещё тренажёры на платформе в стальном стакане, подвесные на стену, "пауки" и т.д. Всё это может изготовить хозяин мастерской Дмитрий Васильевич Затуло.
С ним я знаком лично и, в своё время, много у него тренировался. Качество чонгов - отличное. Все конструкции надёжные, из натурального дерева и стали.
Скажу по секрету, что этот сайт в 2013 году я сделал в качестве оплаты за чонг. Он стоял у меня на лоджии. Классная штука. Помогает отрабатывать технику и набивать удар. Особенно хорошо с джутовыми мишенями.
Словом, я искренне надеюсь, что новый сайт понравится владельцу и поможет в продвижении мастерской.
Сайту уже больше 12 лет. Он устарел и нуждается в адаптивной версии. От прежнего варианта оставлю только фон с текстурой дерева под старинный китайский вайб. И логотип в виде чонга на поперечных рессорах.
Это, к стати, не единственная модель. Есть ещё тренажёры на платформе в стальном стакане, подвесные на стену, "пауки" и т.д. Всё это может изготовить хозяин мастерской Дмитрий Васильевич Затуло.
С ним я знаком лично и, в своё время, много у него тренировался. Качество чонгов - отличное. Все конструкции надёжные, из натурального дерева и стали.
Скажу по секрету, что этот сайт в 2013 году я сделал в качестве оплаты за чонг. Он стоял у меня на лоджии. Классная штука. Помогает отрабатывать технику и набивать удар. Особенно хорошо с джутовыми мишенями.
Словом, я искренне надеюсь, что новый сайт понравится владельцу и поможет в продвижении мастерской.
Продолжаю работу над сайтом мастерской по изготовлению чонгов, т.е. манекенов для кунг-фу. Изображение чонга используется как логотип. Я отрисовал его заново. Старый был растровый и с поехавшей перспективой. Новый - векторный и хорошо масштабируется. Перспектива ближе к реальности.
По ходу работы захотелось добавить графики чтобы заполнить пустоту и сделать страницу интереснее. Нарисовал вид чонга сверху. Иллюстрация сделана с фото настоящего манекена. Её тоже прикладываю.
Кольца на торце бревна не концентрические, т.к. оно склеено из досок. Найти подходящее цельное бревно - сложная задача. Поверх текстуры дерева видно выжженную печать мастера.
На картинке часть макета главной страницы. Получается неплохо. Фотка чонга здесь скучновата. Зато её солнечная гамма очень красива и подходит по цвету.
Напомню, что я не настоящий дизайнер. По специальности я разработчик. А художником я становлюсь на досуге для души. Осваиваю Фигму, Криту, Инкскейп. Думаю, что прогресс в этом деле у меня есть.
По ходу работы захотелось добавить графики чтобы заполнить пустоту и сделать страницу интереснее. Нарисовал вид чонга сверху. Иллюстрация сделана с фото настоящего манекена. Её тоже прикладываю.
Кольца на торце бревна не концентрические, т.к. оно склеено из досок. Найти подходящее цельное бревно - сложная задача. Поверх текстуры дерева видно выжженную печать мастера.
На картинке часть макета главной страницы. Получается неплохо. Фотка чонга здесь скучновата. Зато её солнечная гамма очень красива и подходит по цвету.
Напомню, что я не настоящий дизайнер. По специальности я разработчик. А художником я становлюсь на досуге для души. Осваиваю Фигму, Криту, Инкскейп. Думаю, что прогресс в этом деле у меня есть.
Расширил авторизацию на сайте Такси 42 при помощи JWT-токена. Раньше для заказа приходилось каждый раз подтверждать номер телефона СМС-кодом. Теперь сайт научился запоминать пользователя.
Напомню, авторизация по телефону нужна для обратной связи с пассажиром. Например, для оповещения о поданном такси. С запоминанием номера сервис стал гораздо удобнее. Надеюсь, пользователи оценят.
А ещё переверстал форму заказа. Раньше чекбоксы с опциями были выведены прямо в форме. А опций у нас много: детское кресло, перевозка животных и т.д. На смартфоне приходилось скроллить чтобы добраться до кнопки заказа.
Я заменил чекбоксы кнопкой "Пожелания к заказу". Она открывает диалог выбора опций. Форма стала лаконичнее. Можно набирать адреса и сразу видеть изменение стоимости.
Кстати, ввод маршрута - это следующая тема для доработки. Планируется добавить карту для выбора адреса прямо на ней. Для многих это удобнее. Особенно для молодёжи. Она часто не ориентируется в адресах, зато умеет находить нужный дом на карте.
Напомню, авторизация по телефону нужна для обратной связи с пассажиром. Например, для оповещения о поданном такси. С запоминанием номера сервис стал гораздо удобнее. Надеюсь, пользователи оценят.
А ещё переверстал форму заказа. Раньше чекбоксы с опциями были выведены прямо в форме. А опций у нас много: детское кресло, перевозка животных и т.д. На смартфоне приходилось скроллить чтобы добраться до кнопки заказа.
Я заменил чекбоксы кнопкой "Пожелания к заказу". Она открывает диалог выбора опций. Форма стала лаконичнее. Можно набирать адреса и сразу видеть изменение стоимости.
Кстати, ввод маршрута - это следующая тема для доработки. Планируется добавить карту для выбора адреса прямо на ней. Для многих это удобнее. Особенно для молодёжи. Она часто не ориентируется в адресах, зато умеет находить нужный дом на карте.
Добавил карту на сайт Такси 42. Речь пока только про десктоп. Раньше ввести адреса для заказа такси можно было только текстом. А теперь добавилась опция ткнуть их на карте. При этом, сайт тут же проложит маршрут.
Пока непонятно насколько удобно сделано переключение между адресами. Первый клик по карте назначает адрес "Откуда". Фокус переходит в поле "Куда", и все последующие клики по карте выбирают уже его. Чтобы вернуться к адресу "Откуда" нужно вручную перевести в него фокус.
Будем смотреть, удобен ли такой способ пользователям. У Яндекса, например, сделано по-другому. Там кликнуть на карте можно только адрес "Откуда". А адрес назначения вводится текстом.
Для работы с картой используется библиотека Leaflet и подложка 2ГИС. На очереди версия для мобильных устройств.
Пока непонятно насколько удобно сделано переключение между адресами. Первый клик по карте назначает адрес "Откуда". Фокус переходит в поле "Куда", и все последующие клики по карте выбирают уже его. Чтобы вернуться к адресу "Откуда" нужно вручную перевести в него фокус.
Будем смотреть, удобен ли такой способ пользователям. У Яндекса, например, сделано по-другому. Там кликнуть на карте можно только адрес "Откуда". А адрес назначения вводится текстом.
Для работы с картой используется библиотека Leaflet и подложка 2ГИС. На очереди версия для мобильных устройств.
Мне понадобился узор для заголовков на сайте мастерской чонгов. Т.к. тема китайская, дизайн нужен с китайскими мотивами. Я собрал пачку референсов.
Оказалось, что в узоры в китайской культуре глубоко символичны. Круг изображает бесконечность и совершенство. Квадрат - землю и стабильность. Узел созвучен достижению желаемого самым счастливым образом.
Мне нужен был лёгкий узор, который разнообразил бы визуал, но не отвлекал внимание. Вряд-ли посетители сайта мастерской будут разбирать его значение. Я скомбинировал самые простые фигуры, перечисленные выше: круг, квадрат и узел.
Получился вот такой рисунок. Я старался сделать его похожим на чонг. Вид сверху. По центру бревно, а по бокам рама и рессоры. Красиво и весьма символично ) Надеюсь, хозяину сайта тоже понравится.
Оказалось, что в узоры в китайской культуре глубоко символичны. Круг изображает бесконечность и совершенство. Квадрат - землю и стабильность. Узел созвучен достижению желаемого самым счастливым образом.
Мне нужен был лёгкий узор, который разнообразил бы визуал, но не отвлекал внимание. Вряд-ли посетители сайта мастерской будут разбирать его значение. Я скомбинировал самые простые фигуры, перечисленные выше: круг, квадрат и узел.
Получился вот такой рисунок. Я старался сделать его похожим на чонг. Вид сверху. По центру бревно, а по бокам рама и рессоры. Красиво и весьма символично ) Надеюсь, хозяину сайта тоже понравится.
Во время теста нового мобильного приложения для Такси 42 нашел неприятную особенность. Иногда не приходят оповещения о том, что автомобиль подъехал и ожидает. Это случается на слабых устройствах с небольшим количеством памяти. Если одновременно запустить что-то тяжелое, то из-за нехватки ресурсов Андроид "убивает" сервис, следящий за статусом заказа.
В моих тестах этим "тяжёлым" было Яндекс Go. Не секрет, что многие часто запускают несколько приложений такси стремясь уехать подешевле или побыстрее. Я повторял это поведение на стареньком телефоне всего с двумя гигабайтами оперативки. Он не выдерживал нагрузки и принудительно закрывал работающие в фоне приложения. Включая и наше.
Я стал дебажить библиотеку Notifee, которую использую для фоновой работы с оповещениями. Пришлось залезть к ней "под капот" в нативный Java-код, хоть я и не особо силён в нём. Напомню, что я пишу на React Native.
Так вот, есть два режима, в которых можно стартовать сервис: START_STICKY и START_NOT_STICKY. В первом Андроид будет пытаться заново запустить его после принудительного завершения. А во втором - нет. Так вот, библиотека Notifee использует именно второй режим. И нет никакого способа повлиять на это через параметры или настройки.
Я встал перед дилеммой: форкать и модифицировать Notifee, либо вовсе от неё отказаться и переписать сервис на нативном модуле. Выбор пал на нативный модуль. Править чужой код не зная нюансов - такое себе занятие. Тем более, я за любой способ сделать приложение легче. А тут такая возможность избавиться от целой библиотеки. Заодно попрактикуюсь в написании кода на Java.
Я выкинул Notifee, переписал сервис и вернулся к тестам. START_STICKY помог, но не совсем. В особенно тяжелых случаях Андроид после рестарта сервиса тут же снова его "прибивал". На этот раз окончательно.
Исправить ситуацию могла бы только отмена экономии заряда. По умолчанию Андроид старается оптимизировать работу приложений, чтобы те поменьше тратили батарею. И в фоне закрывает их при первой возможности. Однако, для некоторых приложений оптимизацию можно отключить через настройки. Тогда Андроид не будет их трогать.
Беда в том, что приложение не может само себе отключить оптимизацию. Для этого оно должно запросить разрешение у пользователя. Так устроен Андроид. А просить человека отключить экономию батареи - это несколько нескромно. Лучше так не делать чтобы не оставить негативных эмоций.
Словом, на сегодня проблема решена на половину. Приложение старается перезапустить сервис оповещений после "убийства". Это получается не всегда, поэтому по прежнему сохраняется опасность пропустить оповещение о подъехавшей машине. Хорошо, что оно дублируется звонком от робота.
Хорошим решением было бы использовать push-уведомления вместо сервиса. Возможно, мы перейдём на них. Хотя, сейчас, в условиях ограничений мобильного интернета, всё равно не обойтись от дублирования оповещений звонком. Поэтому пока работаем в этом режиме и копим статистику.
В моих тестах этим "тяжёлым" было Яндекс Go. Не секрет, что многие часто запускают несколько приложений такси стремясь уехать подешевле или побыстрее. Я повторял это поведение на стареньком телефоне всего с двумя гигабайтами оперативки. Он не выдерживал нагрузки и принудительно закрывал работающие в фоне приложения. Включая и наше.
Я стал дебажить библиотеку Notifee, которую использую для фоновой работы с оповещениями. Пришлось залезть к ней "под капот" в нативный Java-код, хоть я и не особо силён в нём. Напомню, что я пишу на React Native.
Так вот, есть два режима, в которых можно стартовать сервис: START_STICKY и START_NOT_STICKY. В первом Андроид будет пытаться заново запустить его после принудительного завершения. А во втором - нет. Так вот, библиотека Notifee использует именно второй режим. И нет никакого способа повлиять на это через параметры или настройки.
Я встал перед дилеммой: форкать и модифицировать Notifee, либо вовсе от неё отказаться и переписать сервис на нативном модуле. Выбор пал на нативный модуль. Править чужой код не зная нюансов - такое себе занятие. Тем более, я за любой способ сделать приложение легче. А тут такая возможность избавиться от целой библиотеки. Заодно попрактикуюсь в написании кода на Java.
Я выкинул Notifee, переписал сервис и вернулся к тестам. START_STICKY помог, но не совсем. В особенно тяжелых случаях Андроид после рестарта сервиса тут же снова его "прибивал". На этот раз окончательно.
Исправить ситуацию могла бы только отмена экономии заряда. По умолчанию Андроид старается оптимизировать работу приложений, чтобы те поменьше тратили батарею. И в фоне закрывает их при первой возможности. Однако, для некоторых приложений оптимизацию можно отключить через настройки. Тогда Андроид не будет их трогать.
Беда в том, что приложение не может само себе отключить оптимизацию. Для этого оно должно запросить разрешение у пользователя. Так устроен Андроид. А просить человека отключить экономию батареи - это несколько нескромно. Лучше так не делать чтобы не оставить негативных эмоций.
Словом, на сегодня проблема решена на половину. Приложение старается перезапустить сервис оповещений после "убийства". Это получается не всегда, поэтому по прежнему сохраняется опасность пропустить оповещение о подъехавшей машине. Хорошо, что оно дублируется звонком от робота.
Хорошим решением было бы использовать push-уведомления вместо сервиса. Возможно, мы перейдём на них. Хотя, сейчас, в условиях ограничений мобильного интернета, всё равно не обойтись от дублирования оповещений звонком. Поэтому пока работаем в этом режиме и копим статистику.
Таксишный сайт атаковали боты. Они делают прямые заходы с IPv6 на главную страницу и проводят на ней от 5 до 20 сек. В первые дни они хаотично скроллили, затем кликали email в подвале и уходили. А теперь не кликают, только скроллят.
Посещаемость сайта небольшая. Не больше сотни в день, в основном из поиска. А теперь выросла кратно. Боты забили всю Метрику.
Это не DDoS. Заходов слишком мало для серьёзной нагрузки. Это прогрев поведенческих ботов, либо компрометация ПФ конкретно на нашем сайте.
Лучший способ борьбы — отключить IPv6. Живые люди почти не заходят с этиих адресов. Всё же, делать так не хочется. Для начала я ограничился капчей на прямые заходы с IPv6.
Капча простейшая самодельная. Интересно, как быстро её сломают. Затем повешу Recaptcha от Гугла. Естественно, на странице с капчей нет никакой Метрики. А Google Аналитику мы убрали ещё когда РКН повысил штрафы за неуведомление о трансграничной передаче данных.
Сейчас ботов в Метрике не видно. Посещаемость вернулась к норме. Продолжаю наблюдение.
Посещаемость сайта небольшая. Не больше сотни в день, в основном из поиска. А теперь выросла кратно. Боты забили всю Метрику.
Это не DDoS. Заходов слишком мало для серьёзной нагрузки. Это прогрев поведенческих ботов, либо компрометация ПФ конкретно на нашем сайте.
Лучший способ борьбы — отключить IPv6. Живые люди почти не заходят с этиих адресов. Всё же, делать так не хочется. Для начала я ограничился капчей на прямые заходы с IPv6.
Капча простейшая самодельная. Интересно, как быстро её сломают. Затем повешу Recaptcha от Гугла. Естественно, на странице с капчей нет никакой Метрики. А Google Аналитику мы убрали ещё когда РКН повысил штрафы за неуведомление о трансграничной передаче данных.
Сейчас ботов в Метрике не видно. Посещаемость вернулась к норме. Продолжаю наблюдение.
Прошло 1,5 года, как я собрал новый ПК. Время его почистить и рассказать о нём. Он простой: 12400 и 32Gb DDR4. Интереснее корпус, который я долго выбирал.
Я работаю на лоджии, поэтому важны размеры. Старый ПК был большой. Я часто пинал его ногами под столом. Хотелось компактный и вместительный корпус. Нашел Thermaltake Core G3. Редкий корпус SFX, вмещающий ATX плату.
Ширина всего 140мм. Материнка ставится вверх ногами. Видеокарта через райзер. Можно вместить водянку. Хотя, я поставил низкопрофильный кулер Be Quiet! и холодный CPU. Этого мне достаточно.
Корпуса уже нет продаже. Я нашёл его на Авито. Спасибо продавцу Марии за сохранность. Б/у выдаёт лишь приклеенная эмблема Noctua. Она понравилось, и я не стал отдирать.
ПК тихий. Помогают холодный проц и кулер. В комплекте идут две вертушки. Их тоже не слышно.
Есть и недостатки. SFX блоки дорогие. Хотелось бы закалёнку. Нет USB-C, вертушки сзади и кабель-менеджмента.
С этим можно мириться. Зато теперь есть место под столом. Я не пинаю ногами комп.
Я работаю на лоджии, поэтому важны размеры. Старый ПК был большой. Я часто пинал его ногами под столом. Хотелось компактный и вместительный корпус. Нашел Thermaltake Core G3. Редкий корпус SFX, вмещающий ATX плату.
Ширина всего 140мм. Материнка ставится вверх ногами. Видеокарта через райзер. Можно вместить водянку. Хотя, я поставил низкопрофильный кулер Be Quiet! и холодный CPU. Этого мне достаточно.
Корпуса уже нет продаже. Я нашёл его на Авито. Спасибо продавцу Марии за сохранность. Б/у выдаёт лишь приклеенная эмблема Noctua. Она понравилось, и я не стал отдирать.
ПК тихий. Помогают холодный проц и кулер. В комплекте идут две вертушки. Их тоже не слышно.
Есть и недостатки. SFX блоки дорогие. Хотелось бы закалёнку. Нет USB-C, вертушки сзади и кабель-менеджмента.
С этим можно мириться. Зато теперь есть место под столом. Я не пинаю ногами комп.
Добавил в приложение такси кнопку "Сообщить о проблеме". Теперь клиент может написать службе поддержки.
Основную работу делают система сбора заявок и АПИ приложения. Моя же часть состояла в добавлении приложению трёх несложных экранов.
Не стоило бы об этом писать, если бы не одна фишка. Клиентские заявки бывают объёмными. Поэтому на экране со списком заявок тексты лучше сокращать до одного-двух предложений.
Обычно для обрезки задают лимит на длину. Например, сто символов. Если текст длиннее, то его обрезают, а в конце добавляют многоточие.
Плохо, что автоматическая обрезка часто идёт по середине слова. Это может искажать смысл. А иногда делать его и вовсе пошлым.
Илья Бирман как-то писал об этом. Он предлагает резать по концу предложения. Если же фрагмент превышает лимит, то резать хотя бы по ближайшей запятой или пробелу.
Я вспомнил ту заметку и решил применить метод Ильи. Сделал просто: у меня обрезка идёт по ближайшему к лимиту знаку препинания. Я теперь спокоен, что обрезка не приведёт к конфузу.
Основную работу делают система сбора заявок и АПИ приложения. Моя же часть состояла в добавлении приложению трёх несложных экранов.
Не стоило бы об этом писать, если бы не одна фишка. Клиентские заявки бывают объёмными. Поэтому на экране со списком заявок тексты лучше сокращать до одного-двух предложений.
Обычно для обрезки задают лимит на длину. Например, сто символов. Если текст длиннее, то его обрезают, а в конце добавляют многоточие.
Плохо, что автоматическая обрезка часто идёт по середине слова. Это может искажать смысл. А иногда делать его и вовсе пошлым.
Илья Бирман как-то писал об этом. Он предлагает резать по концу предложения. Если же фрагмент превышает лимит, то резать хотя бы по ближайшей запятой или пробелу.
Я вспомнил ту заметку и решил применить метод Ильи. Сделал просто: у меня обрезка идёт по ближайшему к лимиту знаку препинания. Я теперь спокоен, что обрезка не приведёт к конфузу.