thewayne: (Default)
And what's even harderer? Using an AI coding assistant to write secure programs.

Many, MANY times that I've written about computer insecurity issues I've said explicitly that computer security is HARD. And here we have a prime example.

It turns out that using an AI to help you write a program produces LESS secure programs! But that's not the worse part: the program is more likely to believe that they are writing MORE SECURE CODE!

This is very bad. I've used AI for hints in writing code, looking for little obscure code references that I'm not familiar with. Quite useful. I haven't used it to write entire programs for me, I'm not sure that I could. However, there are people out there paying for subscriptions to ChatGPT 4 and other engines using them heavily, and that is worrisome.

https://arxiv.org/html/2211.03622v3

https://www.schneier.com/blog/archives/2024/01/code-written-with-ai-assistants-is-less-secure.html
thewayne: (Default)
Outside of the somewhat more hardcore programming geeks, his name will be almost completely unknown. But his impact on computer programming will long outlive him.

He invented Pascal, which begat Delphi. He was involved in the development of Algol. Basically he was one of the seminal forces in developing computer programming languages throughout his career, which was a long one. Borland's Turbo Pascal was a truly revolutionary release back in the Dos days.

Interestingly, he did not intend Pascal as an actual production programming language. He wanted it used as a teaching tool to introduce people to structured programming, which it was very good for.
He intended Oberon language as a programming tool.

I took Pascal twice. The first time, it just didn't click. I probably wasn't quite ready for it, and I don't think the book was that good. But the second time, everything fell into place: great teacher, good book, and more experience under my proverbial belt. And I fell in love with it.

One thing that I thought was absolutely fantastic about Pascal was the assignment operator and the equality operator. In many, many languages, you assign a value to a variable by using the equals symbol, thusly:

A = 1

Commonly described as A equals one. Seems clear, right?

In Pascal, you use the assignment operator:

A := 1

Described as A is assigned the value of one. A little more unambiguous.

In languages that use the equals symbol, when you want to evaluate an expression, you have a problem. In mathematics, you just use the equals symbol to test for equality. But if you're using that symbol as an assignment operator, you're running a risk of confusing the program compiler or messing up the logic of your program.

If you say

if A = 9 then (do stuff)

What are you saying? Do stuff if A = 9, or are you assigning the value of 9 to A, which is a true statement? Many languages started using == to test for equality. Thus you get

if A == 9 then (do stuff)

In Pascal, since you have an assignment operator in the := syntax, you can say

if A = 9 then (do stuff) and it's unambiguous!

I always thought that was syntactically brilliant, and always gave Mr. Wirth great kudos for it.

https://developers.slashdot.org/story/24/01/04/0126247/niklaus-wirth-inventor-of-pascal-dies-at-89
thewayne: (Default)
First off, I am not an advocate of the position 'everyone needs to learn to code!' That is a bunch of garbage. Programming is a very specific skill set and aptitude, and not everyone has that nor the interest in learning to code! Coding should not remotely be a requirement to graduate from high school! You're just inflicting another form of pain on kids to require it.

What I AM an advocate of is people need basic computer literacy, and this includes some critical thinking training to recognize scams and such. And scams are only going to get harder to see through in the future with AI writing better scripts for scammers! Offering classes for kids who WANT to learn to code, or learn about the internal workings of computers and how to maintain them, is fine and dandy. But aside from basic literacy, this should not be a graduation-dependent topic.

While many jobs, and more growing, require advanced computer skills, those are things that should be developed and refined at the college level. There are lots of jobs that don't require programming skills, and some that have minimal levels of computer use at all! We need more plumbers and electricians, among many other trades that are in short supply.

ANYWAY....

The Raspberry Pi organization is very, very cool. They're sort of a combination of Heathkit and Radio Shack for geeks and electronics experimenters. They manufacture a small computer board known as the Raspberry Pi which has a CPU, memory - solid state/non-volatile (doesn't lose contents when powered off), network connections through Ethernet or WiFi, a video output, and the board has all sorts of pins on it that you can connect "stuff" to. Want to build a robot that has sonar so it can move around your house like a Roomba? RaspPi. Want to build your own home security sensor system? This is the device. It is effectively unlimited in what it can do, only your imagination restricts the possibilities. That is, as long as you're able to work within its limited processing ability.

