Попал в Программу Поощрения Авторов на Хабре. Если ваша карма 50 или более, то за статьи в профильных хабах (то есть, тематические узкоспециализированные) вы получаете деньги в зависимости от рейтинга статьи.
Шкала ступенчатая. В целом, 5000 рублей за статью это почти максимум. Можно больше, но ненамного, вот как у меня. И ещё накинули 1000 за факт попадания в программу, впоследствии такой лафы не будет.
Не стану скрывать — я специально метил в ППА после первой статьи полтора года назад. В итоге за три статьи попал. С одной стороны, писать по такой статье например раз в месяц — дело подъёмное. А 5000 рублей уже не совсем копейки, можно себе что-то приятное прикупить. С другой стороны — хорошая техническая статья это недели или даже месяцы предварительной работы, исследования материала. Я когда-то давно писал для научпоп-журнала, там давали 4000 рублей за статью, и подготовки требовалось значительно меньше, я мог за 2-3 вечера выдать подходящий текст. На Хабре соотношение денег к объёму работы меньше. Впрочем, тот журнал загнулся, видимо, слишком дорого обходились авторы, а Хабр живее всех живых :)
Но я очень доволен. Есть мотивация писать чаще. Стоит ли говорить, что другим текстовым площадкам до такого уровня поддержки авторов, как до Луны? Думаю в течение недели-двух будет ещё статья.
#dev#web
🚀 Вышел стабильный 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