А вот топы публикаций на Хабре за год, например.
Рейтинг
В топе по рейтингу характерно в основном UGC, и там либо очень болезненные нетехнические темы (моя про собесы, ниже про ИИ и ненормальность), либо очень интересно написанные технические.
Прикольно, что топ-2 статья про 2ГИС, где я теперь работаю, и этим событием заканчивается моя статья выше про собесы. Можно читать сверху вниз, сквозной сюжет. Но про 2ГИС не моя, была ещё раньше: статья о фейковых отзывах, очень годная, вроде как наши сразу взяли в работу, как она появилась.
И не могу не заметить топ-6 статью, где автор рассказывает, как его задолбала ИИ-истерия везде, и в айти особенно.
Просмотры
В топе по просмотрам хайповая фигня, куда либо компании льют траффик (ИИ), либо просто приходят залётные юзеры из поиска (про вотсап). Там вообще почти весь топ это вотсап и макс, скукота.
Комментарии
Ожидаемо политота и холиварные топики. Полит-срачи вообще очень затягивающая штука, я попадаю в них чаще, чем хотелось бы, к сожалению. И я прям иногда по рукам себя бью, чтобы не писать политически окрашенные посты в этот блог, даже если тема кажется мне прям супер однозначной и не допускающей никакой дискуссии.
В целом на Хабр оказывается написали 50к материалов за год (новости + статьи). Многие дублируют туда свои личные телеграм-каналы или вообще постят любой медиа-мусор пачками. Но даже с учётом этого 50к это прям очень много.
#web@clockstackwheels
🚀 Вышел стабильный JavaScript движок от Google для Android
Новая стабильная библиотека Jetpack JavaScript Engine позволит разработчикам выполнять JS код в изолированной и ограниченной среде.
class MainActivity : ComponentActivity() {
// Теперь nullable, без lateinit
private var jsSandbox: JavaScriptSandbox? = null
private var jsIsolate: JavaScriptIsolate? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
if (!JavaScriptSandbox.isSupported()) {
Log.e("JS", "JavaScriptSandbox не поддерживается")
return
}
lifecycleScope.launch {
// Создаём и сохраняем в nullable-поле
jsSandbox = JavaScriptSandbox
.createConnectedInstanceAsync(applicationContext)
.await()
jsIsolate = jsSandbox?.createIsolate()
// При выполнении гарантируем, что jsIsolate != null
val result: String = jsIsolate
?.evaluateJavaScriptAsync(JS_SCRIPT_SCRING)
?.await()
?: "Ошибка: isolate не инициализирован"
Log.d("JS", "Результат выполнения: $result")
}
}
override fun onDestroy() {
super.onDestroy()
// Закрываем только если не null
jsIsolate?.close()
jsSandbox?.close()
}
}
#jetpack#js