janriemer,

It's alive!🎉

I've built a in , compiled it to and integrated it into a app! :awesome:

It's called selecuery.✨

It can transpile X++ select statements into query expressions. If you think "X++" is a typo and you don't have any idea of what I'm talking about, don't worry.😄

Have a look at the video below.

This project is dear to my heart! ❤️ I've started it 2019 for learning .

I think, I've been transpiled during this project as well.🤪

A video showing a web app with two code editors side-by-side. On the left, source code is entered, which looks like an SQL dialect. As the code is entered on the left, the code editor on the right updates in real-time. The right editor shows the SQL-like statement in a very different form, namely as a sequence of method calls on a query object. So it has just transpiled a declarative SQL-like statement into a procedural query expression. You can think of it a bit like C#'s LINQ: LINQ also has a declarative form and a procedural form.

janriemer,

Ha, I always wanted to do this kind of "sales pitch" thingy.😄

Quite pleased with it.😊

(The styling itself is not ready yet. I've wanted to get the content out first. The grid style itself will stay, though).

janriemer,

Sigh, I just love ! ❤️

Look at this - there is no involved in those animations whatsoever (except for adding the CSS class that does the animation).

So beautiful!😍

I've struggled quite a bit with the following:
use different delay values for the item's scale animation, but do not delay the scale when hovered. The solution has been to wrap the item into an additional element and animate those when hovered. 💡

A video of my webapp "selecuery". When the user scrolls down the page, an animation is happening: different grid items appear by transitioning their scale from 0 to 1, each with (what looks like) a random delay. After the grid items have appeared, the user can hover over them. When doing so, a box shadow surrounds the item and it very slightly scales bigger in size.

superlime,

@janriemer Looks cool!

You still have to use IntersectionObserver that adds the CSS class when those come into view, right?

janriemer,

Yay, I've created a cute little logo/icon for 's dark theme. :awesome:

It's absolutely not perfect, I know, but it's also my first logo design, so we are still learning... 🤓

dunkelstern,
@dunkelstern@kampftoast.de avatar

@janriemer I am no graphic designer on my own but i worked with many so just a bit of constructive feedback:

  • Make sure line widths are consistent for "same type" strokes
  • Make sure the Logo can be viewed from far away or in very small sizes and still be distinctly recognized
  • Try what happens if you make a black and white only version (no greys), is it still recognizable?
  • Transparencies in logos are often times bad practice because they cannot be printed with all processes
janriemer,

@dunkelstern Thank you for your good feedback! ❤️

> consistent width

Oh, you are totally right! The "S" and "C" don't line up ("S" stroke needs to be wider).

> viewed from far

My first version totally failed in this. This one I've placed directly on the navigation pane while designing and put zoom level to 100% (no zoom).
But you are right, I prob should increase the width of every stroke.

> black/white only version
Good idea!

> cannot be printed with all processes
What does this mean?

dunkelstern,
@dunkelstern@kampftoast.de avatar

@janriemer About printing: There are multiple ways a color can be printed: You have point colors (something like RAL or Pantone coloring systems) where each color is mixed before printing, there you have the option to use colors that are transparent (expensive) and some that are non-transparent. So this is basically a non issue, but usually you'd opt for CMYK printing where colors are mixed by dithering. If you create transparencies here you basically change the dither pattern to create... 1/2

dunkelstern,
@dunkelstern@kampftoast.de avatar

@janriemer ... the mixed color. When this happens you will not get "sharp" edges. You can do the full rainbow but it will be grainy and the edges blur. If you go to black and white you basically only have the option to dither the black dots to create gray areas so if you can you try to not use gradients or many steps of gray because you will get either grainy prints or "color" banding when the process cannot resolve all grey values so basically everyone will create a b/w version in addition. 2/2

janriemer,

@dunkelstern Oh, I see, this is interesting. Haven't thought about that before.

Thank you for the thorough explanation!❤️

dunkelstern,
@dunkelstern@kampftoast.de avatar

@janriemer so what would i change? Make the strokes fatter than they are, exagerate the S-Shape so more of the ends will be visible when flattening everything to one color, perhaps use a stroke around the S to make it more visible where it overlaps. Keep the differenciation between the C stroke width and the "filler" as that makes it recognizable. Make sure the gaps and probably the stroke around the S are consistent within the line widths of the other components

janriemer,

@dunkelstern Oh, that is such good feedback, thank you so much!❤️

I need to leave my PC now, so please don't wonder why there are no more answers from me for a while. 🙂 👋

dunkelstern,
@dunkelstern@kampftoast.de avatar

@janriemer All in all very good base and fitting logo for the thing. You can always do more refining and nothing is perfect ever, so thumbs up from me for trying to create a logo in the first place :)

happyborg,
@happyborg@fosstodon.org avatar

@janriemer 👏 my learn some Rust project was and turned out to be the first useful thing I've written in years.

Congrats.

janriemer,

@happyborg Thank you!😊

Yes, I remember vdash! I reckon it makes use of threads (or maybe even async?) to update the TUI and enable streaming updates, so I can imagine that it must have been a great learning experience for you! ✨

It's really the best way to learn: Setting ambitious goals and then building it one step at a time.

happyborg,
@happyborg@fosstodon.org avatar

@janriemer it's fairly simple in fact using another crate to do the tricky stuff and just feed me logfile lines one by one.

So it is async but easy peasy, also basing on examples from the terminal crate.

What's nice is that people still want to use it.

janriemer,

@happyborg Very cool that it is still used by people! Such a good feeling to create something that provides real value to people.

> using another crate to do the tricky stuff

Yeah, the crate ecosystem is amazing, isn't it!? :ferris:

  • All
  • Subscribed
  • Moderated
  • Favorites
  • rust
  • kavyap
  • mdbf
  • tacticalgear
  • osvaldo12
  • InstantRegret
  • DreamBathrooms
  • cubers
  • magazineikmin
  • thenastyranch
  • khanakhh
  • Youngstown
  • slotface
  • rosin
  • ethstaker
  • JUstTest
  • tester
  • GTA5RPClips
  • Durango
  • modclub
  • Leos
  • ngwrru68w68
  • everett
  • anitta
  • cisconetworking
  • provamag3
  • normalnudes
  • megavids
  • lostlight
  • All magazines