This might be a bit advanced, but indeed a very good article.
This might be a bit advanced, but indeed a very good article.
It’s not that they are separated on the chart, but that they are comparable (on both axes), that impressed me.
One suggestion - if you get 10 plain black t-shirts, then implement your style!
I am a dev who was focused on design and ux early on (this has changed as the needs of my work changed).
@abhideckert’s suggestion on how to analyze the needs is great. Now on to the implementation.
Similarly to development, you start out with some requirements - you need to show an input box, a history of inputs, and a sidebar with categories. You work out the layout (with wireframes, pencil drawings, etc.). Then comes visual style, which I guess is the thing you struggle with?
In both layout and visual style, you need to apply design principles, but ultimately the goal is to guide the visitor’s eye to the right places. This is where rhythm, repetition and contrast play a role. Basically highlight important elements, make the order of elements logical and not boring, avoid large empty areas but leave sufficient “breathing room” between elements, etc.
For visual style, you should make your own “style guide” that you apply to all personal projects. You can vary it a bit for each, if you are worried about them looking the same. Make that into a css file with a dummy html page to test. Add an input box, a textarea, select, unordered lists, etc. and style all of them to your liking. This guide will capture a lot of visual ideas, colors, spacing, which you can paste straight into your project. Do not sweat too much about stealing other people’s ideas - it’s an intrinsic property of art, and anyway it will probably not look 100% the same even if you copy it.
Edit: PS: spend some time just looking at the design and thinking.
If you start it from the terminal, do you see any error output while it’s loading?
Not always, i think. There are some SSO solutions that behave like this, and password gets filled in fine.
Just thought of an example. If you want to, you can open a file at macroexpansion time, and generate code based on its contents. There are no limits, pretty much.
Both languages you mentioned i highly recommend.
Lisp macros are another level, because they are part of the language - you can use all language primitives to transform forms however you like.
Haskell will give you a different view of programming. It’s beautiful and concise, and implements all sorts of academic research in languages. Ocaml is similar in many respects.
Lisp macros.
But I’d be curious of the possibilities of generating code with tree sitter.
Ditto. Pity that a “renaissance” education is not in very high regard nowadays (or I’m not aware). It’s where a lot of innovation happens, too.
Yeah all this free energy waiting to be harvested
Yes, it is. I find navigating s-exps way easier. Also it has some lispy features, and macros.
Nice. I am working on some improvements to parenscript, this might come in handy.
Another reason to use libraries is communication. Would you prefer to receive a GitCommitResult in your code, or have to parse the stdout of the subprocess? If you need complex communication with the other program, then it needs to provide rpc or some other form of inter-process communication. A library avoids this issue.
Great answer. I am also a fresh “lead” and am struggling with some aspects, but as you said, clarifying the direction and working together are the most important ones. Pairing also allows you to explain things in more depth, which aids understanding.
We don’t do complex planning, usually have a few meetings and we start prototyping. So that’s been a non-issue luckily as a lead. Detailed estimation can be really exhausting and takes a toll on the team.
Another cool thing I realized - you avoid the chance of some framework updating under you and breaking everything. It’s a bit like pdf, it gets fixed and generally untouched.
A generator can help if you have a bunch of data that you need to convert to some html structure. I know what you are saying though, as little complexity as we can get away with, innit :)
For this reason I’m building my own generator in Common Lisp, leveraging cl-who and parenscript. All components are descibed in one place and render as web components, which allows me to attach dynamic behaviors easily.
This works great for business-card style sites, deployed to netlify.
It does look pretty damn cool. One thing that bothers me is it is in the npm ecoystem :)
Concepts like Reactive programming are widely used in web/UI contexts. The problem of connecting a UI to an underlying data set is not trivial. Several frameworks deal with this.
As was already said, concerns like Accessibility are studied academically. They have more to do with user experience than the technology, so not sure if they match your question.
This might be contrary to some, but i recommend diagramming! Can be anything from paper doodles to d2 to full blown uml diagrams. They help you stay focused, and aware of the program’s data dependencies.
Regarding code practices - read code. If you use a library for something, dive into its code. This can be beneficial in many ways - you observe the style they used, you understand better how the library works (documentation rarely contains enough detail), and you see how libraries are structured, which is often lacking in newbies.
Learn your language’s idioms. They can reduce complexity, and are usually more readable to people with experience in the given language.
Finally, don’t sweat it too much. The more you write, the better you’ll become, so just do it. New problems lead to new insights.