Как стать автором
Обновить

Все потоки

Сначала показывать
Порог рейтинга

PHP Дайджест № 222/3 (26 марта – 25 апреля 2022)

Разработка веб-сайтов *PHP *Symfony *Yii *Laravel *

Дисклеймер: Нет, это не дайджест авторства Романа Пронского. К сожалению, у меня нет достоверной информации - будет ли выходить его дайджест далее.

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

Если Роман сможет и захочет далее продолжать свой дайджест - он сам решит, как использовать мой текст: взять в свой проект, как его часть или нет. На всякий случай я ставлю нумерацию дайджеста через дробь. Однако не претендуя при этом на продолжение оригинального проекта.

Читать далее
Всего голосов 41: ↑41 и ↓0 +41
Просмотры 4.8K
Комментарии 5

Новости

Нецелевое использование assert-функций в TypeScript

Блог компании RUVDS.com JavaScript *Программирование *TypeScript *
Перевод
Tutorial

Это ужасный (но очень полезный) хак, который я придумал для добавления типов в старый код. Вчера мой коллега, работающий над добавлением типов в одну из наших основных библиотек на LinkedIn, спросил меня, как быть со старым (и уже не рекомендуемым) паттерном. В качестве одного из вариантов решения мы попробовали применить assert-функцию. вразрез с её предназначением. В конечном итоге нам не удалось добиться конкретно желаемого 1, но мне этот паттерн показался достаточно интересным, чтобы им поделиться.
Читать дальше →
Всего голосов 39: ↑38 и ↓1 +37
Просмотры 4.6K
Комментарии 3

Как правильно имитировать Agile?

Управление проектами *Agile *

Подобная статья должна была появиться раньше, лет десять или пятнадцать назад, когда Agile только начинал внедряться в ИТ-компаниях. Сколько можно бы было избежать ошибок, проблем, конфликтов, , если бы менеджеры сразу подходили к вопросу правильно, не отвлекаясь на лишние действия …

Зато за это время накопился опыт "внедрений" Agile в разных условиях, в разных компаниях, который следует обобщить и повсеместно распространять.

Читать далее
Всего голосов 90: ↑87 и ↓3 +84
Просмотры 24K
Комментарии 38

Путь в IT. Или как я стал техдиром в 28 лет

Разработка игр *Unity *Карьера в IT-индустрии AR и VR

Всем привет, меня зовут Дядиченко Григорий и чем я только не занимался. Сегодня хочется рассказать о своём пути в айти. Но цель статьи даже не в том, чтобы "рассказать историю". Я скорее хочу рассказать некоторые мысли о том, как лучше развивать свою карьеру в IT и некоторые советы, чтобы расти быстрее, чем средний специалист.

Читать далее
Всего голосов 41: ↑25 и ↓16 +9
Просмотры 15K
Комментарии 23

Отношения с IT. Часть десятая. Себестоимость и анализ фактических данных

Управление проектами *Статистика в IT IT-компании

Все персонажи и события являются вымышленными. Любое совпадение с реально живущими или когда-либо жившими людьми случайно.

  

- У нас нет пока понимания о том, сколько нам стоит каждый проект и разработка новых фичей. Часть проектов, по словам директора по денюжкам в разрезе 2 лет – убыточные, - бесстрастно объясняет СЕО.

- Это как?

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

- Это я уже поняла, а что по себестоимости?

- С этим вопросом иди к директору по денежкам. - говорит сюзерен и машет рукой на дверь.

Аудиенция закончена.

Вопрос с оценкой себестоимости и оценкой трудозатрат для интеллектуальных продуктов является сложным (хотя, возможно только в России и только в некоторых компаниях?). Как следует рассчитывать доработки it-продуктов или работу с багами? Вернее так, этот вопрос сложный, если о нем не подумали с самого начала и разработка существует в вакууме, а не в рамках единого производственного комплекса компании.

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

Читать далее
Всего голосов 9: ↑3 и ↓6 -3
Просмотры 1.3K
Комментарии 9

Инфографика: Влияние «военных операций» на доступность и релокацию веб-ресурсов

Хостинг IT-инфраструктура *Визуализация данных Веб-аналитика *Инфографика
The Impact of War in Ukraine on Relocation and Availability of Web Resources

