Сам репозиторий ivory выглядит заброшенным (пять лет без коммитов). Это нормально?
Читать полностью…получился некий фреймворк поверх айвори, котрый позволяет описывать прощивки вот так в итоге
Читать полностью…Интересно, что ФОРМАЛЬНО всё выполнено не только правильно, но и довольно интересно для неофита, которым я уже 10 лет являюсь.
Читать полностью…Наконец-то я могу написать в Мейне что-то, за что меня сразу в Блах не пошлют. Итак. Есть у нас код на Фаршике такой:open Microsoft.Playwright
let screenshotTask =
task {
use! playwright = Playwright.CreateAsync ()
use! browser = playwright.Chromium.LaunchAsync (BrowserTypeLaunchOptions(Headless = false))
let! page = browser.NewPageAsync ()
let! _ = page.GotoAsync "https://www.bing.com"
let! _ = page.ScreenshotAsync (PageScreenshotOptions(Path = "screenshot.png"))
do! browser.CloseAsync()
return ()
}
screenshotTask.Wait ()
да, получается довольно безопасно! Можно с максимальным инлайном в си коде. Отлично компилируется GCC с -O3, и главное, потом работает =) а всякие HAL абстракции существуют не то что в рантайме, а даже не компайлтайме С!
Читать полностью…и легоко менять и вендора железа и сми мкироконтроллеры и компиляторы и либы для них
Читать полностью…Это тоже ivory? Когда-нибудь посмотрю - новых проектов для МК у меня нет, а старый переписывать я не хочу ("работает - не трогай").
Читать полностью…Конверчу. Получается-- Import necessary modules
import Control.Concurrent.Async (concurrently)
import Control.Monad (void)
import Playwright
-- Define a function to take a screenshot of a webpage
takeScreenshot :: IO ()
takeScreenshot = do
-- Create a new instance of Playwright
playwright <- createPlaywrightAsync
-- Launch a new instance of Chromium browser
browser <- withPlaywright playwright $ \pw -> launchChromiumAsync pw defaultBrowserTypeLaunchOptions { headless = False }
-- Create a new page in the browser
page <- withBrowser browser $ \b -> newPageAsync b
-- Navigate to the specified URL
_ <- withPage page $ \p -> gotoAsync p "https://www.bing.com"
-- Take a screenshot of the page and save it to a file
_ <- withPage page $ \p -> screenshotAsync p defaultPageScreenshotOptions { path = "screenshot.png" }
-- Close the browser
void $ closeBrowser browser
-- Main function to execute the screenshot task
main :: IO ()
main = takeScreenshot
И возникает у меня странная идея конвертнуть его в Хаскель с помощью новомодных фич.
Читать полностью…для hspec есть какая-нибудь обвязка чтобы за флакающими тестами гоняться?
как-нибудь через кэш на CI держать статистику самых проблемных веток и мб. рестартить даже известных вредителей...