1. Work should be ecologic for humans as creative and explorative beings which live as long as they essentially can.
2. So the best code which solves a given (real or imaginary/perspective) problem, is no written code. If this solution for given problem exists.
3. Periodicity of multiple patterns/modes is a mitigation of negative effects of the Goodhart's law. "Work hard" and "follow easy path" are also patterns with limits.
4. So write less boilerplate "monkey" code, write more business-related and engineering code which provides you a recovery in future pauses.
Sometimes I also need to tweak requirements because if they were implemented naively, they would worsen a quality of feature in matured scope. For example, an additional notification for each asynchronous mutation (i.e. it's not applied immediately to affected data). However, some actions are sliced into different requests. And if you trigger "async" notification on each request, it will bloat screen with many repetitive notifications and thus worsen UX. Therefore, the best solution to balance UX, requirements, and simplicity was to include a message into some existing notifications instead of triggering a separate notification which was a default option. Though it kinda "violated" initial requirements. However, after some negotiation my balanced solution was accepted.
Without this negotiation a non-big but tricky problem would either take too many effort to resolve, or go into bloated mess of hacks which further prevents development from leveling up. Forget the "overqualified" meme, have a lead or senior engineer who has a deep understanding of project's internals
Очень жизненно! Причём хотя статья написана в 2023 году, проблема началась гораздо раньше.
Более того, вижу и ещё более плохую тенденцию: даже чисто desktop-приложения стали делать с интерфейсом как у мобильных.
I also love this website: https://gypsyplate.com/
Читать полностью…I wish you authentic relationships in your life which bring inspirations for your creative and exploration paths and harmonize your life. Happy Valentine's day! Let it give you a joyful light. 💜 💚 ❤️
Te deseo relaciones auténticas en tu vida que traigan inspiración para tus trayectorias creativas e de exploración y armonicen tu vida. ¡Feliz día de San Valentín! Deja que te dé una luz alegre. 💜 💚 ❤️
Желаю вам искренних отношений в жизни, которые вдохновляют на творчество и поиски нового и гармонизируют вашу жизнь. С днем Святого Валентина! Пусть он подарит вам радость. 💜 💚 ❤️
Yaşamınızda, yaratıcı ve keşif yollarınıza ilham veren ve yaşamınızı uyumlu hale getiren özgün ilişkiler diliyorum. Mutlu sevgililer günü! Nevruz öncesi size neşeli bir ışık versin. 💜 💚 ❤️
Hiteles kapcsolatokat kívánok az életedben, amelyek ihletet adnak kreatív és felfedező utaidhoz, és harmonizálják az életed. Boldog Valentin napot! Adjon örömteli fényt a Nowruz előtt. 💜 💚 ❤️
https://homepages.uc.edu/~thomam/Articles/HowSoftwareCompaniesDie.pdf
Читать полностью…What are soft-skills?
You may have soft-skills. But if you say that you have soft-skills, you certainly don't have soft-skills.
I released the PromptQL v6.x. Now PromptQL composition capabilities can be implemented fully from PromptQL side! It introduces execution of embedded PromptQL code. You can play with this new feature with these examples:
https://gitlab.com/jbyte777/prompt-ql/-/tree/release-6.x/tests/code-embedding/execute-embedding
The 6.x version can be installed following instructions in this branch:
https://gitlab.com/jbyte777/prompt-ql/-/tree/release-6.x
#PromptQL #promptengineering #prompts
#golang #go #programming #opensource #library #programminglanguage
#cottagesoftware #craftprogramming
#llm #LocalLLM
#blog
P.S. I think the principle of asynchronous or "lazy" execution of task can also be applied for work management. Thus adopting asynchronous remote work is not a kind of "rocket science" problem, which could cost a lot of effort.
Читать полностью…jzx777/making-bots-with-promptql-functions-in-prompts-d1be8cea6409" rel="nofollow">https://medium.com/@jzx777/making-bots-with-promptql-functions-in-prompts-d1be8cea6409
#PromptQL #llm #LocalLLM #Llama #golang #go #programming #opensource #library #programminglanguage #promptengineering #prompts
#cottagesoftware #craftprogramming #indieweb
#medium #article #blog
Стиль кода
Читал пост KOSки, думал. Исходник в посте напомнил о том, что думал про указатели на функции Роб Пайк.
И тут мысль пришла в голову. Люди шутят про Один-эсс и потом также шутя вопрошают как можно писать на том языке программирования, который использует для описания слова из твоего натурального mother tongue.
А вот так: Как авторы книги The elements of the programming style, которые ссылались на книжку о стиле в натуральном языке.
Формальные языки основанные на иных натуральных языках нежели анлийский это интересно, потому что может привнести что-то новое по форме. Язык это не просто, а совы не то чем кажутся
How can people management be performed in asynchronous remote work?
The idea of asynchronous remote work may sound wild for those who still believe in infinite acceleration of human work tempo. As micromanagement in the async work is not possible. But do we actually need it? If some work is so simple such that only an execution time or resource consumption matters, then this work should be automated with external tools or devices. This is what happened in case of development of higher level languages like C++, Pascal etc. which encapsulated common and trusted Assembly programming templates, for example. But Assembly programming work haven't become an energy drain machine (otherwise this work would just collapse and so development and maintenance of low-level systems). So current case with high level programming is not even close to this as there are a lot of work to be done in order to master higher level tools.
However, people management still needs a control on their employees to have a transparent feedback with users of product. But which if micromanagement is bad for complex work? From my experience of asynchronous work: just define meaningful schedule borders which are adequate to complexity of task. This is only possible with dialogue and trust for experienced software engineers, who are responsible for handling a project. Meaningful time spans from minimum of one day. In this case it is not matter at which hour a task is completed. It is a matter that it is known that task is eventually completed and validated. For example, if I have a task for "2 days" and I have a leisure time one day at midday, then I just continue working on this task at evening. Or I can do it at midday instead. It depends on my inner "clock". So it's clear how to solve the management problem with async work scenario.
There is another problem though: synchronization with team members on common work. However, if synchronization is needed too often then it's a problem which is similar to micromanagement. My favorite style of handling synchronization is just allocating a certain part of day for gathering requirements until exhaustion for a scope of feature(s). This also solves a problem of losing productivity on frequent context switches (which hurts more in case of "programming - human communication" than between different programming areas).
So both problems are solvable in simple ways. But social aspect is still left. As asynchronous work is still not a common trend now, a guy who works in this fashion, poses a competition pressure on those who can't work this way, but need to satisfy their "greater image". To this situation I can answer only with this: if you work good in way X, then it's good for you and you have other satisfying things. Otherwise you just need to switch to some peaceful strength-intensive activity.
A process of degradation of software industry:
1. IQ of average white collar man: 110. IQ of average software engineer: 120.
2. Do "reverse Flynn effect".
3. IQ of average white collar man drops to 95. IQ of average software engineer: 120.
4. Average white collar man is angry as software engineers become more autonomous than them. As engineers are smarter than them. Average manager "should be higher than them gruuuug".
5. Throw out "overqualified" engineers, force micromanagement, simplify development to only a bunch of hype frameworks and libs, simplify design and features which are suitable for monkeys with short focus and memory.
6. Average white collar man is satisfied with their power image.
When architecture of project is built on cargo cult programming patterns and temporal hacks.
Читать полностью…Micromanagement is evil of productive engineering work
Читать полностью…https://github.com/embedded-graphics/embedded-graphics
Читать полностью…Sometimes I find an inspiration for programming techniques or solving a certain problem in external hobbies. Like cooking which is a favorite besides programming (this also used to help me to dive in asynchronous and multi-threading programming for more).
These are my dishes which I cooked recently:
1-2 - Pumpkin soup boiled on milk with linen seed
3 - Mussels boiled in milk with linen seed
4 - Sweet potato with egg and tuna
5 - Oat porridge with blue cheese and linen seed
( yep, linen seed is my favorite seed :p )
https://habr.com/ru/companies/ruvds/articles/777420/
Читать полностью…Recently I wrote another article on making bots by prompt engineering with PromptQL. I explained how expansion and execution of code embeddings brings full power to prompt templates. Here it is:
jzx777/making-bots-with-promptql-code-embeddings-5b21efd52c51" rel="nofollow">https://medium.com/@jzx777/making-bots-with-promptql-code-embeddings-5b21efd52c51
For purpose of examples, I ran bot with the Openhermes Mistral 2.5B model and the llama.cpp server.
Openhermes model:
https://huggingface.co/TheBloke/OpenHermes-2.5-Mistral-7B-GGUF
llama.cpp server:
https://github.com/ggerganov/llama.cpp/tree/master/examples/server
#PromptQL #promptengineering #prompts #ai
#golang #go #programming #opensource #library #programminglanguage
#llm #LocalLLM #openhermes #llamacpp
#cottagesoftware #craftprogramming #indietech
#blog #article #medium
Most of UI features I met in various apps and websites, are focused on making using some service in easier way. Features which does the opposite, seem also interesting for me. This type of features makes usage of some addictive function harder, so energy cost of using these features can be at least perceptionally equalized to cost of doing something hard but good. However, I saw this principle only for features which attribute to negative profit for sales (ex. "unsubscribe" button which usually seems like an ARG quest). And not for features which attribute to positive changes for user: for example, making reading chat groups hard to view so user could focus more on their hobbies etc. I know that implementing this scenario in transparent way for user attributes to negative profit for service's stakeholders through chain in trivial case. So making "antiaddictive" features which benefit both for user and business to maximum degree, is a tricky task. But it's interesting because it makes managing software in more convenient way (you don't need to store somewhere which groups you've left etc.)
Читать полностью…Being lazy sometimes is good. It forces you to value your energy more to do only reasonable things when doing unreasonable things cost you a damage.
Читать полностью…In the post about software engineers' burnout I briefly mentioned cargo cult programming patterns. Recently I got an insipation to introduce one notable example of them.
Callbacks. Normally callbacks serve for "lazy" or asynchronous execution. When precomputing some data has high pure computation costs, may trigger unnecessary invocation of garbage collector on big chunk of data. When part of computation is outsourced to other components/systems which live their life, and can parameterize computation with their own data (a very notable example is the client-server interaction when server can use internally stored data along with client's data, "agent" callbacks). I.e. when computation triggers long pause at some moment. So asynchronous/"lazy" execution of code can be explained as doing a big working task X (executed by both agents Alice and Bob) in two separate smaller tasks: one for Y thing, one for Z thing, Z depends on Y, Y is executed by agent Bob, Z is executed by agent Alice. So executing "X(Alice, Bob)" is turned into executing "Y(Bob, () -> Notify(Alice, "can-do", Z))". And thus while Bob executes Y, Alice can do other things without waiting for Bob. When Bob finishes his task, he notifies Alice that she can do task Z. And thus Alice and Bob do their work in more efficient way, than if she and Bob executed the task X together.
However, I saw misuse of callbacks in code several times. This was in a code like this:
const funcX = () -> {
const something = () -> {
return anObject;
};
return funcY("somedata", something());
};
const funcX = () -> {
return funcY("somedata", anObject);
};
How can individualism and harmonic life come along with each other? Aren't they opposite means?
It depends on how "harmony" is defined. In general it can be thought as an alignment of perception with non-conscious things. And this is where a nature of competition between two core groups plays its role. For the passion-driven group a harmony is usually limited to keeping a good health, walkable space, privacy and peace. And this is achievable even in periods of economic recession or depression. For action-driven group a desire of harmony tends to expand to other people treating them as finite spanning assets, to look greater than them and their neighbors.
So for the passion-driven group both concepts can perfectly match each other. For the action-driven group both concepts are more antagonists to each other.
So a role of passion-driven group is as usual to minimize environmental damage from intraspecific competition of action-driven group. That's why public technical education and open-source are important now. They eventually lead to more broader, less monopolized markets which minimizes environmental damage. Though it may sound paradoxically to those who continue to believe in "good will of almighty closed-circle companies and unions".