HN user

ern0

132 karma
Posts7
Comments24
View on HN

Sony-TV-Control: the battery in the RC is started to discharge, so I've downloaded Android apps, which can control our Sony smart TV. Tried some, but I was disappointed, so asked DeepSeek if Sony TVs have some API. Instead of demonstrating the API, DeepSeek created me a simple RC PoC, which looked promising, so I decided to continue vibe-coding my version, a mobile-first webapp with Python backend: https://github.com/ern0/sony-tv-control

It has several functions which a normal RC can't have, e.g. search channel by name, or hide "ABCD" channel, if it has "ABCD HD" pair, to make channel list shorter.

Timelapse-consolidator: create a single timelapse video from multiple captures, ignoring night shots. I think, it's a good example for splitting the task for separate programs, which task size the AI still can handle. See prompt for details: https://github.com/ern0/timelapse-consolidator

(Night shot detector should be faster, instead Python, I would rewrite it in some native language, like Rust, but it will run once per project, so it's not vital.)

Programming With AI: Forget "We Have Always Done It This Way", Enter "The Corpus Was Biased Towards This Way" (Case Study)

The term "prompt engineering" sounded like bullshit at first, but this study confirmed my suspicion that I was wrong. Programmers' jobs will not be taken away by retrained insurance agents.

"I was curious whether popular large language models can implement a simple audio effect in Python, and if yes, then how do they balance computational cost and audio quality, and how do their solutions compare to my handcrafted, non-AI-aided version."

On Amiga, there was a 3D demo with this trick. You can "jump in" your eyes to the proper position if you hold your finger at the place where the 3d image should appear, ca. 10 cm close to your eyes, and focus on it. You'll be cross-eyed without knowing it.

Also, I was using the trick as a "cheat" when I played Tiny Lands on Nintendo Switch, it's a "spot the difference" game, but with 3d landscapes (you can rotate and zoom): https://www.dekudeals.com/items/tiny-lands

1. Is there any mailing list or newsletter for folks interested in this project as kind of beta testers?

2. Do you plan to implement a full programming language? Dataflow is not enough?

I've written a bouncing color bar for Amiga, which was running without the processor.

Amiga computers have

- a main processor (MC68000 or higher),

- a bit blitter, which can perform memory various operations in memory (using 3x source and 1x target, it can AND, OR etc. them),

- and a Copper, which have own "program", it can interpret 2 type of instructions: WAIT for a scanline position (4-pixel precision), and COPY value to a specified regsiter.

It was the name, which made me think: "Copper" is coming from "coprocessor". Well, it can run WAIT and COPY instructions, but the program's time-scope is somewhat restricted, the program is running every screen refresh cycle only once. Is it possible to write a program for Copper, which is doing some more, like animation?

I've generated several color bar frames for Copper, which adds up as a bouncing bar, and as the last instructions, I've added a COPY instruction, which sets the address of the Copper List to the next frame (the last one pointed to first frame).

So, it worked, the bar was bouncing without any support from the processor (besides initial generation and setting of the Copper List address first time).

Blitter and audio DMA is fantastic, it's a big help that the processor just puts an order to a hardware and it executes, but Copper is a degree more bigger magic, it can make things autonomously, which I was demonstrated.

I can't prove it, because I don't have data: my GitHub page is useful.

My CV is two pages long, and it's still too long, recruiters don't read it, probably just look at the keywords or IDK how they work. Previous version was 17 pages long, it was a bad conception (just listed projects, etc., as described in the book, of 30+ years).

But if you look at my GitHub page, you can get a far better picture. I only have my own repos, so you get a relatively good idea of what I do, how I work (most of my projects have documentation, tests), what quality code I write, even if the picture is a bit biased, because of some non-public and of course work projects are not included.

https://github.com/ern0?tab=repositories

I imagined how should I act when I forgetting the SQL table create command in an interview.

1. I admit I am nervous so much that I just couldn't tell my own name.

2. It's just strange for first look that I don't remember, but we create tables so rarely, that it's not a surprise.

3. Okay, let's try to figure out the command, my first hint is that it should be "new", "create" or something. Let's recall, how to deal other way, say, delete or modify tables: "drop table", "alter table" - so my best hint is "create table" or "new table". (Offensive notice: if you learnt SQL one day before the interview, this gonna not work.)

Great, go on, it's pretty sure it should contain the list of fields, define them: names, types, and some constraints, whether it can be empty etc. Maybe this command defines the indexes as well, then every index should declare one or more fields, ascending/descending marks per field. Oh, a table unique key is also can be specified, at the field specification. Finally I notice, that different SQL servers may have different syntax and even features, like choosing storage system for the table (MySQL: InnoDB etc.).

That's the _content_ of the SQL's create table command, withot any syntax. I think, it's clear, that I would have no problem with writing a table creating SQL statement.

If you can not solve the "I-forget-the-syntax" problem, probably (another offensive statement, sorry) you're not for this job. In real life, you will have even more stressful situations, and you have to solve them, or at least DO SOMETHING. What you've done was NOTHING.

Okay, Apple is different from your company in as many ways as possible, but you might want to pay attention for their licensing policy: Logic X has no copy protection, no registration key, no nothing. Nothing to crack. If you get a pirate version, and using it for a while, you can buy it. They even provide a free version of it, with less functionality and larger icons, called Garage Band.

It's a long-time design flaw at Microsoft.

Long time ago, in Windows for Workgroups 3.11 times, when I opened Explorer, it was getting slower and slower. Finally, changing a directory took 5 secs. The hard disk was working hard (there were LED indicators!).

I've figured out that the root cause was my C:\Documents directory, which contained a bunch of files, maybe some hundreds of mp3s, don't remember. Moved _all_ files from C:\Documents made Explorer lightning fast.

I think, Explorer wanted to show a summary of different file types, which was completely unnecessary and couldn't turnded off.

TL;DR: 1. no offense 2. mee too 3. join the elite club 4. pet projects 5. teach

1. First of all, don't take what I write as a personal attack; I am a bit aspie, and can't detect the fine distinction between being honest vs rude, I'm just unable to separate. Also, I don't speak English very well, so I may use phrases, which I think different that it sounds.

2. Sorry, dude, you're only an average programmer - as I am. I have 32 years of experience in software development, started at age 18, and I'm programming since I'm 13, but I would have started earlier if there had been computers (in a socialist/communist country, see COCOM list). I'm pretty good at setting up a moldel, a solution, choosing platform and tools, writing well-readable, fast and resilient code. My superpower is to cut out features, which looks necessary, but I know they aren't, and I'm always right. I am not too good at math, okay, bool algebra is my blood, and I can set up good KPIs, but other areas, e.g. trigonometry (not a random pick, see later) is not my table. Also, sometimes I create music, not the dumb write-one-pattern-then-switch-on-off-tracks style, but normal pop, smooth jazz, house, rock, punk etc. stuff. I love to make covers. Restricted platforms is my real home, writing music for C16/Plus4, ringtone, buzzer, bytebeat etc.

3. As I said, I'm pretty average. I'm not measuring myself to clerks, bus drivers and our PM, not even to usual programmers. There's a scene, where we count as "nice try" or "well, interesting". This arena is called demoscene (a good intro: https://www.wise-geek.com/what-is-a-demoscene.htm). I am a medium-low known member of this community. As I'm not too good in math (remember, 3D), which is recommended in this genre, and also I'm not 16 yo any more, so I have no time to release full demos requires months of work of more people, I found my way in the sizecoding category, I am releasing and contributing in 256-byte intros (and also musics, of course). As sizecoder, I still count below-average-talented, other dudes are writing raytracers and other jaw-dropping effects in 256 byte (usually we use 16-bit x86 code), so I'm trying to shine out doing funny or unusual things. For example, one of my latest intro plays a 549 notes piano piece on the MIDI interface (my friend helped to optimize it out, also there's a presentation about how it's made https://github.com/ern0/549notes/tree/master/prez).

So, if you feel yourself lonely because you're high above the average folks, come, join demoscene, and feel yourself lonely on the other end of the spectrum, above the average. Okay, it's not true, not every demoscener is pure genius, but they're way above average, so you'll enjoy. Sometimes these guys are weird, but this is a usual side effect. If they accept you (don't worry, we're not complete jerks), it will be a good feeling to belong to such smart people. Not least, it's a great _inspiration_!

4. You not mentioned, but I assume you have pet projects. It's a fatal mistake to not have pet projects. This is the difference between Real Programmers and this-is-my-job-meh. Even if you work as Universal Problem Solver, there will be several areas which you never deal with before, and some of these are too interesting to just ignore them.

I show you an example. Thanks God (despite I'm atheist/agnostic) that I don't have to deal with web dev, but I was curious what the heck WASM is (web without JavaScript, doesn't it sound good?!), and wanted to write just a plain helloworld C program for it to try it out... and there were no such, all examples were for Rust/Emscripten, so I made a small skeleton: https://linkbroker.hu/stuff/howto-wasm-minimal/ - it became somewhat famous, a bunch of folks thanked it, finally I felt that it wasn't complete waste the time spent with it (2-3 nights).

A special area of pet projects is, where not-too-complicated electronics plays role - keyword is: Arduino. It's a pure joy, even if only a small led blinks in your hand, driven by the program you wrote!

If you have such pet projects, sorry for the redundancy.

5. As I'm getting older, I'm creating presentations from my pet projects and other experiences more and more often. Remember your early career, it would be great if someone had explained clearly how things work: pullup resistor, abstract syntax tree (compiler tech.), version control, key-value databases, LaTeX, build systems, Unix pipes etc.

If you can suggest optimal solutions for a certain problem at work, you should not only justify why you chose that solution, but you should also teach how to do it.

Oh, needless to say: Maybe I'm Wrong. Your way might be complete different, I don't want to iterfere your life (as silly joke goes: - Have a good day! - Please, don't tell me how to life!).

Thanks for warning! Anyway, I just got a new Mac, but I started with installing brew and then install CLANG comes with brew.

I have had more headache with my not-too-but-old-enough Linux systems, 2 of 2 failed: one got stuck when linking (yes, the linker hangs!), another one produced perfect size .wasm output, with... wait for it... full of zero bytes. Full story here: https://stackoverflow.com/questions/71573019/cant-compile-to...

The hardest thing is to accept that you don't really need CS as a software developer. Even programming tasks - digging into legacy code, implementing features etc. - requires no CS knowledge, and programming is just one thing sw devs do.

Other words: there's no CS topic which helps you during an estimation meeting.

Cakewalk 3.0 - it's the only MIDI sequencer which represents MIDI tracks as a grid, not as bars.

I can draw it! Now, all sequencers (rather: DAWs) paints MIDI this way:

ch [======] [===========]

- bar may contain empty regions, so the bar does not really represents notes

- if you want to copy only one beat, you have to split the beginning of the beat, split at the end of the beat, copy the beat, and paste as many time as you want, then you probably want to join them together

- it even worse, when you want to copy more than one track (channel)

Cakewalk 3.x style grid:

OOOOO...OOOOOOOOOOO...

You can select notes on beat boundaries, even more tracks. Then paste it to anywhere: there are merge-paste (pasted notes will be added to existing ones) and replace-paste (affected beats will contain only pasted notes).

Anyway, handling upbeats in this grid-style editing is not comfortable, but still better than using bars.

We should split layers and rush out everyone from the room where low-level things are going. Then, at least, the low-level things will not break.

In an ideal world, we should have building bricks, which even end-users should build an app. Instead, we have frameworks, which are only for programmers, and provide only some automatizable patterns (e.g. a web framework finds which code should be run based on URL), or wrappers (e.g. ORM).

Frameworks and libraries _literally_ hide stuff from progrmmers. They even don't know how computers work.

I've written some 256-byte intros, and showed them for my colleagues. They were amazed:

- Wow, which language do you use, Java? Oh, no you must probably can not use even C++, only C. (Solution: you can not use any language, only assembly.)

- Which framework do you use, Unity? Or pure OpenGL? (Solution: you can't use any, you must put every pixel yourself.)

They don't know, what fits in 256 byte. They don't care what they're producing. And it's not their fault.

It seems very tiny issue, but what I can write 5 lines in other languages (from PHP to CPP), it's only 2 lines in Python. I am writing my tools in Python, and there are lot of 1-line methods.