And you can buy these computer boards for $50-$100, depending on options!!!

And people have built micro-super computers out of these! They build a cage of a dozen or more, link them together through networking, and program some pretty amazing things out of them! They can't crunch huge number sets, but they can demonstrate how massively-parallel computing works and can be used teach the science behind them.

A lot of programming on these things is done through Python, an extremely versatile language. And now the Foundation, an education arm of the organization, has released an online code editor for Python. It's sort of no-frills, but it supports multiple files in a project. Code is saved in Raspberry's cloud and is accessible to you anywhere you have an internet connection. Right now, the editor is strictly Python, but there are plans to allow HTML and other code bases into it.

The best part is it integrates nicely with the Foundation's Python sample code base to use with their products! Need an example of how to process sonar signals for collision avoidance? Probably there. Etcetera.

And, of course, it's free.

I'm going to be playing with it as I like the Python language and am interested in Pi boards, though I don't have one at the moment. They were hammered hard by the pandemic with people stuck at home looking for things to do, their inventory was ate up at a very fast pace.

The article:
https://www.tomshardware.com/news/raspberry-pi-online-code-editor

The editor:
https://editor.raspberrypi.org/

The Slashdot thread:
https://developers.slashdot.org/story/23/04/08/2247207/raspberry-pi-launches-online-code-editor-to-help-kids-learn
thewayne: (Default)
A private company assigns license plates to violations, and guess what happens when they can't match the violation - it gets assigned to NULL!

This is a database bug. Null is the concept of absence of value. It is not zero, zero is a value. It is not an empty string. It is an absence of value. It means "this license plate field does not exist". And you cannot compare nulls to nulls - does not compute. Null does not equal Null.

Now, in the case of this guy, his license plate is a string of the letters "NULL". Perfectly valid word. In fact, at a previous job I found someone who had the name of Null! It was their actual family name!

So whoever designed the database is doing a string match where they're doing something like
IF LookupFails 'can't find a match for the plate in the MVD database
  IF [LicensePlate]="NULL" THEN 'we have a match!
    'send the fine to the owner of this license plate

not realizing that some joker might register the license plate NULL.

It's an illustration of bad programming technique that any first year programmer should have gotten an F on their assignment for.

He's gotten the fines dismissed, but continues to receive them.

https://www.schneier.com/blog/archives/2019/08/license_plate_n.html
The comments are amusing - if you're a programmer.
thewayne: (Default)
Zork. Hitchhiker's Guide to the Galaxy. Planetfall. A Mind Forever Wandering. Leather Goddess of Phobos. Sorcerer. Deadline. All the source code is there, as is a link to a manual that explains how the Lisp-like Zork Implementation Language, ZIL, works (scroll down to download it in PDF, epub, Kindle, and other formats). There's interpreters for all of the major operating systems available, apparently ZIL is very popular in the interactive fiction community.

Activision still holds the rights, and technically this could all disappear in the blink of an eye, but the code is so ancient that it might just stay up. It should prove to be quite an interesting study in natural language parsers.

There's a total of 54 repositories, it took me about 25 minutes to download all the zips and it's a total of about 167 meg when all is said and done.

https://arstechnica.com/gaming/2019/04/you-can-now-download-the-source-code-for-all-infocom-text-adventure-classics/


Just to add to stuff that you might want to download, Archive.org has a thing called the Infocom Cabinet, containing stunning collections of documents scanned from Infocom documenting behind the scenes stuff from Infocom projects. For example, the tome, and there's no better word for tome as it's near 600 pages long! on Hitchhikers - is just on Hitchhikers! There's similar for Zork, Leather Goddess, Mind Forever Wandering, two for Planetfall, etc! 28 entries in all. This is going to be an amazing partial biography and behind the scenes of Infocom! It's a somewhat bigger download: 28 files which, in epubs, is 1.4 gig!

Back to downloading, I guess....

https://archive.org/details/infocomcabinet

August 2025

S M T W T F S
     12
34 56789
10111213141516
17181920212223
24252627282930
31      

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 8th, 2025 01:39 pm
Powered by Dreamwidth Studios