Банка → https://send.monobank.ua/jar/9MKMnYJD3k
✙rozho)))k✙ є каналом, який пропонує унікальний погляд на усі теми, що не стосуються ІТ. Автор каналу ділиться своїми думками, враженнями та спостереженнями з аудиторією, надаючи нові погляди на різні аспекти життя. Якщо ви шукаєте цікаву та нестандартну інформацію, то цей канал саме для вас. Разом із ✙rozho)))k✙ ви зможете поглибити свої знання, розширити свій світогляд та підняти настрій. Приєднуйтесь до каналу за посиланням @daily_rozhok та отримуйте цікаву інформацію щодня. Також ви можете звертатися до автора напряму за допомогою @xrozhokx або відвідати його блог на сайті rozhkov.me. Долучайтесь до ✙rozho)))k✙ і починайте свою подорож у світ нових знань та вражень!
31 Jan, 07:24
30 Jan, 07:24
27 Jan, 07:24
31 Dec, 07:24
30 Dec, 07:24
Metrics/ClassLength:
Enabled: false
Metrics/AbcSize:
Enabled: false
Layout/LineLength:
Enabled: false
Metrics/MethodLength:
Enabled: false
27 Dec, 07:24
data-testid="postThreadItem-by-#{bsky_profile}"
, наприклад data-testid="postThreadItem-by-maxua.com"
. Тому довелося додатково ще парсити й це.25 Dec, 07:24
ngrok http http://localhost:8080
і він відкривав тунель, створював вам домен виду randomstring.ngrok.io
та підіймав вебсторінку з логом запитів. Дуже зручно.ngrok
, але він кудись пропав з лептопу. А може його там взагалі не було.23 Dec, 07:24
20 Dec, 07:24
bundle update
. Жодна з версій залежностей в мене не залочена, тому я постійно живу на всьому останньому. В Java трішки складніше, там версії лочаться, тому треба піти й перевірити що зараз останнє, бо автокомпліт IntelliJ щось перестав працювати.alpine
та однією з версій рубі, щось там крашилось, довелося змінити базовий імедж на debian-slim
. Разом зі зміною я втратив jemalloc, але тоді це було не таким критичним.yarn
. Хто пам'ятає — це така альтернатива npm
яку написали у фейсбуці коли npm
був ще неоптимальним. З якоїсь причини це є дефолтний пакетний менеджер js-залежностей в Rails. І от я дивлюся що він у мене версії типу 1.22.11 чи щось таке. Дивно, думаю, йду на офіційний сайт, а там пише що вже є 4.x.x. Дивлюся як його оновити, а там corepack enable
, а потім yarn set version stable
та yarn install
. WTF? Читаю далі, а виявляється що «we don't tell you to run npm install -g yarn
to install Yarn - we even recommend against it».corepack
і тепер треба робити через неї. Також, вже досить давно додали npx
, але я не розумію чим це відрізняється від npm
../gradlew build
, так і запускаєш, поки в рубі ти як робив bundle install
, так і робиш, джаваскріптери знову видумують щось нове.18 Dec, 07:24
select for update
.Lock.find_by(key: "daily_post").with_lock do
random_post = Post.random_post
TgUser.pluck(:tg_id).each do |tg_id|
SendDailyPostToUserJob.perform_later(tg_id, random_post.id)
end
random_post.update(posted_count: random_post.posted_count + 1)
SendDailyPostToBskyJob.perform_later(post_id)
end
17 Dec, 07:24
16 Dec, 07:30
тут буде [посилання](https://..)
передається просто текст тут буде посилання
і окремо об'єкт фасету, який вказує індекси початку та кінця фасету та тип (посилання, хештег, юзернейм):{
index: {
byteStart: 6,
byteEnd: 15
},
features: [{
$type: 'app.bsky.richtext.facet#link',
uri: 'https://example.com'
}]
}
13 Dec, 07:24
27 Nov, 07:24
25 Nov, 07:24
4627055113374002
[email protected]
22 Nov, 07:24
20 Nov, 07:24
18 Nov, 08:35
4627055113374002
[email protected]
15 Nov, 07:24
11 Nov, 07:24
08 Nov, 07:24
06 Nov, 07:24
04 Nov, 07:24
class Action {
public void doThing(Context context) {
ResultOne resultOne = ServiceOne.getInstance().doThing(context);
ResultTwo resultTwo = ServiceTwo.getInstance().doThing(context, resultOne);
context.setResult(resultTwo);
}
}
class ActionTest {
@Test
public void testDoThing() {
ServiceOne mockServiceOne = mock(ServiceOne.class);
ServiceTwo mockServiceTwo = mock(ServiceTwo.class);
Action action = new Action(mockServiceOne, mockServiceTwo);
Context context = mock(Context.class);
ResultOne mockResultOne = mock(ResultOne.class);
ResultTwo mockResultTwo = mock(ResultTwo.class);
when(mockServiceOne).doThing(eq(context)).thenReturn(mockResultOne);
when(mockServiceTwo).doThing(eq(context), eq(mockResultOne)).thenReturn(mockResultTwo);
action.doThing(context);
verify(mockServiceOne).doThing(context);
verify(mockResultTwo).doThing(context, mockResultTwo);
verify(context).setResult(mockResultTwo);
}
}
28 Oct, 07:24
25 Oct, 06:24
23 Oct, 06:24
21 Oct, 07:02
4627055113374002
[email protected]
18 Oct, 06:24
17 Oct, 06:24
16 Oct, 06:24
14 Oct, 06:24
4627055113374002
[email protected]
04 Sep, 06:24
02 Sep, 06:24
21 Aug, 06:24
19 Aug, 06:24
06 Aug, 06:24
/health
для перевірки чи все ок та /api/screenshots
власне для скриншотів, тому бойлерплейту було мінімум.Thread Thread[vert.x-eventloop-thread-0,5,main] has been blocked for 2031 ms, time limit is 2000 ms
io.vertx.core.VertxException: Thread blocked
at java.base/java.lang.Thread.sleepNanos0(Native Method)
at java.base/java.lang.Thread.sleepNanos(Thread.java:491)
at java.base/java.lang.Thread.sleep(Thread.java:559)
at java.base/java.util.concurrent.TimeUnit.sleep(TimeUnit.java:446)
at me.rozhkov.snapshottr.App.handleScreenshotRequest(App.java:79)
05 Aug, 06:24
def screenshot(link)
browser = Ferrum::Browser.new({browser_options: {'no-sandbox': nil}})
begin
browser.go_to(link)
browser.network.wait_for_idle(duration: 2, timeout: 30)
path = "tmp/tweet_#{Time.now.to_i}.jpeg"
browser.screenshot(path: path, selector: 'article[data-testid="tweet"]', quality: 95, format: "jpeg")
path
rescue StandardError => e
Rails.logger.error("Error capturing screenshot: #{e.message}")
nil
ensure
browser.reset
browser.quit
end
end
driver.get(url);
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
WebElement element = driver.findElement(By.cssSelector(cssSelector));
File screenshotFile = element.getScreenshotAs(OutputType.FILE);
30 Jul, 06:24
29 Jul, 06:24
26 Jul, 09:24
22 Jul, 06:24
4627055113374002
[email protected]
18 Jul, 06:24