среда, 02 сентября 2020
19:40
Доступ к записи ограничен
Закрытая запись, не предназначенная для публичного просмотра
среда, 26 августа 2020
05:50
Доступ к записи ограничен
Закрытая запись, не предназначенная для публичного просмотра
понедельник, 03 августа 2020
Тут недавно столкнулся с любопытным примером "человекоориентированности" техники Apple.
В общем, знакомый попросил поглядеть, почему с его любимого айфона регулярно пропадает его любимая игруха весом под 2 Гб (в итоге каждый раз он её качает и устанавливает заново из стора), и, признаться, к тому, что я обнаружил, жизнь меня не готовила... Итак, набрали в грудь воздуху...
В общем, знакомый попросил поглядеть, почему с его любимого айфона регулярно пропадает его любимая игруха весом под 2 Гб (в итоге каждый раз он её качает и устанавливает заново из стора), и, признаться, к тому, что я обнаружил, жизнь меня не готовила... Итак, набрали в грудь воздуху...
вторник, 18 февраля 2020
00:56
Доступ к записи ограничен
Закрытая запись, не предназначенная для публичного просмотра
понедельник, 02 декабря 2019
18:35
Доступ к записи ограничен
Закрытая запись, не предназначенная для публичного просмотра
понедельник, 25 ноября 2019
Он стоял с грозным видом – один, как гора, скрипел зубами, дико вращал вытаращенными глазами, словом, выглядел как настоящий герой. (c) Путешествие на Запад
вторник, 19 ноября 2019
Разворачиваешь ты такой проект, где используется MySQLdb. Качаешь зависимость mysqlclient, ибо у тебя ж третий Python...
И тут начинается магия. Во-первых, последняя (1.4.5) версия mysqlclient'а тебе не подходит, т.к. в проекте предпоследняя (1.4.4), но откатиться до 1.4.4 нельзя, потому что она требует... Microsoft Visual C++ 14.0. Окей, говоришь ты, давай установим его и откатимся? Не тут-то было! На сайте MS действительно есть установщик (якобы) для BuildTools, среди которых и пресловутый Visual C++ (который не следует путать с Microsoft Visual C++ Redistributable, ибо это две большие разницы).
Однако после "установки" этого файла не происходит... ничего. Вернее, в папке Program Files (x86) появляется папка Microsoft Visual Studio, а в ней папка... установщика. Да, юзернейм, ты, оказывается, скачал программу-установщик для установки программы-установщика.
Но и это ещё не всё. Когда оправившись от удивления, ты попытаешься этот установленный установщик запустить, то он покажет тебенеприличное слово ошибку, из которой следует, что у тебя не установлены обязательные сертификаты Microsoft'а, которыми оно подписывает скачанные пакеты.
Ты бы и рад был их установить, но а) их у тебя просто нет (не скачались), б) для их скачивания тебе нужно выбрать опцию "скачать всё" в том самом installer'е, который у тебя не запускается из-за отсутствия сертификатов.
И да, есть ещё в) если верить интернетам, даже установка сертификатов не поможет, потому что у тебя стоит Windows 7, на которую надо сперва поставить обновление KB3004394, которое роняет тебе всю виртуалку, а потому надо его удалить и установить KB3024777... Впрочем, не стоит волноваться, ты всё равно не сможешь установить ни тот, ни другой патч, потому что ссылка на них на сайте Microsoft битая, и их больше нет.
...и вот ты оказываешься лицом к лицу перед ужасающей истиной: ты должен сменить операционную систему и поставить Windows 10, куда установить необходимые компоненты Microsoft Visual Studio 2019 только для того, чтобы просто запустить скрипт на "кроссплатформенном" (!!!) Питоне, написанный твоим коллегой полгода назад.
И тут начинается магия. Во-первых, последняя (1.4.5) версия mysqlclient'а тебе не подходит, т.к. в проекте предпоследняя (1.4.4), но откатиться до 1.4.4 нельзя, потому что она требует... Microsoft Visual C++ 14.0. Окей, говоришь ты, давай установим его и откатимся? Не тут-то было! На сайте MS действительно есть установщик (якобы) для BuildTools, среди которых и пресловутый Visual C++ (который не следует путать с Microsoft Visual C++ Redistributable, ибо это две большие разницы).
Однако после "установки" этого файла не происходит... ничего. Вернее, в папке Program Files (x86) появляется папка Microsoft Visual Studio, а в ней папка... установщика. Да, юзернейм, ты, оказывается, скачал программу-установщик для установки программы-установщика.
Но и это ещё не всё. Когда оправившись от удивления, ты попытаешься этот установленный установщик запустить, то он покажет тебе
Ты бы и рад был их установить, но а) их у тебя просто нет (не скачались), б) для их скачивания тебе нужно выбрать опцию "скачать всё" в том самом installer'е, который у тебя не запускается из-за отсутствия сертификатов.
И да, есть ещё в) если верить интернетам, даже установка сертификатов не поможет, потому что у тебя стоит Windows 7, на которую надо сперва поставить обновление KB3004394, которое роняет тебе всю виртуалку, а потому надо его удалить и установить KB3024777... Впрочем, не стоит волноваться, ты всё равно не сможешь установить ни тот, ни другой патч, потому что ссылка на них на сайте Microsoft битая, и их больше нет.
...и вот ты оказываешься лицом к лицу перед ужасающей истиной: ты должен сменить операционную систему и поставить Windows 10, куда установить необходимые компоненты Microsoft Visual Studio 2019 только для того, чтобы просто запустить скрипт на "кроссплатформенном" (!!!) Питоне, написанный твоим коллегой полгода назад.
понедельник, 21 октября 2019
Есть такая профессия "лишь-бы-программист", к которой относится изрядная доля всех вакансий IT-сферы, как бы они не назывались. Отличие лишь-бы-программиста от программиста состоит в том, что пока второй решает прикладные задачи по конкретному стеку технологий, на который его наняли, первый должен являться ходячей энциклопедией всех языков и библиотек и должен быть способен решить любую задачу, поставленную руководством, даже если это ни разу не его специализация, потому что задачи ему ставятся на уровне бизнес-логики проекта, а не реализации.
В целом, это абсолютно нормальная ситуация для не-IT предприятий, где должность "программиста" в глазах руководства мало отличается от сисадмина, но вот когда в компании, которая занимается разработкой ПО, фронтендера заставляют писать бэкенд, джависта пересаживают на питон или плюсы, и рассказывают о важности быть "айтишником вообще", а не в конкретной области - это признак тревожный и неприятный, на мой взгляд.
Это означает, что принимая вас на работу, работодатель не принимал в расчёт ни вашу квалификацию, ни карьерные планы ("кем вы себя видите через пять лет", ага), ни, что самое печальное, собственные бизнес-процессы и их потребности. Разумеется, всякое бывает, и иногда люди действительно меняют стек технологий, профессию и т.п., но одно дело когда это твоё решение, подкреплённое знанием и опытом, и другое дело, когда работодатель хочет сэкономить, наваливая разнородные задачи на нанятого на вполне конкретную вакансию человека.
В целом, это абсолютно нормальная ситуация для не-IT предприятий, где должность "программиста" в глазах руководства мало отличается от сисадмина, но вот когда в компании, которая занимается разработкой ПО, фронтендера заставляют писать бэкенд, джависта пересаживают на питон или плюсы, и рассказывают о важности быть "айтишником вообще", а не в конкретной области - это признак тревожный и неприятный, на мой взгляд.
Это означает, что принимая вас на работу, работодатель не принимал в расчёт ни вашу квалификацию, ни карьерные планы ("кем вы себя видите через пять лет", ага), ни, что самое печальное, собственные бизнес-процессы и их потребности. Разумеется, всякое бывает, и иногда люди действительно меняют стек технологий, профессию и т.п., но одно дело когда это твоё решение, подкреплённое знанием и опытом, и другое дело, когда работодатель хочет сэкономить, наваливая разнородные задачи на нанятого на вполне конкретную вакансию человека.
четверг, 05 сентября 2019
Русский панк, сгенерированный нейросетью, слушать можно. Правда, недолго, пока мозги не вытекут из ушей. Но можно. Забористая такая шизофазия...
https://meduza.io/quiz/egor-letov-ili-kompyuter
https://meduza.io/quiz/egor-letov-ili-kompyuter
среда, 28 августа 2019
вторник, 27 августа 2019
12:13
Доступ к записи ограничен
Закрытая запись, не предназначенная для публичного просмотра
четверг, 11 июля 2019
"Является ли пользователь козлом и, следовательно, телепортируемым объектом?"
https://stackoverflow.com/questions/13375357/proper-use-cases-for-android-usermanager-isuseragoat - обсуждение реальных способов применения этого метода в вашем приложении.
Хороший, нужный метод. Он никогда не возвращает true (в теории), но мы всё равно верим, что однажды он скажет правду.
https://stackoverflow.com/questions/13375357/proper-use-cases-for-android-usermanager-isuseragoat - обсуждение реальных способов применения этого метода в вашем приложении.
Хороший, нужный метод. Он никогда не возвращает true (в теории), но мы всё равно верим, что однажды он скажет правду.
понедельник, 08 июля 2019
суббота, 06 июля 2019
10:30
Доступ к записи ограничен
Закрытая запись, не предназначенная для публичного просмотра
понедельник, 01 июля 2019
- Android кондовый и неудобный, продукты Apple проектируют гении. Именно поэтому в релизе Apple iOs 2019 года появляется "уникальный и совершенно новый" функционал вроде swipe-клавиатуры, который в Android'е существует с начала 2000-х.
- Google следит за вами, Apple заботится о клиентах. Именно поэтому для простого запуска телефона Apple или установки приложения из AppStore вам приходится сообщать обожаемому вендору свою личную информацию, вроде почтового адреса.
- У Apple самый лучший человеко-ориентированный и удобный интерфейс пользователя и самая понятливая техподдержка. Именно поэтому у вашего покорного слуги простой запуск служебного iPhone отнял полдня на душевное общение с техподдержкой Apple, где плохо понимающая и русский, и английский девушка южной национальности пыталась меня убедить в существовании на экране устройства опций, которых там не было, в духе: "Попробуйте на картинку потыкать, так, а на надпись внизу? Не нажимается? Ой, а у меня по-другому..." В техподдержку Google не приходилось обращаться ни разу за всё время пользования и программирования.
- Продукты Apple уникальны и неповторимы. Поэтому даже палка для селфи к iPhone стоит $50-70, что вдвое дороже любой брендовой палки от производителей Android, которые идут по $20-40. Интересно, что палки, как говорят, взаимозаменяемы, но вам лучше не упоминать Apple о том, что вы осквернили их устройство палкой Xiaomi, ведь в этом могут усмотреть нарушение условий эксплуатации и причину поломки.
Имхо, покупая Apple, люди меняют свои деньги и качество продукта на понты. Единственное, с чем у них хорошо - это с безопасностью и регулярностью обновлений, но это особенность централизованной под одним производителем платформы.
UPD 10.11.2019: нет, с обновлением тоже у «яблочников» всё плохо. Точнее, с обратной совместимостью. Её у них просто нет. Если у Android есть худо-бедно реализуемая преемственность версий и @deprecated-аннотации, предупреждающие, что какой-то функционал будет отключён в будущих релизах, то iOs может просто выкатить релиз, переписав sdk, и если у вас что-то перестало работать — это ваши проблемы.
- Google следит за вами, Apple заботится о клиентах. Именно поэтому для простого запуска телефона Apple или установки приложения из AppStore вам приходится сообщать обожаемому вендору свою личную информацию, вроде почтового адреса.
- У Apple самый лучший человеко-ориентированный и удобный интерфейс пользователя и самая понятливая техподдержка. Именно поэтому у вашего покорного слуги простой запуск служебного iPhone отнял полдня на душевное общение с техподдержкой Apple, где плохо понимающая и русский, и английский девушка южной национальности пыталась меня убедить в существовании на экране устройства опций, которых там не было, в духе: "Попробуйте на картинку потыкать, так, а на надпись внизу? Не нажимается? Ой, а у меня по-другому..." В техподдержку Google не приходилось обращаться ни разу за всё время пользования и программирования.
- Продукты Apple уникальны и неповторимы. Поэтому даже палка для селфи к iPhone стоит $50-70, что вдвое дороже любой брендовой палки от производителей Android, которые идут по $20-40. Интересно, что палки, как говорят, взаимозаменяемы, но вам лучше не упоминать Apple о том, что вы осквернили их устройство палкой Xiaomi, ведь в этом могут усмотреть нарушение условий эксплуатации и причину поломки.
Имхо, покупая Apple, люди меняют свои деньги и качество продукта на понты. Единственное, с чем у них хорошо - это с безопасностью и регулярностью обновлений, но это особенность централизованной под одним производителем платформы.
UPD 10.11.2019: нет, с обновлением тоже у «яблочников» всё плохо. Точнее, с обратной совместимостью. Её у них просто нет. Если у Android есть худо-бедно реализуемая преемственность версий и @deprecated-аннотации, предупреждающие, что какой-то функционал будет отключён в будущих релизах, то iOs может просто выкатить релиз, переписав sdk, и если у вас что-то перестало работать — это ваши проблемы.
понедельник, 24 июня 2019
вторник, 18 декабря 2018
"API фрагментов и loader'ов в Андроиде достаточно удобны, чтобы вы хотели ими пользоваться и хотели выстрелить себе в голову." (c)
вторник, 04 декабря 2018
У нас было 8 адаптеров для ListView, десяток активностей, реализующих их, строгое mvp, всего два статичных синглтона, неубиваемый фоновый сервис, фабрика observable-subscriber'ов, сохранение данных в Shared Preferences и в persistent database, имплементация saveInstanceState и restoreInstanceState, public и protected константы для всех ключей. Не то чтобы всё это нужно в разработке приложения, но если уж начал обрабатывать данные в жизненном цикле приложения, то иди в своём намерении до конца. Единственное, что меня беспокоило это реактивные loader'ы. В Android'е нет ничего более беспомощного, странного и безответственного, чем привязка Java Rx к жизненному циклу активности или фрагмента. И я знал, что довольно скоро мы в это окунёмся...
вторник, 27 ноября 2018
...не созданы друг для друга.
Ладно с жизненным циклом Activity и фрагментов приходится осознать очевидную вещь, что onDestroy() убивает все объекты этого класса хоть они static, хоть нет. Горькая правда состоит в том, что даже Application Context, записанный в статичное поле синглтона, может прибиваться системой, если прибивается вызвавшее его Activity.
Android это не Java. Печаль.
Ладно с жизненным циклом Activity и фрагментов приходится осознать очевидную вещь, что onDestroy() убивает все объекты этого класса хоть они static, хоть нет. Горькая правда состоит в том, что даже Application Context, записанный в статичное поле синглтона, может прибиваться системой, если прибивается вызвавшее его Activity.
Android это не Java. Печаль.
вторник, 09 октября 2018
Ба, да ведь это мои обожаемые спагетти а-ля JavaSсript! А кетчуп будет?
UPD 26.11.2019: Java Rx это удобно. Непонятно и сложно, но удобно. Сюрреалистическое ощущение, что забиваешь гвозди микроскопом, потому что молоток для этих целей потребовал большего количества настроек.
UPD 26.11.2019: Java Rx это удобно. Непонятно и сложно, но удобно. Сюрреалистическое ощущение, что забиваешь гвозди микроскопом, потому что молоток для этих целей потребовал большего количества настроек.