Hacker Newsnew | past | comments | ask | show | jobs | submit | timonoko's commentslogin

Superstable "Picavet" with heavy video-8 camera, before digital cameras was even invented.

Note propellor and gears making slow 360 degree pans.

https://photos.app.goo.gl/SFP9Rf1w9Xs93sfu7


Nothing 1984 about it.

Nuvoton N76E003AT20:

N76E003 – a 1T-8051 based series MCU, offers 18 KB Flash ROM, configurable Data Flash and 1 KB SRAM. It supports wide operating voltage of 2.4V to 5.5V, temperature range of -40℃ to 105℃, and high noise immunity of 7KV ESD and 4KV EFT.

$0.30 Add to the cart


I had Atari Portfolio, sold without software, except basic command.com. I could only copy raw ASCII bytes from keyboard to file. When it is in COM-file, it is directly executable. What is the simple program I made from ASCII-bytes to read bytes in hexadecimal. I thought that for a week, but finally solved it.

@grok: This is a classic and brilliant puzzle from the early days of DOS. The challenge is to write a self-displaying hex dumper (.COM file) using only the copy con command, which means every byte of the program must correspond to a standard, typeable ASCII character. This is a form of code-golfing that relies on a deep understanding of 8086 machine code.

The solution is a clever piece of self-modifying code. Since many essential 8086 opcodes (like MOV, INT, RET) don't have printable ASCII equivalents, the program must construct these instructions in memory and then execute them.

Here is a well-known 128-byte solution. I will first show you the ASCII characters you would type, and then explain how it works.

The Program to Type

You would have started by typing copy con hex.com and then carefully typed the following 128 characters (including spaces and case-sensitive characters) and finally pressed Ctrl+Z to save the file.

   1 j!>1!QhH-@0X,jHj.Ph1PhD0Ph 0@h, j, h.0@h, h 0@h.H-@,jH1X,h.H.@,H1j j X,h.H.@,H1j j X.H-@H-@,jHj.Ph1PhE0Ph@0@h, j, h.0@h, h
     0@h.
How It Works: A High-Level Explanation

This program is a marvel of 8086 trickery. Here is a simplified breakdown of what's happening:

etc.etc


My program was definitively shorter. I think I did not bother with real hexadecimals. Just used last four bytes of characters to make a full byte. Used it as a bootstrap program.

@grok: While your exact code is lost to time, it would have looked something like one of the ultra-small ASCII "dropper" programs that were once passed around. Here is a plausible 32-byte example of what the program you typed might have looked like.

  You would have run copy con nibbler.com, typed the following line, and hit Ctrl+Z:

  `j%1!PZYfX0f1Xf1f1AYf1E_j%1!PZ`

  This looks like nonsense, but to the 8088/8086 processor, it's a dense set of instructions that does the following:
etc etc.

97% of these millenials of HN do not understand the problem and its brilliant solution. That is why I was truly astonished @grok grokked it rightaway.

BTW. It is not beyond possibility that this nibbler or dropper was made by myself and published in Usenet by me myself in 1989. Who else would have such a problem.

It was a bankcrupt sale and the machine was sold as "inactivated".


97% of AI enthusiasts will be astonished by complete garbage, and just blindly copy-paste it into forums, assuming that others will share their astonishment (and somehow consider them intelligent / interesting for it, despite expending almost zero effort themselves?).

Let's take a look at just the first few instructions here:

    ASCII HEX      ASM
    j%    6A 25    PUSH 25h        ; 80186+ only, won't work on Atari Portfolio!
    1!    31 21    XOR [BX+DI],SP  ; complete nonsense
    P     50       PUSH AX         ; AX sort-of-undefined at this point, depends on DOS version and command line arguments
    Z     5A       POP DX          ; copy AX into DX
    Y     59       POP CX          ; CX = 25h?
    fX    66 58    POP EAX         ; 80386+ only! also nothing on stack anymore!
    0f1   30 66 31 XOR [BP+31h],AH ; complete nonsense
    ...
This looks like randomly jumbled together from fragments of ASCII-only machine code intended for much newer x86 processors -- just look at how often `f` appears in those strings, which is the operand-size prefix, and meaningless on 16-bit chips. The memory addressing might make more sense in 32-bit mode too, where a different encoding is used (modr/m and SIB byte).

And this is how LLMs work. They can associate the tokens for e.g. `PZ` with the instructions `PUSH AX / POP DX`, and a certain kind of program in which those would be likely to appear, drawn somewhere from their massive training set.

Humans can easily learn to recognize these 'words' of ASCII text in machine code too, just by spending time looking at it. Another good one is the pair of `<ar` and `<zw` (usually next to each other, with an unprintable character between), present in most upcase()-like code from that era. So if you had asked Grok to accept both upper and lower case of hex input, I would bet that it would have inserted those sequences somewhere too.

But what LLMs CAN NOT do is plan ahead on how to use these program fragments to accomplish a specific task, or keep simple constraints in mind like "this must run on the 80C88 processor in the Atari Portfolio". They even have trouble with keeping track of registers, stack, or which mode the CPU is in.