Делюсь личными наблюдениями о сложившейся ситуации с Интернет-ресурсами на Украине. Возможно, это первые имеющиеся данные о влиянии «военной операции» на то, каким образом это затронуло веб-ресурсы. Эта информация будет интересна или полезна, чтобы увидеть, как примерно складывается ситуация в цифрах, понять поведенческие модели, объемы и направления миграции.


Всё, что я хотел рассказать, находится на инфографике, ниже просто дополнительные комментарии о том, из чего сложились данные, о методе исследования, погрешностях и некоторых выводах.


Подробнее...
Всего голосов 19: ↑11 и ↓8 +3
Просмотры 11K
Комментарии 14

Дайджест недели (мобильная разработка) – #1

Разработка под iOS *Разработка мобильных приложений *Разработка под Android *Kotlin *Flutter *
Из песочницы

Привет, Хабр! Каждую неделю, в своем телеграм-канале Mobile Native, я публикую дайджест с интересными и полезными материалами (новости, статьи, инструменты, библиотеки и т.д.) для мобильных разработчиков. Решил попробовать публиковать эту рубрику и на Хабре. Посмотрим, что из этого получится.

Android 🤖

• Dependency Inversion Principle: How Google Developers write code
• Как мы используем фича-флаги в мобильном приложении QIWI Кошелек
• Google запускает бесплатный курс Android Basics with Compose
• Опубликована программа Google I/O
• The first developer preview of Privacy Sandbox on Android
• Google Play запретил разработчикам загружать и обновлять платные приложения в России
• Learn Dagger 2 to Hilt for Android Easily in under 10 Minutes
• Jetpack Compose Dropdown
• S.O.L.I.D Principles (Examples in Kotlin)
• Kotlin-inline, crossline, noinline function and reified: Everything you need to know(Android) — Part 1
• 7 things to keep in mind while building jetpack composable’s.
• Architecture MAD Skills series wrap up
• Топ вопросов работодателю от Android-разработчика
• Isolate Koin Within an Android Module
• Kotlin, обрабатываем исключения в корутинах правильно
• The curious case of crashing Workers
• Material Components Android 1.6.0 Released
• Конвергенция в многомодульном приложении
• Passive Views: keep your UI code simple and stupid
• CI-CD: Firebase App Distribution with Fastlane on Android
• Creating reliable tests for Android notifications

iOS 🍏

• I replaced my native iOS app with a cross platform web app and no-one noticed
• Measuring app performance in Swift
• Types of memory in swift
• Improve Performance in Your iOS Applications — Part 1
• Swift 5.7: Unwrapping Optionals Gets an Improvement
• Clarifying criteria & new timing extension for App Store Improvements process
• Тест-ревью: как прошли два года написания unit-тестов
• Is It Possible to Have a Half-modal View in SwiftUI?
• Swift visitor design pattern
• Two Ways to Unit Test Notification Center in Swift
• Send Events from SwiftUI to UIKit and Vice Versa
• AsyncThrowingStream and AsyncStream explained with code examples
• AttributedString’s Codable format and what it has to do with Unicode
• SwiftUI Supporting External Screens
• Flow Navigation With SwiftUI (Revisited)
• Делаем патч для Pods библиотеки
• Как нативно визуализировать голос в iOS
• 6 Tips to improve Coding of Swift

Читать далее
Всего голосов 4: ↑2 и ↓2 0
Просмотры 1.5K
Комментарии 0

Оптимизация высоконагруженных конфигураций: от “всё пропало, мы все умрем” до комфортной работы без страха за жизнь

Высокая производительность *SQL *Проектирование и рефакторинг *Серверная оптимизация * *

Оптимизация высоконагруженных конфигураций: от “всё пропало, мы все умрем” до комфортной работы без страха за жизнь

Оптимизация высоконагруженных конфигураций
Всего голосов 8: ↑0 и ↓8 -8
Просмотры 1.8K
Комментарии 4

NNHelper – пакет на языке Go для создания и использования нейронной сети

Go *Машинное обучение *

Данная статья описывает работу пакета nnhelper, предназначенного для создания и использования нейронных сетей в программах на языке Go.

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

