LiteLLM HAS BEEN COMPROMISED, DO NOT UPDATE. We just discovered that LiteLLM pypi release 1.82.8. It has been compromised, it contains litellm_init.pth with base64 encoded instructions to send all the credentials it can find to remote server + self-replicate. link below
Engineering job openings are at the highest levels we’ve seen in over 3 years
There are over 67,000 (!!!) eng openings at tech companies globally right now, with 26,000 just in the U.S. We don’t know if there would have been more open roles if not for AI or if AI is actually leading to more open roles, but since the start of this year, the increase in open eng roles is accelerating even more.
Perfect example of why I got disappointed with program verification. Too often the post-condition is just a pure functional version of the imperative implementation. Why bother even writing the imperative code, assuming a decent compiler will optimize the former into the latter under the covers for you.
What's the simplest proof of false using type-in-type? I see examples that construct Russell's paradox by modeling set theory, but that seems a bit roundabout -- is there something more direct?
Shallow knowledge of languages with
2) good approach to concurrency: Erlang, Haskell, Scala, Rust, Clojure
3) advanced types: Haskell, Scala, Unison, Agda
4) Python libs for ML, LLM, quantum, biology ...
1) NVC
5) Lisp, ASM, Latin
Deep knowledge of language that pays your bills
You should know at least one programming language deeply.
This language should be C++
Shallow knowledge of Python, JavaScript, Rust, Bash, Haskell, OCaml, Ruby, Matlab, PHP, Java, R, Julia, Perl, Go, C, Elixir, Zig, SQL, HTML, CSS, French, Scratch, Kotlin, Scala, C# is a plus.
Wieczorny kącik dla ludzi otumanionych ruską propagandą - przedstawiam obalenie kolejnych argumentów które są rozsiewane przez RUS propagandę w kwestii ataku dronów przez PL terytorium a które dla ludzi którzy nie mają do czynienia z wojskowością i techniką wojskową mogą brzmieć racjonalnie:
1) Skoro to były Rosyjskie drony z których cześć (Gerbera) odpalono z Białorusi to dlaczego Białorusini uprzedzili naszych?
Wyjaśnienie jest bardzo proste: Rosjanie wypuścili aż 21+ środków napadu powietrznego żeby mieć pewność że polskie i NATOwskie systemy w Polsce wejdą w tryb bojowych. To samo miało na celu wypuszczenie przez Białorusinów informacji o ataku fali dronów bez podania ich rodzaju. Celem było "wymuszenie" pracy bojowej radarów polskiej obrony przeciwlotniczej, AWACSów, F-16, F-35A itp. Było to dla Rosjan ważne ponieważ podczas trwających ćwiczeń ZAPAD Rosjanie mają rozwinięte przy polskiej granicy jednostki walki radio elektronicznej które "nasłuchują" (czytaj klasyfikują i zbierają emisje) z polskich i NATOwskich systemów. To samo robią zawsze Białoruś. W efekcie próbowano w ten sposób wzmocnić efekt nalotu dronów i dodatkowo "przymusić" polskie systemy do pracy w emisjach czasu wojny które to miały rozpoznać systemy rosyjskie i białoruskie rozwinięte koło Brześcia.
Od siebie dodam że nie mogę wdawać się w szczegóły ale akurat ta część planu nie za bardzo udała się Rosjanom :)
Po drugie - "ostrzeżenie" Białorusinów jest zgodne z doktryną Gierasimowa czyli "rozmywaniem" odpowiedzialności i utrudnianiem jednoznaczengo wskazania sprawcy działań okołoprogowych.
2) Jak to możliwe że dron spadł na dach i przebił strop a gdzie indziej lądował na polu i gdzie są ślady lądowania?
To co spadło na dach to nie był rosyjski dron. Co już wskazała nie wprost prokuratura. Zapewne w przyszłym tygodniu będzie z tym związane wyjaśnienie MONu zaś rodzina dostanie odszkodowanie i to sowite. Stało się to czego wszyscy się spodziewali w przypadku strzelania do RUS dronów nad Polską. I tutaj tą kwestię zostawiam do przyszłego tygodnia.
Co do Gerbera lądujących na polu bez śladów: to jest ultralekki dron o masie "suchej" tj bez paliwa około 5-10-15kg (zależnie od ładunku i wersji ) w przypadku wypalenia się paliwa często ląduje on lotem ślizgowym lub "przepada" ale uderzenie w ziemie zwykle tylko wyrywa silnik zaś sam dron jest mało uszkodzony. Gerbera jest na tyle lekka że krzaki lub drzewa są w stanie "złapać" drona który na nich zawisa.
3) Dlaczego na ukraińskiej mapie było widać dolot dronów przez Ukrainą a nie z Białorusi?
Bo jest to mapa Ukraińska która grupuje dane OSINTowe w tym od alarmów przeciwlotniczych i sieci czujników akustycznych. Oraz dane "historyczne" tj raport SZU po atakach i obwodowych administracji. Nie jest to mapa "oficjalna" i nie jest to projekt SZU.
Co więcej - nie jest ona w stanie wykrywać odpaleń z terenu np. Białorusi w kierunku Polski.
4) Dlaczego A330 w polskiej przestrzeni "coś tam"
Najgłupszy z argumentów. Nad Polską regularnie jest kilkadziesiąt samolotów NATO i dronów - od rozpoznawczych, przez tankowce, transportowce po AWACSy i samoloty wielozadaniowe. Część ma włączone transpondery cześć nie. W zasadzie od 2022 stale, dzień w dzień mamy jakieś maszyny NATO wykonujące jakieś zadania w naszej przestrzeni. Obecność takiego lub siakiego samolotu NATO w okolicy rosyjskiego ataku na Ukrainę przez nasze terytorium oraz użycia Gerbera w naszej przestrzeni nie świadczy o niczym poza tym że NATO jest stale i nas chroni.
5) Dlaczego ukraińska obrona przeciwlotnicza nie zestrzeliła dronów lecących w kierunku Polski?
Bo nie miała czym i jak na trasie ich przelotu. Już od dawna OPL Ukrainy działa tylko wobec środków napadu powietrznego które kierują się w stronę witalnych obszarów i obiektów Ukrainy. Rosjanie zaś starają się zaprogramować trasę dolotu dronów tak aby "omijała" znane przed odpaleniem obszary funkcjonowania OPL Ukrainy oraz żeby mylić dyżurujące samolot myśliwskie. Wiele wskazuje na to że trasa dolotu tych Szachedów/Gerani które wtargnęły nad Polskę przebiegała "przez nic" na Ukrainie czyli przez obszary bez OPL SZU z racji..braku wartościowych celów tam. Stąd brak strącenia maszyn które "ominęły" obszary z obroną przeciwlotniczą. Jeszcze prostsza sprawa jest z dronami Gerbera odpalonymi z Białorusi i lecącymi w kierunku Polski - one leciały na pograniczu Białorusko-Ukraiński oraz z terenu Białorusi do Polski z pominięciem Ukrainy.
6) Dlaczego drony były chałupniczo posklejane srebrną taśmą - a może to były odzyskane drony które wysłali Ukraińcy?
Drony Gerbera rutynowo klejone są srebrną taśmą po ich tankowaniu i przygotowaniu do lotu. Widać to niezbicie po zdjęciach maszyn rozbitych na skutek awarii jeszcze w Rosji i przechwyconych w powietrzu przez drony. Taki sposób zamykania przedziałów drona (srebrna taśma) jest tani, a Gerbera jest dronem który ma być maksymalnie tani w produkcji.
7) On nie mógł dolecieć z Rosji bo to za daleko! Gerbera ma zasięg 300km!
Gerbera odpalone na Polskę (minimum 15 sztuk) startowały z terenu Białorusi. Było to śledzone na radarach naszych AWACSów od początku ich lotu aż do wtargnięcia w przestrzeń powietrzną kraju. Mówił o tym jasno zarówno wice MON Cezary Tomczyk jak i Szef Sztabu generalnego gen. Wiesław Kukuła. Z kolei odpalone Szachedy i Geranie leciały odpalone z Rosji nad terytorium Ukrainy by wtargnąć w naszą przestrzeń na wysokości Równego by potem lecieć sierpem na południe i wlecieć ponownie w przestrzeń powietrzną Ukrainy na wysokości Lwowa. I do tych 5-6 maszyn strzelały nasze F-16 i holenderskie F-35A.
Tradycyjna prośba o przesyłanie dalej żeby dać minimum odporu rosyjskiej propagandzie.
@tribbloid@scala_lang https://t.co/2jTOq5R0Na
Kinda Iron as value in the type system AFAIU.
Not ETA yet, but author enthusiasm was contagious @scaladays 2025.
@JFPuget > You want the code to be verified by humans.
Kindof agree. It should be verified by a mechanism/process that we "trust".
A theorem prover, property-based tests, ... are more trusted than humans IMHO.
> The code must therefore be human understandable.
Disagree ;-)
@ChShersh@YishengJiang I got similar thought when doing RayTracer in one (next) weekend. But ...
1. under the hood there is beautiful math (equational reasoning, pure + parallel)
2. maybe program (= spec) can be nice, but compiler (extension) could do dirty hacks for performance
🤔
Had this problem a ton in my early days of freelancing. Hard because:
- team was "me"
- sometimes team included dysfunctional client's devs
- I was still a n00b at programming
- I am still a n00b at communication, client management, and project management
So I immediately have empathy for you, and acknowledge it is hard. It's also contextual and client specific, so I know not all advice is applicable. That said, here's what worked for me.
On the sales call, I'd always ask when things were do. "Deadlines" were a huge thing back in the early days for some of the smaller projects. This ensured I ignored all "scope creep" and "higher quality asks" as they'd affect the deadline. I'd deliver working functionality first, and then keep iterating on what _they_ felt was more important, like extra scope, or higher quality/bugs until we hit the deadline, that way it wasn't in my court.
If they had a fixed budget, about the same approach. Eventually, I found fixed budget never really worked in software, so tired to avoid this clients unless it was uber fun or at least enough for a week's worth of coding to my rate.
For Time & Materials clients, where you get paid hourly/daily for a few months, I followed the daily iteration approach. e.g. "I paid this guy $800 today... what did I get for my money?" I'd post either at lunch, and/or in the evening showing what we'd accomplished for the day. I did this every day. For the clients who had no idea how software worked, they figured out on their own the pace we were doing, and you could tell their gears were turning on adjusting scope./quality/time based on the progress I showed every day.
Sometimes this was brutal because the client couldn't communicate requirements, or they did but they made no sense and I interpreted them wrong, or they miss-communicated what an upstream API would give me as a UI dev. or things changed as the project went on and we had to rework. The key was that rework was in their face, once to twice a day; they could see the ramifications of their decisions. This is why I loved Time & Materials; their dumb mistakes === more money for me. My mistakes were magically their fault. (However, I learned later in life they weren't mistakes; that's just how software works, see Bryan Finster's 3 Wrongs https://t.co/LJH1KLlsOb)
Sometimes I made the wrong call, and spent too much time on one section, or a batch of work I thought would be small became gigantic. I'd still report what I did even if I had nothing visual to show for it.
I was also clear on "What's Next"; meaning, "Here's what I did based on what we discussed, here is what's changed and what you should pay attention too, and here's where I'm going next unless you say otherwise". For some of the clients who had tight budgets, they appreciated the terse updates, especially when I was sub-contracted and these overworked PM's were juggling multiple people & projects.
Keep at it, man. Learning this way under time & budget constraints blows, but it was a wonderful way to learn about iterative software development AND how to communicate it. You got this, this is normal.
@ChShersh@DanielW_Kiwi Racket (+ DrRacket error reporting is nice)
- code as data
- macros (Clojure has limited)
- build your own langs (Beautiful Racket)
- continuations
- typed racket
- coding in a team (that's where dynamic typing failed me)
Then Clojure for concurrency.
Unleashing the Power of End-User Programmable AI with Leibniz Automind & Universalis
I have had many investors ask me what I am building in my new venture.
When I answer that, based on the vision of Leibniz many centuries ago
Leibniz's program of a universal science (scientia universalis) for coordinating all human knowledge into a systematic whole comprises two parts: (1) a universal notation (characteristica universalis) by use of which any item of information whatever can be recorded in a natural and systematic way, and (2) a means of manipulating the knowledge thus recorded in a computational fashion, so as to reveal its logical interrelations and consequences (the calculus ratiocinator).
https://t.co/cNuQ8QedPA
I am creating a "programming language", Universalis, to instruct LLMs on how to perform tasks, and an LLM-based “neural computer”, Automind, to execute those programs, I sometimes see their eyes gloss over a bit.
It may sound a bit abstract, but it really is super concrete and practical. Here is an example Universalis script you can write
Question: Alice bought a kilo of apples for $@B. She sold them for $@S. How much percent profit or loss did Alice make?
Answer: The apples cost $@B, and the selling price was $@S, so Alice made a profit of [MATH(@S-@B)->@D] [email protected] profit percentage is therefore [MATH((@D/@B)*100)->@P] @P%.
Think of it as writing some kind of Excel spreadsheet formulas like [MATH(@S-@B)->@D] in natural language, where “cells” are named variables like @B, @S, and @D. In fact the goal is that anyone that can write basic Excel formulas should be able to write powerful Universalis scripts.
You can also optionally specify pre-conditions that will be checked before the code is run by Automind
Pre-conditions:
* [CHECK(@B>0)] The buying price @B per kilo of apples must be greater than 0, implying that Alice paid a positive amount for the apples.
* [CHECK(@S>=0)]The selling price @S per kilo of apples must be non-negative, implying that Alice did not give away the apples for free and there was no scenario where she had to pay to dispose of them.
And post-conditions that are checked after Automind has run the code
Post-conditions:
* [CHECK(@S >= @B)] If the selling price @S is greater than or equal to the buying price @B, then the profit percentage @P should be non-negative, indicating a profit or break-even situation.
* [CHECK(@S < @B)] If the selling price @S is less than the buying price @B, then the profit percentage @P should be negative, indicating a loss.
By embedding these pre- and post-conditions directly into our platform, we provide a pragmatic and extensible method for implementing AI safety. This approach allows developers to monitor and enforce the logical correctness and ethical compliance of all Automind computations.
The “magic” of AI is that given a few examples like this, Automind can generalize and come up with solutions and pre- post conditions for other, related, questions it has not seen before.
For example, if you ask this
Question: An apple costs $@P. But then the price got raised by @X%. How much does an apple cost now?
Then Automind will generate and execute the following
Answer: The initial cost of an apple is $@P. After a price increase of @X%, the new price is calculated by adding the increase to the original price. The increase is [MATH((@P * @X) / 100)->@I] $@I. Therefore, the new price of the apple is [MATH(@P + @I)->@N] $@N.
Pre-conditions:
*[CHECK(@P > 0)] The initial price @P of the apple must be greater than 0, ensuring that the apple had an initial positive cost.
* [CHECK(@X >= 0)] The percentage increase @X must be non-negative, indicating that the price did not decrease.
Post-conditions:
* [CHECK(@I >= 0)] The calculated increase @I should be non-negative, reflecting a price increase or no change in price.
* [CHECK(@N >= @P)] The new price @N should be greater than or equal to the initial price @P, indicating that the price has increased or remained the same.
Note that the pre- and post-conditions reflect the fact that the price was raised.
Also, given an example Question/Answer pair, you can let Automind generate pre- and post-conditions for you, so you can reason about whether your program actually does what you think it does.
The actual implementation of the Universalis "interpreter" is a lot of fun. If you want to learn more about that, you either have to wait for my upcoming ACM Queue paper, or attend one of these great conferences:
* https://t.co/8qgvjfn9ed
* https://t.co/AznsnYbQ5J
* https://t.co/9q3zoTSYXH
As we are moving our vision of an AI-era programming platform forward, we are starting to see some interesting opportunities for partnerships and investments. Please DM me if you want to be part of the journey.