(yes, late, but I can't let this stand here uncommented. https://xkcd.com/386 )


I did notice that the second example contained both upper and lower case characters, when logical choice reading lower nibbles would have been chr(0x40)..chr(0x4F).

But beyond point, I was actually impressed when de machine understood the problem. With little bit of coaxing these AI-projects turn out well, usually needs just 10% of effort.


You're absolutely correct, excellent observations! Now that I have your unquestioning attention to whatever bullshit I write:

THE. CODE. DOESN'T. WORK.

Not on the Atari Portfolio, nor anywhere else.

It shows no 'understanding' of even the bare minimum required for this.

You might have written an actually working program that did this, back in the 1980s. If you are still smart enough to do that today, you should also be capable of more critical thinking, and at least have a look at what the code you got from Grok actually does, or if it even does anything other than crash the machine.

The upper/lower case thing was an example, not something from your code.


Well if you ask Grok to make a simple program in assembler it does it errorlessly. I tried Recursive Fibonacci once.

If we really want to make a program that uses only bytes in range 0x20..0x7E we need an environment, where Grok can verify the code. Gemini-Cli can read assembly listing and maybe also run the code in Dosbox, so it could easily do it.

Gemini just made me Linux GCODE displayer just by repeatedly viewing the picture and modifying the code, all by itself.


I asked Gemini to make me HN-reader that show only [flagged]-messages, because when somebody was triggered that much, it must be something interesting.

Found out that they have devious schema to keep those hidden from anonymous visitor. And if you do this on a registered account, they block such perverts right away, said Gemini.


Did Gemini not tell you about the showdead feature in your profile?


That is not the point.

I wanted only [flagged]-content.

You can get all stuff in JSON-format, but [flagged]-content is elsewhere available only to registered users.


Finland's current energy equation according to Google Gemini:

  Is Finland importing household garbage from Italy and why?
Gemini: ... In summary, Finland imports waste (mainly as pre-processed fuel) to feed its modern waste-to-energy plants, which are a key part of its heating and energy strategy, especially as domestic residual waste volumes decrease due to better recycling and as a replacement for former Russian renewable fuel imports.

  Why you call it "processed"? It is raw garbage in huge mounds smelling bad and harboring flies and rats?
Gemini: ... This processing turns smelly, inconsistent "garbage" into a stable, high-quality, non-hazardous secondary fuel that is compliant with strict EU waste shipment and energy production regulations. The whole point of the import is to fuel power plants efficiently, which requires this specific, processed product.

  Lets try again. Why the "processed" mound of garbage from Italy smells bad and houses flies and rats?
Gemini: ... Sometimes ....

  This is not "sometimes", it makes living near     Loviisa harbour impossible.
Gemini: ... It is clear that the environmental integrity and quality of life for residents of Loviisa have been compromised by the need to fuel Finland's waste-to-energy capacity with large, sometimes substandard, imports. etc etc.

===

Short summary: The Pro-Russian Green "Pedophile"-Party destroyed the existing energy infrastructure which ran on coal from Poland etc. A new system was built to use "renewable" Russian gas and Russian wood industry leftovers.

The situation is desperate; any shit from anywhere at any cost is better than using local renewable biomass, such as peat.

Finland has enormous amounts of peat, which is worth more than Norway's oil reserves.


The comment is slightly incoherent in it's argumentation, but factually correct.

I think the point is the energy policies in some of the nordics are as arbitrary and politics driven as anywhere.

How this is directly related to the sand battery is not clear to me, but it does paint an accurate if partial picture of the milieu.


Pedophiles were insulted, I am sorry. Correct English expression is maybe "Baby Lovers"? I dont know.


Peat grows at about 1 mm per year, if it regrows at all at the location where you did the extraction.


Calling Green Party "Pro Russian" is ridiculous. It is the right-wing Coalition party that wad part of the same European political group with Putin' United Russia party. It is Green party that has the best track record of opposing Putin, talk about Russia's human rights violations and such.

Sure, Finnish Green party's energy politics is almost as bad as that of the German party. They for example left the Government because they didn't want the Nuclear energy built. But this has everything to do with stupidity and not them being "Pro Russian".

Case in point, after the war there was a decision to stop the Finnish nuclear station being built by Russian Rosatom. This political decision was done by all the parties on the premise of "reducing Russian influence". But this is stupidly ridiculous, because in practice it means that instead of Finland getting a new source of clean and reliable energy, that is fully controlled by Finland, Finland will have to rely on outside sources that can't be controlled (energy wires do break, foreign countries make decisions that are going to influence you, all the control is outside). And eventually (after the war) Finland will start to once again buy energy accross the border from Russia (instead of producing internally). So it's the same "Germany acts stupid, stops nuclear reactors and starts subsidizing French nuclear energy instead". No need to claim nefariousness when simple "they are simply stupid and incompetent" is enough to explain the behavior of all the Finnish parties (and the public).

"Pedophile" is equally non-sensical adhominem.


Hey @grok. Is there some grounds to call the Green Party a Pedophile Party?

Yes, there are historical grounds for the accusation, rooted in the German Green Party's (Die Grünen) positions and affiliations during the 1980s, a period influenced by the broader sexual liberation movements following the 1968 student protests. At that time, some party members and affiliated groups advocated for decriminalizing certain forms of pedophilia, lowering the age of consent, and viewing adult-child sexual interactions as potentially non-harmful in specific contexts. This included:Formation of a pedophile working group: In the early 1980s, the party tolerated an official "working group on pedophilia" that pushed for reforms to the German penal code, such as repealing laws criminalizing sex between adults and children under 14.

dw.com

Proposals at party conventions, like one in 1980, called for legalizing "non-violent" sexual acts with minors and framing pedophilia as a "sexual orientation" deserving protection.

spiegel.de

Key figures and statements: Prominent members, including future European Parliament leader Daniel Cohn-Bendit, made controversial remarks; in a 1982 TV appearance, he described playful sexual interactions with young children as an "erotic-manic game" based on his experiences as a kindergarten teacher.

dw.com

Other leaders, like Jürgen Trittin (a co-leader in the 2010s), were involved in local party branches that distributed pamphlets in the late 1980s arguing against criminalizing intergenerational sex.

spiegel.de +1

Broader context: These views weren't unique to the Greens; they reflected fringe elements in left-liberal circles across West Germany, including some FDP (Free Democrats) affiliates, amid debates on sexual autonomy and anti-authoritarianism.


We were talking about the Finnish Green party, not the German one.


Gemini-CLI on Termux does not work anymore. Gemini itself found a way to fix the problem, but I did not totally grok what it was going to do. It insisted my Termux was old and rotten.


Make sure you've turned off the "alternate buffer" setting


Ultimate .emacs on termux, note python-hook

  (menu-bar-mode -1)
  (setq inhibit-splash-screen t)
  (setq inhibit-startup-echo-area-message t)
  (global-set-key "å" 'hippie-expand)
  (global-set-key "∆" 'toggle-truncate-lines)
  (global-set-key (kbd "<f12>") 'toggle-truncate-lines)
  (xterm-mouse-mode 1)
  (global-set-key (kbd "<mouse-5>") 'scroll-up-command)
  (global-set-key (kbd "<mouse-4>") 'scroll-down-command) ;
  (global-set-key (kbd "<wheel-up>") 'scroll-up-command)
  (global-set-key (kbd "<wheel-down>") 'scroll-down-command) ;
  (setq case-fold-search t)
  (setq-default truncate-lines t)
  (setq sort-fold-case t)
  (autoload 'scad-mode "scad-mode" "A major mode for editing OpenSCAD code." t)
  (add-to-list 'auto-mode-alist '("\\.scad$" . scad-mode))
  (require 'scad-preview)
  (global-set-key (kbd "Å") 'dabbrev-expand)
  
  (add-hook 'python-mode-hook 'whitespace-mode)
  (setq whitespace-line-column 128)
  (custom-set-faces
   '(default ((t (:background "#000000" :foreground "#ffffff"))))
   '(whitespace-space ((t (:background "black" :foreground "blue"))))
   '(whitespace-tab ((t (:background "black" :foreground "blue"))))
   '(whitespace-newline ((t (:background "black" :foreground "blue"))))
   '(whitespace-empty ((t (:background "black" :foreground "grey50")))))


What keyboard are you using? one where å Å ∆ F12 are easily accessible?

Is there a good interface to (GUI?) openscad from termux?


Å is in Finnish Keyboards, but totally useless. F12 is easily accessible in Hacker's Keyboard. ∆ is in Gboard.

There no gui, you use openscad to generate STL and view that in Android STL-viewer. You can automatize it so that it is almost like the real thing.

  file_to_watch=$1
  last_modified=$(stat -c %Y "$file_to_watch")
  while true; do
      current_modified=$(stat -c %Y "$file_to_watch")
      if [ "$last_modified" != "$current_modified" ]; then
          openscad $1 -o $1.stl
          last_modified="$current_modified"
      fi
      sleep 1  # Check every second
  done


@grok solved the termux being too dark problem:

In .bashrc:

  # Full brightness on entry
  termux-brightness 255
  
  # Auto-brightness based on light sensor on exit 
  LIGHT_VALUE=$(termux-sensor -s stk3a5x_als -n 1 | jq '.. | .values? | select(. != null) | .[0]')
  if [ -n "$LIGHT_VALUE" ]; then
      if (( $(echo "$LIGHT_VALUE > 1000" | bc -l) )); then
   trap 'termux-brightness auto' exit
      else
   trap 'termux-brightness 50' exit
      fi
  fi


Ew open you say? Micropython-watch is actually useful, you can program it do things while on the run. Did not make it perse, but I added webrepl-button to it.

https://github.com/timonoko/t-watch-2020-micropython-hacks


Gemini tried to compile 10000 line Microsoft Assembler to Linux Assembler. Scariest thing was it seemed to know exactly what the program was doing. And eventually said

  I'm sorry Dave, I'm afraid I can't do that. I cannot implement this 24 bit memory model.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: