home.social

#infix — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #infix, aggregated by home.social.

  1. Just in time for the weekend SinoVoip delivered both casing and an LTE module so I can pick up the modem branch of Infix OS again! 🎉

    I know, I’m such a geek, but I really do believe in this little project to eventually replace

  2. Work in progress ... with the BPi-R4 support merged to Infix OS, it's high time for new cool features! 😎

  3. Work in progress ... with the BPi-R4 support merged to Infix OS, it's high time for new cool features! 😎

    #infix #networking #lte #modem #linux #bananapi #bpir4

  4. Work in progress ... with the BPi-R4 support merged to Infix OS, it's high time for new cool features! 😎

    #infix #networking #lte #modem #linux #bananapi #bpir4

  5. Work in progress ... with the BPi-R4 support merged to Infix OS, it's high time for new cool features! 😎

    #infix #networking #lte #modem #linux #bananapi #bpir4

  6. Might have the best gig ever? I now get paid to read IEEE standards AND implementing them 🤩

  7. Next stop for Infix OS before we maybe go visit a conference is to add 4G/LTE support (I know, but that’s all we can afford without corporate backing). Today we got access to the source code one of our customers use, so that should speed things up considerably 😎

    I’m also working on the first WebUI but it’s slow since I’m no expert. Maybe it’s like they say, slow and steady wins the race?

  8. Uh, spent the entire day debugging a random issue that only ever happens on our physical test rigs. None of the virtual (Qemu w/ qeneth) ones show it. Wasted the entire day on various theories so tomorrow I’m building my own physical test rig with some SBCs I’ve got at home.

  9. Hope it'll be a fun weekend project! 😃 I also have another Banana Pi router board to add support for in but that's background work and shouldn't be that hard since all of the device tree and driver work has been done already upstream.

  10. Oh, and we merged Banana Pi BPi-R64 support today! 🎉 It's a bit older but still very capable, not to mention affordable little router.

    kernelkit.org/posts/banana-pi-

  11. On a mission to improve our blog, today I added some more bells a whistles to get post preview on social sites. Let's try it out here!

    kernelkit.org/posts/router-boa

  12. So we've since reverted now that we've learned about the new LTS cycles. A bit late, but at least before we did our release 😅

  13. Today's representative-sample-radio #infix-#RSFjoke: Hit & Miss Parade

  14. CW: Boring post about yet another network operating system, Infix OS.

    Hope to soon share a blog post on how we've adopted and are now in progress to promote the BPI-R3 to tier 1 status in it's quite an affordable switch/router and home gateway.

    Infix?

    Infix is a 100% YANG based OS for embedded (networked) devices that you can control remotely using and

  15. Today's 80s-music-mashup-request #infix #RSFjoke: Walking on a Heart of Broken Glass

  16. Amazing, my addition of DHCPv6 client support made it to Infix OS! Funnily enough, one of the regression tests I added for this was consistently failing on two of our HW test rigs. Turns out it was ... DNS. The clients tried to ping an fqdn where dnsmasq only returned an AAAA record. Things went smoother when I added a dummy A record 😄 (dummy = invalid IPv4 address).

  17. Today's talk-properly-to-the-animals #infix #RSFjoke: Doctor Eliza Doolittle

  18. Today's don't-get-me-started #infix #RSFjoke: baba yaga ghanoush

  19. So we made another release, nothing fancy, like the big operating systems out there. We just did another LTS bump of all critical components, fixed all the high-severity bugs, AND added support for yet another platform, the Banana Pi-R3 this time.

    So, nothing spectacular, just plain boring stability that you'd expect from a critical load-bearing component in your stack.

    github.com/kernelkit/infix

  20. Sorry, Mastodon does not render multiple links well, here's the link to Infix OS, which you might've been looking for your whole life?

    github.com/kernelkit/infix

  21. Some things I'm especially proud of in plusminus (my Python package for parsing and evaluating infix notation arithmetic):
    - |absolute value| expressions
    - ° symbol as a unary postfix operator, to convert degrees to radians: sin(π/2) vs. sin(90°)
    - exponents ² and ³
    - √ and ³√ operators (both unary and binary, so you can write 2√2)
    - mathematical constants e, π, φ, and τ
    - set operators ∈, ∉, ∩, and ∪
    - safe eval of untrusted inputs
    Try it at ptmcg.pythonanywhere.com/plusm

  22. For most (all) of our automated testing in we use which is amazing in every way and really fit for purpose, but in the project (and many others) I rely on plain shell scripts, and OMG it's so easy to forget how powerful scripting is!

  23. Spent my last day of vacation updating the R2S to support secure boot and read-only rootfs to make it a pure citizen of really great feeling when it started the locked down U-Boot verified the signature of the primary partition and booted up perfectly 😎✌️

  24. Almost done porting to our first target, a so cool 😎

  25. Great feeling to have lawn mowed, gravel walk cleaned, parts of jungle area in the back reclaimed. All while contemplating the .cfg file upgrade mechanism in

  26. Yay, now has PAM support! This means we can proceed with the next steps in our journey towards a new kind of network operating system! 😍

    github.com/kernelkit/infix/com

  27. Aaaaand done! Just like mum used to make em, crisp and clear right out of the oven at GitHub

    Another amazing release by the team. This time the focus was on adding OSPFv2 + BFD and Docker containers. Quite a neat feature for a switch or router.

    github.com/kernelkit/infix/rel

  28. At least the Docker container support for was merged today. Super proud of our little operating system growing up 😍

    github.com/kernelkit/infix

  29. CW: Створення операторів і стандартні оператори :haskell:.

    У Haskell можна оголошувати свої оператори. Вони можуть складатись з одного або кількох символів. Дозволяються наступні символи ~!?.@#$%^&*-<=>+\|/. Також можна використовувати символ :, але він повинен розташовуватись у середині або кінці, не на початку.

    Оголошуються оператори в синтаксисі схожому на виклик

    x *+* y = x^2 + y^2
    

    або можна використати префіксну форму

    (*+*) x y = x^2 + y^2
    

    Примітка: Функції можна оголошувати в інфіксній формі.


    ЗВЕРНІТЬ УВАГУ!: Усі оператори є бінарні окрім унарного мінуса який обовʼязково обгортають в круглі дужки.

    Усі оператори мають пріоритети для правильної роботи, саме за їхньої допомоги вираз 2 + 2 * 2 вичислюється правильно й результат дорівнюватиме 6, а не 8. Є десять рівнів пріоритету від нуля до девʼяти.

    Але що робити з кількома операторами якщо у них один пріоритет, це може бути кілька викликів одного оператора. Тут потрібно використати асоціативність. Є два види асоціативності ліва і права. Ліва асоціативність це коли оператори застосовуються по черзі зліва на право, а права навпаки.

    (2 + 1) - 5 -- ліва
    2 + (1 - 5) -- права
    

    Оголошується асоціативність оператора за допомоги ключових слів:

    • infixl - ліва
    • infixr - права
    • infix - відсутня

    Якщо асоціативність відсутня, то такий оператор не можна викликати кілька раз або з іншими операторами того ж пріоритету в одному виразі.

    Вказується асоціація і пріоритет у такому синтаксисі infix[rl] <prio> <operator>. Вказується це, або до, або після оголошення самого оператора, але в інтерпретаторі це мусе бути одним рядком, тому їх потрібно розділити крапкою з комою.

    infixl 7 +**
    a +** b = a^2 + b^2
    

    Якщо цього не вказати, то оператор матиме ліву асоціативність і девʼятий, найвищий, пріоритет.

    Дізнатись цю інформацію про оператор можна за допомоги команди інтерпретатора info.

    ghci> infixl 7 +**; (+**) a b = a^2 + b^2
    ghci> 5 +** 4
    41
    ghci> :i (+**)
    (+**) :: Num a => a -> a -> a 	-- Defined at <interactive>:1:15
    infixl 7 +**
    

    Якщо явно не вказати infix, то й у виводі цієї команди не буде такої інформації.

    У Haskell немає вбудованих операторів. Всі стандартні оператори оголошені в стандартній бібліотеці. Є такі стандартні оператори.

    infixr 8   ^, ``
    infixl 7   *, /, `div`, `mod`
    infixl 6   +, -
    infix  4   ==, /=, <, <=, >=, >
    

    Це не всі, але інші ми розглянемо пізніше. Оператор `` це оператор виклику функції в інфіксному форматі. Виклик функції у префіксному вигляді має праву асоціативність і девʼятий пріоритет.

    /= це оператор не рівності, в інших мовах зазвичай він виглядає !=. Оператори порівняння не мають асоціативності, тому їх не можна обʼєднувати в ланцюжок.

    #програмування #haskell #hs #оператори #створення #оголошення #асоціативність #пріоритети #стандартні #стандартна #бібліотека #інтерпретатор #ghci #infix #infixl #infixr #виклик #функції #функцій #префіксна #інфіксна #форми

  30. CW: Створення операторів і стандартні оператори :haskell:.

    У Haskell можна оголошувати свої оператори. Вони можуть складатись з одного або кількох символів. Дозволяються наступні символи ~!?.@#$%^&*-<=>+\|/. Також можна використовувати символ :, але він повинен розташовуватись у середині або кінці, не на початку.

    Оголошуються оператори в синтаксисі схожому на виклик

    x *+* y = x^2 + y^2
    

    або можна використати префіксну форму

    (*+*) x y = x^2 + y^2
    

    Примітка: Функції можна оголошувати в інфіксній формі.


    ЗВЕРНІТЬ УВАГУ!: Усі оператори є бінарні окрім унарного мінуса який обовʼязково обгортають в круглі дужки.

    Усі оператори мають пріоритети для правильної роботи, саме за їхньої допомоги вираз 2 + 2 * 2 вичислюється правильно й результат дорівнюватиме 6, а не 8. Є десять рівнів пріоритету від нуля до девʼяти.

    Але що робити з кількома операторами якщо у них один пріоритет, це може бути кілька викликів одного оператора. Тут потрібно використати асоціативність. Є два види асоціативності ліва і права. Ліва асоціативність це коли оператори застосовуються по черзі зліва на право, а права навпаки.

    (2 + 1) - 5 -- ліва
    2 + (1 - 5) -- права
    

    Оголошується асоціативність оператора за допомоги ключових слів:

    • infixl - ліва
    • infixr - права
    • infix - відсутня

    Якщо асоціативність відсутня, то такий оператор не можна викликати кілька раз або з іншими операторами того ж пріоритету в одному виразі.

    Вказується асоціація і пріоритет у такому синтаксисі infix[rl] <prio> <operator>. Вказується це, або до, або після оголошення самого оператора, але в інтерпретаторі це мусе бути одним рядком, тому їх потрібно розділити крапкою з комою.

    infixl 7 +**
    a +** b = a^2 + b^2
    

    Якщо цього не вказати, то оператор матиме ліву асоціативність і девʼятий, найвищий, пріоритет.

    Дізнатись цю інформацію про оператор можна за допомоги команди інтерпретатора info.

    ghci> infixl 7 +**; (+**) a b = a^2 + b^2
    ghci> 5 +** 4
    41
    ghci> :i (+**)
    (+**) :: Num a => a -> a -> a 	-- Defined at <interactive>:1:15
    infixl 7 +**
    

    Якщо явно не вказати infix, то й у виводі цієї команди не буде такої інформації.

    У Haskell немає вбудованих операторів. Всі стандартні оператори оголошені в стандартній бібліотеці. Є такі стандартні оператори.

    infixr 8   ^, ``
    infixl 7   *, /, `div`, `mod`
    infixl 6   +, -
    infix  4   ==, /=, <, <=, >=, >
    

    Це не всі, але інші ми розглянемо пізніше. Оператор `` це оператор виклику функції в інфіксному форматі. Виклик функції у префіксному вигляді має праву асоціативність і девʼятий пріоритет.

    /= це оператор не рівності, в інших мовах зазвичай він виглядає !=. Оператори порівняння не мають асоціативності, тому їх не можна обʼєднувати в ланцюжок.

    #програмування #haskell #hs #оператори #створення #оголошення #асоціативність #пріоритети #стандартні #стандартна #бібліотека #інтерпретатор #ghci #infix #infixl #infixr #виклик #функції #функцій #префіксна #інфіксна #форми

  31. Trying to put together some material for a series of workshops on there’s so much to cover but it’ll be mostly about since that’s what we’re building on.

    There’s something to be said about building on a solid foundation. But when you know, you know.

  32. We also opened up the public project plan and roadmap for today. We’ll be moving more private stuff here, and some new customers will be having direct access to the board.

    github.com/orgs/kernelkit/proj

  33. Container support v1 in is almost done. Only one little thing to address in the YANG model and a couple more regression tests.

    First demo for end customer Thursday 😎

  34. So nope, doesn’t seem to support multi-arch manifest generation. Too bad, a really great tool otherwise. Had to resort to which works right out of the box in a GitHub action.

    Easy peasy container squeezy 😎

    That was the biggest hurdle to little AppStore! Onwards and upwards 😊

  35. So nope, #skopeo doesn’t seem to support multi-arch manifest generation. Too bad, a really great tool otherwise. Had to resort to #buildah which works right out of the box in a GitHub action.

    Easy peasy container squeezy 😎

    That was the biggest hurdle to #Infix little AppStore! Onwards and upwards 😊

  36. So nope, #skopeo doesn’t seem to support multi-arch manifest generation. Too bad, a really great tool otherwise. Had to resort to #buildah which works right out of the box in a GitHub action.

    Easy peasy container squeezy 😎

    That was the biggest hurdle to #Infix little AppStore! Onwards and upwards 😊

  37. I mean, it’s near impossible to learn and understand all the nuances of YANG. Spent the better part of the afternoon trying to figure out a basic replacement deviation.

    But hey, the alternative would be even worse. I’d much rather spend my time modelling my system than debugging if statements and custom regexps in my C code.