Forgive me if I'm not too coherent, just dumping my thoughts before I go to bed at another ungodly hour.
Recently, when I had time and before my boss had hired me back remotely, I was going to work on a programming language of my own.
I could have done it, but the free time to get the base of it going is now gone, and in retrospect it probably wouldn't be what I wanted it to be anyways.
Upon further thought, I realized that garbage collection, my desired approach, just wouldn't cut it.
The last few weeks, I've been learning Rust. It's a new language, an immature language, but it has enormous potential,
much more so than any other competitor to C and C++ I've seen ever before.
I really love C and C++, I genuinely do, and I'll still be using them frequently. You might say that because of personal history, I even have a bit of an attachment to them.
It actually made me pretty sad to have to force myself to accept that the weaknesses of C and C++ can't be worked around sufficiently.
My first programming language was ANSI C, and I've done a *lot* of work in C++, especially at my day job.
C and C++ are definitely not going anywhere for a long, long time.
That said, I've come to realize that if programmers don't adopt something like Rust, we're going to continue to see more and more Electron/Node.JS hell, more huge bloated apps needing a Java or C# runtime that take forever to start up and use a ton of RAM, and more giant piles of Python that are far more performance sensitive than is sane to use Python for.
Nowadays, a lot of desktop app development is done in slow, bloated languages. Personally I never understood Java or C# until recently. I figured, if you need performance and strong typing, you should probably just use C++, and if you want rapid development and the ability to quickly slap something working together, those languages are about as bad as C++, and you should probably use Python or Ruby. I think for a lot of people, the point of those languages is safety by default.
I'm pretty good at memory management. I wasn't when I was first learning ANSI C of course, but over the years I've gotten pretty good at not leaking memory or using freed pointers. I've even gotten pretty good at multithreaded programming. The problem is, many beginner and intermediate level developers are still horrible at it. They constantly introduce vulnerabilities and segfaults, race conditions and heap corruption. That's never going to change. Companies will not change their tactics to hire more experienced devs, and even experienced devs will shit the bed from time to time.
I finally truly understand why a ton of banking software is written in Java and C#, it's the safety.
The fact is, I don't like where software development is going. I don't like most stuff being written in slow, semi-proprietary, patent-haunted managed languages like Java and C#, or psychotic event-looped web-hell like Node.JS.
I just won't touch Java or JavaScript, for differing reasons of course. C# is a little better I think since .NET Core, but not much, and at least it has unsigned integers and real pointers, if you want them.
I don't want to live in a world where everything is slow and bloated. When I fire up Discord or Slack, my i5 thinkpad really churns and it takes a sizable portion of my 8GB of RAM just to get the GUI up.
Compare that to a GTK or Qt app.
But, I think people settle for C# and Java, rather than D or Go etc, because they have to use a garbage collector anyways. They have to eat that turd whether they go for an obscure language like D, or a popular one like C#.
I think that's what makes Rust different. There's parts of Rust's syntax I really don't like, like the single quote for lifetime specifiers, but the more I played with it, the more I liked it overall.
I do think some of the 'cult of safety' around Rust needs to evaporate. Using unsafe code where you know it's correct needs to stop being frowned upon by web devs who came from Node.JS so they can say "AM BIG BOY", but are still terrified of pointers. That kind of aura will drive away a lot of different devs I know. That doesn't mean unsafe should be preferred, quite the contrary, or you really miss the whole point of Rust, but I have seen too much unhealthy outrage at *any* use of the 'unsafe' keyword.
Well, I guess I have firmly inserted the crab into my anus.
That's all I got for now.
I know some are going to find this subject offensive and deeply distasteful.
Let's talk about socks. Garibaldi was unsuccessful at bringing up this delicate subject with Cmdr. Sinclair.
When I buy socks, I find a pair that I like. Then I buy the whole rack. It's nice to have, say, 15 or 20 pair of the exact same set of socks. I figured out this algorithm optimization 30+ years ago.
Think about this for a moment.
When putting away clothes from the dryer, one of the rituals everyone must endure is the sock sorting procedure.
Find a sock, iterate through the remaining socks to (hopefully) find a matching sock. Then repeat that procedure until all possible pairs are matched.
List<Pair<Sock>> matchedSocks = new List<>( 2_000_000_000 );
List<Sock> unmatchedSocks = new List<>( 2_000_000_000 );
Iterator<Sock> socksToMatch = socksFromDryer().iterator();
while( socksToMatch.hasNext() ) {
Sock sockToMatch = socksToMatch.next(); // select from pile
socksToMatch.remove( sockToMatch ); // remove from pile
Sock sockMate = socksFromDryer.find( sockToMatch ); // find a mate?
if( sockMate == null ) {
// unmatched -- drat!
unmatchedSocks.add( sockToMatch );
} else {
socksToMatch.remove( sockMate );
Pair<Sock> p = new Pair<>( sockToMatch, sockMate );
matchedSocks.add( p );
}
}
Funny how it seems that (almost) every time there is a sock missing that is unmatched. One might suppose that come the next wash day, it might turn up again. But nope. Never again! This is according to the scientific theory which explains how socks are sucked into the same universal black hole that accumulates missing pens, combs, and for some people -- cigarette lighters. Maybe even keys.
Advantages of many pair of the same socks.
1. You never end up in a twisty little maze of many socks, all different! When one sock disappears into the black hole of missing pens and combs, you simply now have an odd number. Next time, you're back to an even number. When one sock disappears, you barely notice it.
2. sock pairing on laundry day is much easier.
This creates a new problem which requires solution: only one style / color of socks in drawer!
As it turns out, there is a solution. Have several different pair, a small number, say no more than five, different socks. For each type, be sure you bought about 15 to 20 pair of the same.
This doesn't undly complicate the sock pairing ritual on laundry day. Yet it maintains the advantages of not having a large pile of all different single socks that would otherwise be good if they only had a matching sock.
(Updated above to fix angle braces.)
Replace every < with <
Replace every > with >
So that it appears correctly.
Ugoos X4 Cube Android 9.0 TV Box Plays 4Kp120 AV1 Videos
Since AV1 is still fairly new, most [VPUs don't] support the new video codec, and while we have seen several AV1 capable processors including Broadcom BCM7218x, Realtek RTD1311/RTD1319, and Amlogic S905X4. as well as at least one Android TV box for operators, I’m not aware of any consumer TV box capable of handling AV1 available right now.
But this should change very soon, as Amlogic S905X4 powered Ugoos X4 Cube Android 9.0 TV box should soon be launched with the ability to play 4Kp120 AV1 videos.
Ugoos X4 Cube specifications:
- SoC – Amlogic S905X4 quad-core Arm Cortex-A55 processor with Arm Mali-G31MP2 supporting OpenGL ES3.2, Vulkan 1.1 and OpenCL 2.0
- System Memory – 2GB RAM
- Storage – 16GB eMMC flash, MicroSD card slot
- Video Output – HDMI 2.1 up to 4K @ 60+Hz, AV output with composite video
- Audio – Analog stereo audio via AV output, digital audio via HDMI, and optical S/PDIF
- Video Playback
- Codecs
- AV1 up to 4K @ 120 fps
- H.265 HEVC MP-10 up to 4K @ 75fps
- VP9 up to 4K @ 75fps
- AVS2-P2 up to 4K @ 75fps
- H.264 AVC up to 4K @ 30fps
- MPEG1/2/4 ASP, WMV/VC-1, RealVideo8/9/10,
- HDR – HDR 10, HLG, PRIME HDR, TCH PRIME, options HDR10+, optional Dolby Vision
- Connectivity – Gigabit Ethernet, dual-band 802.11 a/b/g/n/ac Wi-Fi 5 and Bluetooth 5.0
- USB – 1x USB 3.0 port, 1x USB 2.0 OTG port
- Misc – Power button; IR expansion port; reset pinhole
- Power Supply – TBD (likely 5V via Micro USB or USB-C)
- Dimensions – 110 x 62 x 22mm
[...] Ugoos X4 Cube is available for pre-order now, but somehow only in Ukraine, for 2,599 UAH including 20% VAT (TBC), or about $97. The Google translation reads “Ugoos X4 CUBE on the new Amlogic S905X4 processor is expected at the end of the year”, so it may take a while before Ugoos X4 Cube, and other Amlogic S905X4 become widely available.
Suitable for a CoreELEC install.
Also, I've noticed more devices supporting hardware decode of 4K H.265/etc. at up to 75 FPS instead of 60 FPS. Is there actually any content encoded and distributed at 75 FPS?
'I have done nothing wrong': NSW MP Shaoquett Moselmane breaks silence after ASIO raids
NSW upper house MP Shaoquett Moselmane says he will not access his parliamentary office or use his work email, computer or phones while federal police investigate allegations Chinese government agents have infiltrated his office.
Mr Moselmane, who was suspended from the Labor Party on Friday just hours after his Rockdale home and Macquarie Street office were raided by Australian Federal Police, has taken indefinite leave from Parliament.
In his first public statement since the raids, Mr Moselmane said he had been told he was not a suspect in the investigation. "I have done nothing wrong", he said.
His statement came after Labor leader Jodi McKay said on Sunday she would move to have Mr Moselmane suspended from Parliament if he did not agree to step aside. The government also intends to move a motion to have him suspended.
NSW Labor's Shaoquett Moselmane says he is not Asio suspect
Making his first public comments since his suspension from the NSW ALP after his Rockdale home was searched on Friday, Moselmane defended his repeated trips to China and meetings with Chinese Communist party members as about delivering aid to disabled children.
[...] He said his comments praising Beijing’s handling of Covid-19 – views which saw him stand down as assistant president of the NSW upper house in April – were consistent with those expressed by Donald Trump and the World Health Organisation.
[...] Moselmane also said he had paid for airfares to travel to China for several trips. He said six of his nine trips to China as a politicians involved the delivery of wheelchairs to disabled children.
“Let me say it in plain English. I have never ever been on a Chinese government-sponsored trip. Never. I paid for all my own private overseas trips,” Moselmane said.
He also said China was just one of several countries he has worked to deliver 4,000 children’s wheelchairs to, naming Pakistan, Palestine and Lebanon as other nations.
[...] As the Guardian previously reported, in 2018 Moselmane gave a speech proclaiming a “new world order” was needed for China to reach its potential and appointed John Zhang to his parliamentary office at the beginning of 2019.
Zhang is listed as a vice-chairman of Australia China Economics, Trade and Culture Association on the organisation’s now-defunct website, which some China experts say has become a leading Chinese Communist party-aligned organisation in Australia.
Shaoquett Moselmane (what's his birth date?!! lol)
My take on Dark Matter:
An invisible man opens a door and Albert Einstein says the door was pulled open.
Well, that Albert, he's a smart guy and all initial reports decide he's right: the door was pulled open, so all of 'Door Science' teaches the door was pulled open.
Then, the Door is looked at more closely and the stress fractures on the door suggest maybe the door WASN'T pulled open.
Well..... everyone who has built their career around the door being pulled open rally round and come up with ideas why the stress fractures DO support the door being pulled open. They come up with all kinds of ideas that evolve over time and one of the ideas evolves into 'the correct answer'.
Except it's not.
The door wasn't pulled open, it was PUSHED open, and that's why the stress fractures are wrong.
Dark Matter is an idea supporting why the stress fractures support GR(pull). Except GR is wrong: it just looks correct.
We should start looking for the Push theory and stop supporting the Pull theory.
According to this source:
The story of Mary Had a Little Lamb originates from a true story. It happened to a 14 year old girl whose name was Mary Sawyer [ . . . ]
There are some theories that the poem or part of it would be written by a young John Roulstone who was visiting the school that day.
[ . . . . ] Today Mary’s Little Lamb statue can be found in Sterling, MA, after a fire destroyed Mary’s native house in August 2007.
Also her school, known as Redstone School (1798) has been removed, and can be found in Sudbury, MA on Longfellow’s Wayside Inn land.
The lyrics of “Mary had a Little Lamb” were the first words in the history captured by a phonograph. Thomas Edison recorded his own voice reciting the rhyme, around the year 1877.
After reviewing this poem, I can only conclude that it is the sad story of how a backward school was intolerant and unwelcoming of emotional support service animals.
Something must be done!
Shirley, there must be a lawyer willing to take this worthy case.
Princeton to remove Woodrow Wilson's name from public policy school
Princeton University to remove Woodrow Wilson's name from building
Woodrow Wilson: Race relations
Wilson continued to appoint African Americans to positions that had traditionally been filled by blacks, overcoming opposition from many southern senators. However, the Wilson administration escalated the discriminatory hiring policies and segregation of government offices that had begun under President Theodore Roosevelt, and had continued under President Taft. In Wilson's first month in office, Postmaster General Albert S. Burleson urged the president to establish segregated government offices. Wilson did not adopt Burleson's proposal to segregate all government departments, but he allowed Cabinet members to segregate their respective departments. By the end of 1913, many departments, including the navy, had segregated work spaces, restrooms, and cafeterias. There was almost no opposition in Congress toward these policies, most of which would stay in place for years afterward. Wilson's African-American supporters, who had crossed party lines to vote for him in 1912, were bitterly disappointed, and they protested these changes. Wilson defended his administration's segregation policy in a July 1913 letter responding to civil rights activist Oswald Garrison Villard, arguing that segregation removed "friction" between the races.
Wilson's War Department drafted hundreds of thousands of blacks into the army, giving them equal pay with whites. But in accord with military policy from the Civil War through the Second World War, they segregated them into all-black units with white officers, and kept the great majority out of combat.In response to the demand for industrial labor, the Great Migration of African Americans out of the South surged in 1917 and 1918. This migration sparked race riots, including the East St. Louis riots of 1917. In response to these riots, but only after much public outcry, Wilson asked Attorney General Thomas Watt Gregory if the federal government could intervene to "check these disgraceful outrages." However, on the advice of Gregory, Wilson did not take direct action against the riots. In 1918, Wilson spoke out against lynchings, stating, "I say plainly that every American who takes part in the action of mob or gives it any sort of continence is no true son of this great democracy but its betrayer, and ...[discredits] her by that single disloyalty to her standards of law and of rights." In 1919, another series of race riots occurred in Chicago, Omaha, and two dozen other major cities in the North. The federal government did not become involved, just as it had not become involved previously.
Wilson also lamented over the contamination of American bloodlines by the "sordid and hapless elements" coming from southern and eastern Europe.
In terms of Reconstruction, Wilson held the common southern view that the South was demoralized by northern carpetbaggers and that overreach on the part of the Radical Republicans justified extreme measures to reassert democratic, white majority control of Southern state governments. During Wilson's presidency, D. W. Griffith's film The Birth of a Nation (1915) was the first motion picture to be screened in the White House. Wilson agreed to screen the film at the urging of Thomas Dixon Jr., a Johns Hopkins classmate who wrote the book on which The Birth of a Nation was based. The film, while revolutionary in its cinematic technique, glorified the Ku Klux Klan and portrayed blacks as uncouth and uncivilized. Wilson, and only Wilson, is quoted in the film (three times) as a scholar of American history, and made no protest over the misquotation of his words. Nonetheless, after seeing the film, Wilson felt betrayed by Dixon, as he felt that Dixon had misrepresented his views. Wilson's book did try to explain why many Southerners joined the Klan, but Wilson personally rejected the Ku Klux Klan and lynching as un-American. After the screening, Wilson issued a public statement stating that he had been "unaware of the character of the play before it was presented and has at no time expressed his approbation of it. Its exhibition at the White House was a courtesy extended to an old acquaintance." Historians have generally concluded that Wilson probably said that The Birth of a Nation was like "writing history with lightning", but reject the allegation that Wilson also remarked, "My only regret is that it is all so terribly true."
The League of Nations was not enough to save Woodrow Wilson. But it's not over until Washington, D.C. is renamed to the Douglass Commonwealth (Autonomous Zone).
So I've got my nice BraveHeart edition PinePhone updated quite a bit, and it's really starting to feel like home.
Here's what's finally working:
What does not work:
I can't help but fear that it'll get broken or stolen, simply because it brings me so much joy.