• =?UTF-8?Q?Skan_Etm=C9=99k?=

    From Baldomero Cramer@baldomerocramer@gmail.com to uk.rec.waterways on Sat Jan 20 10:02:47 2024
    From Newsgroup: uk.rec.waterways

    Skan helps organizations be greater at business by helping them improve the way they operate. Our secure and privacy first platform is quick to install, requires zero integration, and has zero disruptions and operates at scale. With the power of AI driven computer vision, Skan continuously observes work as it happens and captures the true nuance of business processes as they actually are. Skan is a global organization headquartered in Menlo Park, CA with employee centers in Seattle, Bangalore, Boston, Ottawa and more. To learn more, visit www.skan.ai.
    I've recently been spending some time building my own little tool to track myTODOs, skan. While building this, I've re-learned some lessons that Ilearned early only in my programming journey and some even played a large rolein my decision to continue to pursue programming.
    skan etm+Ok
    DOWNLOAD https://t.co/mB9WHQwqJT
    When you first start programming (at least in more modern times) you undoubtedlygo through a phase where you're following tutorials, learning the basics of thestack you're using, and just exploring what's possible. This is a great wayto get introduced to something, in fact I actually was in the process of doingthis with go right before I started this project. I was following a videoserieson building a CLI kanban board with BubbleTea, which is a really rad TUIlibrary for go. However, there comes a time where you must move on from thetutorials and start building your own ideas, and when you do that, magicalthings happen. I've even found now that after you start building stuff on yourown, finishing tutorials gets pretty difficult because you (well, at least I do)want to veer off immediately in your own direction and try your own things. Thereason for that, again at least for me, is that it's an incredible feeling tobuild something from scratch -- to take an idea in your mind and make it areality. Early on when I was learning to program I was part of a communitycalled Merveilles and they embody this idea,that you can take your ideas and make them reality. Even if no one else cares,no one else will use them, you care, and that's enough. Simply the act ofthinking of an idea and seeing it through fruition is a really powerful thing.I've built lots of little tools early on that made me feel so engaged andpowerful when I was on my computer. Over the years I've gotten away from that,focused on building tools for other people, and forgot how good it feels tobuild something for myself. skan has reminded me of how good it feels tobuild something for me. Building this little tool has been probably themost fun I've had programming in quite some time.
    I'll be pretty honest, I'm not a JVM guru. Scala was the first language I trulydove into and started to go beneath the surface, but I'm still in murky waterswhen I go too deep. Since skan is a CLI app, I didn't want to use theJVM, which originally had me considering other languages. However, I wasintrigued when I saw oyvindberg/tui-scala, especially since thenative image examples were quite snappy. scala-cli also makes itcrazy simple to produce a native image with GraalVM, so I figured I'd give it atry. My very limited experience in the past with native images have been prettyterrible. Getting everything set up was a chore, and then when it was ready togo you almost always hit on cryptic initialization errors that really do forceyou to understand some stuff that I've never really cared about. I waspleasantly surprised when I was able to just run scala-cli package --native-image skan/ and it produced me a nice little executable. That wasuntil I tried running it and got:
    Since skan is a CLI app, you want a way to display the current versionthat is being used. The way I would typically do that is with a tool like Imentioned above, sbt-buildinfo. It's common to use, computesthe version from git, and generates a BuildInfo.scala file that you can use.scala-cli has no ability to generate code likethis. It's not until yourealize you can't do something or that something isn't supported that you trulymiss the ability to do that thing. To get around this I have another script thatends up being ran before any compilation is ran with scala-cli. The script isquite simple:
    I uses the library portion of sbt-dynver tocompute the version based off git tags, generates a BuildInfo.scala file withthat version, and then copies that file into the main skan directory under the.scala-build/ directory that scala-cli creates. Then inside of myproject.scala I have the following:
    I've said it multiple times, but skan was such a fun little project forme. It's not the most challenging software, most elegant, or even unique. Thereare other TUI kanban boards out there with a way larger feature set, but that'ssort of the beauty of software development -- you can build whatever you want tofit your exact needs. I encourage you to build something for yourself. Whetherit makes sense for other people, it doesn't matter. You'll probably hit onthings that don't work and learn something new in the process. You'll probablywish you had something that X other tool had, and it'll cause you to add somehack that causes you to appreciate that other tool. At the end, you can lookback at this tool you built for yourself and feel proud that you built somethingfrom scratch, and it's yours. The same concept probably applies to libraries,but I despise writing those. Maybe you despise the idea of writing your owntool, and that's ok too.
    f448fe82f3
    --- Synchronet 3.21d-Linux NewsLink 1.2