Go пакет nnhelper разработан для быстрого создания нейронной сети и использовании ее в приложениях, написанных на языке Go. Для использования nnhelper не потребуется ничего дополнительного, кроме Go. Пакет nnhelper является надстройкой над пакетом gonn. И это единственная внешняя зависимость.

Читать далее
Всего голосов 9: ↑6 и ↓3 +3
Просмотры 2.7K
Комментарии 7

Как рисовать с помощью SQL?

Занимательные задачки MySQL *SQL *
Из песочницы

Видимо я сделала какое-то очень плохое зло, поэтому живу во время перемен. Справиться с эмоциями и повысить конкурентоспособность на рынке Data Enigneer’ов мне помогает сайт Hackerrank. На пути к решению вообще всех задач по SQL с этого сайта мне попалась задачка на нетривиальные запросы.

В задачке требовалось звёздочками нарисовать прямоугольный треугольник...

Порисуем с помощью SQL
Всего голосов 66: ↑62 и ↓4 +58
Просмотры 24K
Комментарии 29

Безопасность Web Apps в Telegram ботах

Ajax *Информационная безопасность *JavaScript *
Из песочницы

16 апреля 2022 Telegram презентовал новую фичу - Web apps, с помощью которой можно открывать веб страницы в боте без перехода в браузер. Подробнее можно почитать в источнике https://core.telegram.org/bots/webapps.

Однозначно это удобная функция для пользователей и для разработчиков. Но, так как это веб приложение, можно просмотреть что под капотом. Telegram привел в качестве примера бота @DurgerKingBot, его и разберем.

Читать далее
Всего голосов 21: ↑9 и ↓12 -3
Просмотры 8K
Комментарии 12

Не верьте улыбкам южноазиатов

Управление проектами *Управление персоналом *Читальный зал История IT

Почти полвека я занимался Программированием и ИТ-проектами в разных странах мира. Совместная работа сплачивает ... или отдаляет людей друг от друга. Вот и я за эти годы обрёл множество знакомых и даже приятелей самых разных национальностей. (А также с некоторым, существенно меньшим числом людей мои отношения после проекта остались недружественными).

Коренные представители стран Южной Азии (японцы, корейцы, китайцы, вьетнамцы) отличаются от европейцев, американцев и индусов не только произношением, но и особым менталитетом.

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

:::

В большой немецкой фирме готовились к показу своих достижений на международной выставке CEBIT. Эта выставка в городе Ганновере просуществовала с 1996 по 2018 годы и в расцвете своих лет была настоящей Меккой компьютерщиков всего мира.

Подготовка к выставке была объявлена в фирме исключительно важным делом. Поэтому подготовленные достижения перед их отправкой в Ганновер пришёл посмотреть Самый Большой Начальник - Geschaftsführer фирмы, - высокий, молодой, источающий энергию руководитель многотысячного коллектива.

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

Показывать было намечено систему интеграции трёх важных приборов. Поэтому на столе, имитирующим выставочный, располагались три прибора и ноутбук.
Вокруг больших начальников всегда трётся челядь. Отличительной особенностью челяди является способность разнюхать или предугадать, где можно попасться на глаза начальству и при возможности, напомнить о себе.

Читать далее
Всего голосов 267: ↑254 и ↓13 +241
Просмотры 55K
Комментарии 157

NBomber как альтернатива JMeter для .NET разработчика

Высокая производительность *.NET *C# *Тестирование веб-сервисов *

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

В этой статье мы рассмотрим NBomber как легкую для освоения альтернативу JMeter, а также постараемся ответить на вопрос "Почему я должен проводить нагрузочное тестирование именно с NBomber ?".

Эта статья предназначена для .NET разработчиков, которые хотят пополнить свой инструментарий удобным инструментом для нагрузочного тестирования, а также тем кто рассматривает альтернативы JMeter для экосистемы .NET.

Читать далее
Всего голосов 10: ↑10 и ↓0 +10
Просмотры 3.4K
Комментарии 10

Навыки важнее дохода или мое хождение по мукам

Карьера в IT-индустрии
Из песочницы

Опыт хорош, если за него не заплачено слишком дорого (Томас Фуллер)

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

Читать далее
Всего голосов 17: ↑14 и ↓3 +11
Просмотры 12K
Комментарии 9

Знакомимся с Javassist

Java *
Из песочницы

Всем большой привет! Перед началом стоит сказать, что библиотека Javassist довольно мощный инструмент, так как стирает почти все границы у того безграничного языка JAVA, позволяя разработчику осуществлять манипуляции связанные с байткодом.

Конечно, получив доступ к байткоду, а ровно и к возможности воздействовать на этот самый байткод вам совсем не обязательно вклиниваться в него. Javassist можно использовать и в “мирных” целях!

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

Итак, если после всех предостережений вы все же решили использовать эту библиотеку, то давайте начинать!

В этой статье мы рассмотрим Javassist, как инструмент, с помощью которого мы будем вклиниваться в существующий байткод и трансформировать его.

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

Как и говорилось выше, после использования Javassist у вас появится второе полноценное приложение, в котором будет жить Java со своей логикой. Почему это происходит? Почему нельзя запаковать все в одно приложение?

Ответ очевиден – приложение не может само себя изменять. Т.е. приложение не может само изменять свой же байткод. Это должен делать кто-то другой. Этот кто-то другой – такое же Java приложение, но заточенное на работу с байткодом.

Читать далее
Всего голосов 12: ↑11 и ↓1 +10
Просмотры 5.1K
Комментарии 8

Как джуну стать продактом и не потерять веру в человечество?

Разработка мобильных приложений *Управление продуктом *Карьера в IT-индустрии IT-компании
Из песочницы

Краткое. Очень краткое руководство для Junior Product о том, как выжить первые несколько недель в команде разработки.

Ого! Читать
Всего голосов 14: ↑11 и ↓3 +8
Просмотры 4K
Комментарии 3

Как нативно визуализировать голос в iOS

Блог компании Surf Программирование *Разработка под iOS *Разработка мобильных приложений *Звук

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

В статье расскажу, как в iOS нативно визуализировать голос в процессе записи и проведу краткий экскурс в физику звукозаписи.

Читать далее
Всего голосов 12: ↑12 и ↓0 +12
Просмотры 3.6K
Комментарии 2

Кривые рабочие взаимодействия кофаундеров — причина №2 гибели стартапов

Венчурные инвестиции Развитие стартапа
Перевод
image

Аарон Харрис — 
бывший глава по инвестициям Series A в Y Combinator

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

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

Взаимоменеджерить друг друга кофаундерам сложно по ряду причин:
Читать дальше →
Всего голосов 10: ↑5 и ↓5 0
Просмотры 2.3K
Комментарии 0

Открытка ко Дню Радио: Telefontornet — замок связи

Блог компании RegionSoft IT-инфраструктура *Стандарты связи История IT Инженерные системы

У каждого связиста есть любимая технология и есть технология или гаджет, по которым он грустит. У меня таких много, но среди прочих выделяется WiMax — я помню, как мы были воодушевлены его перспективами и тщательно изучали технологию. Казалось, вот оно, будущее в твоих руках — и вот это будущее подчистую проигрывает «маркетинговому» LTE, чисто технически менее достойному конкуренту. Ну а теперь и печалиться, получается, не о чем — другие технологии оказались эффективнее. В истории связи немало случаев, когда что-то перспективное и грандиозное быстро уходило в историю, иногда и не оставив следа… А иногда оставив по-настоящему красивый, почти сказочный след.

Вы слышали про Telefontornet?

Читать далее
Всего голосов 33: ↑32 и ↓1 +31
Просмотры 5.9K
Комментарии 9

Хочу оказать дядюшке Филипу Дику должное уважение от ру комьюнити да спросить совета

Читальный зал Киберпанк Научная фантастика

Привет! Недавно вкусил творчество Филипа Дика: прочитал несколько популярных книг (нет, не про электроовец) — очень понравились стиль, глубина и фантазия автора — а потому захотелось побольше узнать про него. Изучил товарища поподробнее и удивлён, что в русском сообществе о его творчестве ходят настолько неоднозначные мнения. Кому-то слишком скучно, кому-то слишком мрачно, кому-то попросту не интересно.

А мы говорим (на секундочку!) про «прадедушку киберпанка», чьё творчество оказало влияние на огромный кусок фильмов современности, например, НачалаМатрицы и кучи другого sci-fi.

Читать далее
Всего голосов 22: ↑18 и ↓4 +14
Просмотры 6.4K
Комментарии 51