Zum Inhalt der Seite gehen

Suche

Beiträge, die mit programming getaggt sind


📚 New to C programming? Learn how structures let you group different data types together! Perfect for organizing complex data in your programs.

Check out the step-by-step guide for beginners with clear examples!
👉 Read more here :https://www.spsanderson.com/steveondata/posts/2025-03-26/

#C #CProgramming #Blog #Programming #cprog #learn
📚 New to C programming? Learn how structures let you group different data types together! Perfect for organizing complex data in your programs. 

Check out the step-by-step guide for beginners with clear examples!
👉 Read more here :https://www.spsanderson.com/steveondata/posts/2025-03-26/

#C #CProgramming #Blog #Programming #cprog #learn


Wesley de Groot fixed slow scrolling in Calendo by removing the MapView and caching appointments for... https://wesleydegroot.nl/blog/Fixing-slow-scrolling-in-Calendo #blog #programming #iosdev #swiftlang


:linux:📄 Minimal Linux OS runs in a 6MB PDF Document in Chrome.

A version of the Linux operating system can now be run inside a PDF opened by a Chromium-based browser. The developer [Ading2210] explains that Linux need a modified version of the TinyEMU RISC-V emulator.

https://github.com/ading2210/linuxpdf

#linux #pdf #chromium #based #browser #it #engineer #media #programming #art #tech #developer #artist #news
If you wish to try out the LinuxPDF, it requires a Chromium-based browser to work correctly (I checked, but it didn't work in Firefox on PC).

On the topic of speed and efficiency, [Ading2210] humbly admits that performance might be the largest problem with LinuxPDF. "The Linux kernel takes about 30-60 seconds to boot up within the PDF, which [is] over 100x slower than normal," notes the developer. With Chrome's current PDF engine having its Just-in-Time (JIT) compiler disabled, [Ading2210] sees no way of speeding up the code, for now.
[ImageSource: Ading2210]

The TinyEMU RISC-V emulator runs in the PDF thanks to a technique where its code is compiled "using an old version of Emscripten that targets asm.js instead of WebAssembly." This is embedded and loads in the PDF, subsequently auto-running a minimal Linux kernel targeting that architecture.

In this implementation, once you agree to 'Start Emulator' in your browser, you will see the LinuxPDF UI load, and a welcome message in the Linux viewport, as you wait for the OS to boot.
[ImageSource: Ading2210]

Below the Linux viewport in the PDF is a soft keyboard created by an array of PDF buttons. However, it is likely quicker for everyone with a decent physical keyboard to input commands into the 'type here for keyboard inputs' field to the lower right of the keyboard UI area.


From: blenderdumbass . org

I want to document the way you might have a possibility to use the same software to make a similar website. @Madiator2011 already done that with blog.madiator.com. Lets go over: where you get the code, how do you set it up, how do you publish, how do you manage accounts, and most importantly, how do you modify everything, so it will look like your own thing.

Read or listen: https://blenderdumbass.org/articles/how_to_make_a_blog_like_mine_using_bdserver_software_

#blog #blogging #webdev #website #python #programming #BDServer


Quake ported to Arduino Nano Matter. [Using only 276kb RAM]

Nicola Wrachien with Silicon Labs created this fun handheld, porting Quake using the Arduino Nano Matter. For easy playing a custom controller shaped board was designed with joysticks and a screen.

https://next-hack.com/index.php/2024/09/22/quake-port-to-sparkfun-and-arduino-nano-matter-boards-using-only-276-kb-ram/

#quake #arduino #nano #diy #handheld #port #retro #gaming #art #maker #engineer #artist #media #programming #tech #news
On a technical level, Quake was a dramatic improvement over DOOM, allowing for things like real-time 3D rendering, polygonal models instead of sprites and much more intricate level design. As a result, ports of this game tend to rely on much more powerful processors than DOOM ports and this team shows real mastery of their hardware to pull off a build with a system with these limitations.

Other Quake ports, like one running on an iPod Classic require a similar level of knowledge of the code and the ability to use assembly language to make optimizations.
[ImageSource: Nicola Wrachien]

For a much tougher challenge, a group from Silicon Labs decided to port DOOM‘s successor, Quake, to the Arduino Nano Matter Board platform instead even though this platform has some pretty significant limitations for a game as advanced as Quake.

<https://community.silabs.com/s/share/a5UVm000000Vi1ZMAS/quake-ported-to-arduino-nano-matter-and-sparkfun-thing-plus-matter-boards?language=en_US>

To begin work on the memory problem, the group began with a port of Quake originally designed for Windows, allowing them to use a modern Windows machine to whittle down the memory usage before moving over to hardware. They do have a flash memory module available as well, but there’s a speed penalty with this type of memory. To improve speed they did what any true gamer would do with their system: overclock the processor. This got them to around 10 frames per second, which is playable, but not particularly enjoyable.

The further optimizations to improve the FPS required a much deeper dive which included generating lookup tables instead of relying on computation, optimizing some of the original C programming, coding some functions in assembly and only refreshing certain sections of the screen when needed.


🔤 Master keyboard input in Linux! Learn how to create interactive scripts using the 'read' command - perfect for beginners!

Key topics:
• Basic syntax
• Input validation
• Menu-driven programs

Check the guide: Reading Keyboard Input in Linux https://www.spsanderson.com/steveondata/posts/2025-03-21/

#Blog #Programming #Linux #Bash 🐧💻
🔤 Master keyboard input in Linux! Learn how to create interactive scripts using the 'read' command - perfect for beginners!

Key topics:
• Basic syntax
• Input validation
• Menu-driven programs

Check the guide: Reading Keyboard Input in Linux https://www.spsanderson.com/steveondata/posts/2025-03-21/

#Blog #Programming #Linux #Bash 🐧💻


🔤 Master keyboard input in Linux! Learn how to create interactive scripts using the 'read' command - perfect for beginners!

Key topics:
• Basic syntax
• Input validation
• Menu-driven programs

Check the guide: Reading Keyboard Input in Linux https://www.spsanderson.com/steveondata/posts/2025-03-21/

#Blog #Programming #Linux #Bash 🐧💻
🔤 Master keyboard input in Linux! Learn how to create interactive scripts using the 'read' command - perfect for beginners!

Key topics:
• Basic syntax
• Input validation
• Menu-driven programs

Check the guide: Reading Keyboard Input in Linux https://www.spsanderson.com/steveondata/posts/2025-03-21/

#Blog #Programming #Linux #Bash 🐧💻


Tips to build a personal brand as a developer: define your brand, create an online presence, be active... https://wesleydegroot.nl/blog/Build-a-personal-brand-as-developer #blog #programming #iosdev #swiftlang


:github: GitHub uncovers new Ruby-SAML Vulnerabilities allowing Account Takeover Attacks.

Two high-severity security flaws have been disclosed in the open-source ruby-saml library that could allow malicious actors to bypass Security Assertion Markup Language (SAML) authentication protections.

https://github.blog/security/sign-in-as-anyone-bypassing-saml-sso-authentication-with-parser-differentials/

#github #ruby #saml #library #it #security #privacy #engineer #media #programming #tech #news


🎓 New to R? Master the fundamentals with our comprehensive beginner's guide! From data structures to basic operations, we've got you covered. Includes hands-on exercises and real-world examples to build your confidence. Start your data science journey today! 💻📊

Read more at https://www.spsanderson.com/steveondata/posts/2025-03-17/

#R #RStats #Programming #DataSci #LearnR #Blog #RPgramming #Loop
🎓 New to R? Master the fundamentals with our comprehensive beginner's guide! From data structures to basic operations, we've got you covered. Includes hands-on exercises and real-world examples to build your confidence. Start your data science journey today! 💻📊

Read more at https://www.spsanderson.com/steveondata/posts/2025-03-17/

#R #RStats #Programming #DataSci #LearnR #Blog #RPgramming #Loop


🎓 New to R? Master the fundamentals with our comprehensive beginner's guide! From data structures to basic operations, we've got you covered. Includes hands-on exercises and real-world examples to build your confidence. Start your data science journey today! 💻📊

Read more at https://www.spsanderson.com/steveondata/posts/2025-03-17/

#R #RStats #Programming #DataSci #LearnR #Blog #RPgramming #Loop
🎓 New to R? Master the fundamentals with our comprehensive beginner's guide! From data structures to basic operations, we've got you covered. Includes hands-on exercises and real-world examples to build your confidence. Start your data science journey today! 💻📊

Read more at https://www.spsanderson.com/steveondata/posts/2025-03-17/

#R #RStats #Programming #DataSci #LearnR #Blog #RPgramming #Loop


New Blog Post!

Fizz Buzz has just enough complexity to demonstrate a principle that is usually tough to understand through toy examples: the open/closed principle.

https://kerrick.blog/tutorials/2025/fizz-buzz-object-oriented-edition/

#blog #programming #WebDev #SoftwareEngineering #Software #Design #OOP #OpenClosedPrinciple #Metaprogramming #Ruby


Porting Doom to Typescript Types took 3.5 Trillion Lines, 90GB of RAM and a full Year of Work.

The feat was devised by Software Engineer Dmitri Mitropoulos, founder of Michigan Typescript and co-founder of Squiggleconf. He released a video showcasing the results of a year-long effort to get Doom running inside of Typescript's Types system.

https://youtu.be/0mCsluv5FXA

#doom #port #typescript #programming #ascii #art #engineer #media #retro #gaming #history #tech #artist #news
Dmitri Mitropoulos explains that the project was a year-long struggle, due to having to write his own tools, including 12,364 handwritten tests, learning C, C++, WebAssembly & other languages.

"I did develop what I believe to be the largest Typescript codebase ever", the developer explained. Before optimization, he calculated that the project could take up to 1.25 Petabytes of data, with the first frame compiling after three months of continuous type instantiation.

Every type within the project was thousands of lines long, and the project involved developing a virtual machine inside of the Types system, complete with elements like RAM and Disk Space. "The computer is made of Typescript Types that serve as logical implementations of all 116 WebAssembly instructions Doom needs to run."
[ImageSource: Dmitri Mitropoulos]

Typescript is a language built on top of Javascript, that add static typing to catch many errant mistakes before your executes, think of it as guardrails which check that functions and other variables are being used correctly. While this is commonly used in all kinds of development, it's unheard of to run a game within Typescript's Type system.

The port itself runs inside three and a half trillion lines of types, totalling a gargantuan size of 177 TB. This is run through Typescript's Type tracker, which takes 12 days to compile the first frame of Doom (0.0000009645 fps). This meant that 20 million type instantiations were running every second in order to get the output.

Mitropoulos explained in the Michigan TypeScript Discord server that this could be improved to take "1 to 12 hours", as long as someone works on it, with the developer noting that he has notes for where potential performance optimizations could be made.

<https://discord.gg/pfKUSmSY>

This was done by running the project within a custom WASM runtime, which is then processed through Typescript within an editor to display a frame.

<https://github.com/MichiganTypeScript/typescript-types-only-wasm-runtime>
Dmitri Mitropoulos further explained that each value within the Typescript Types system equates to a line of pixels [totalling 128,000 lines of pixels in total], resulting in a "resolution" of 320x200, displayed in ASCII.

To do this, the developer needed to remove limitations within the Typescript compiler itself, highlighting just how large the project got, with the Type tracker runtime consuming over 90 GB of RAM while it was running.

This huge overhead meant that common tools within Typescript could not be used, which meant that the herculean task of encoding every element of Doom in types. This required learning to develop elements like an L1 CPU cache, within Typescript Types itself. Due to Typescript requiring iteration on a single string from the left-hand side, binary algorithms had to be input in reverse.

"Oh, and AI can't help" Dmitri Mitropoulos added, describing that the work was so low level that AI couldn't possibly assist with any of the tasks. Too bad, Grok 3.

Mitropoulos said that he undertook the challenge after completing "every other" Types challenge, and wanted to understand why Doom wouldn't be able to run within Types. However, he managed to find "ridiculous" workarounds to make it all work, despite his own disbelief in the project.


using NavigationStack to manage navigation in SwiftUI apps, with features like declarative... https://wesleydegroot.nl/blog/NavigationStack #blog #programming #iosdev #swiftlang


When I was working on my first Django project, I encountered a problem where modifications done inside pre_save signal were not stored in the database. Back then it took me a couple of hours to figure out what is wrong and how to fix it. I’m sharing what I’ve learned to save that time someone else.

https://mirekdlugosz.com/blog/2025/django-data-modified-in-pre-save-signal-is-not-saved/

#python #django #programming #bugs #blog #software #softwaredevelopment


📚 Arrays in C: Your first step into data structures! Learn how to store and manage multiple values efficiently.

With beginner-friendly examples! ✨

#C #CProgramming #Blog #Programming #CProg #Arrays

Read more here: https://www.spsanderson.com/steveondata/posts/2025-03-12/
C arrays and pointers


📚 Arrays in C: Your first step into data structures! Learn how to store and manage multiple values efficiently.

With beginner-friendly examples! ✨

#C #CProgramming #Blog #Programming #CProg #Arrays

Read more here: https://www.spsanderson.com/steveondata/posts/2025-03-12/
C arrays and pointers


From: blenderdumbass . org

I want to document the way you might have a possibility to use the same software to make a similar website. @Madiator2011 already done that with blog.madiator.com. Lets go over: where you get the code, how do you set it up, how do you publish, how do you manage accounts, and most importantly, how do you modify everything, so it will look like your own thing.

Read or listen: https://blenderdumbass.org/articles/how_to_make_a_blog_like_mine_using_bdserver_software_

#blog #blogging #webdev #website #python #programming #BDServer


:linux: Strap in, get ready for more Rust Drivers in Linux Kernel.

Rust is alive and well in the Linux kernel and is expected to translate into noticeable benefits shortly, though its integration with the largely C-oriented codebase still looks uneasy. [The Linux and Rust communities still have some issues to work out.]

https://rust-for-linux.com/rust-kernel-policy

#linux #kernel #memory #safety #rust #drivers #it #security #privacy #engineer #media #programming #tech #news
In a hopeful coda to the recent maintainer drama that raised questions about the willingness of Linux maintainers to accommodate Rust code, Josh Aas, who oversees the Internet Security Research Group's Prossimo memory-safety project, late last week hailed Miguel Ojeda's work to advance memory safety in the kernel without mentioning the programming language schism.

<https://www.memorysafety.org/blog/linux-kernel-2025-update/>

"While our goal was never to rewrite the entire kernel in Rust, we are glad to see growing acceptance of Rust's benefits in various subsystems," said Aas. "Today, multiple companies have full time engineers dedicated to working on Rust in the Linux kernel."
Security – in the form of memory safety – is Rust's selling point.

Rust provides ways to avoid memory safety vulnerabilities that crop up in programming languages like C and C++ where manual memory management is allowed. Though other languages such as Python, Java, JavaScript, Swift and C# are also considered memory safe. Rust has received most of the memory safety evangelism, partly because it's suited for the sort of low-level, performance-sensitive code that for the past few decades has tended to be written in C and C++.

"Many of the most critical software vulnerabilities are memory safety issues in C and C++ code, and while there are ways to reduce the risk, including fuzzing and static analysis, memory safety vulnerabilities continue to plague the Internet," said Josh Aas in a write-up.

<https://www.memorysafety.org/blog/initiative-criteria/>


Wesley de Groot's Blog shares favorite macOS terminal commands for enabling/disabling beta updates, Xcode... https://wesleydegroot.nl/blog/macOS-Terminal-commands #blog #programming #iosdev #swiftlang


🌟 See nested loops in action! I've shared some quasi real-world #RStats examples showing how to handle complex data structures effectively.

Explore the examples ➡️ https://www.spsanderson.com/steveondata/posts/2025-03-10/

#R #Data #Code #RProgramming #Programming #Loops #NestedLoops #Blog
# Inefficient approach (without pre-allocation)
result_inefficient <- c()
for (i in 1:1000) {
  result_inefficient <- c(result_inefficient, i^2)
}

# Efficient approach (with pre-allocation)
result_efficient <- numeric(1000)
for (i in 1:1000) {
  result_efficient[i] <- i^2
}


🌟 See nested loops in action! I've shared some quasi real-world #RStats examples showing how to handle complex data structures effectively.

Explore the examples ➡️ https://www.spsanderson.com/steveondata/posts/2025-03-10/

#R #Data #Code #RProgramming #Programming #Loops #NestedLoops #Blog
# Inefficient approach (without pre-allocation)
result_inefficient <- c()
for (i in 1:1000) {
  result_inefficient <- c(result_inefficient, i^2)
}

# Efficient approach (with pre-allocation)
result_efficient <- numeric(1000)
for (i in 1:1000) {
  result_efficient[i] <- i^2
}


New journal post is up!

https://samerion.com/journal/2025-02

Read as I explain the problem I ran into while making the last model, and what I aim to do to fix it.

#Samerion #Gamedev #Blog #Programming #3D
Building the hospital for broken textures: a promotional picture for the article, where Samerion and Lei toy around a strange contraption which tries to paint on a piece of cardboard attached to a model skeleton.


🔍 Confused by C pointers? Let's start with the basics! Learn what pointers are and how to declare them properly in our beginner-friendly guide!

I'm learning as I write it so if you see errors please comment the correction :)

#C #CProgramming #Blog #Programming #LearnC #Code

🔗 https://www.spsanderson.com/steveondata/posts/2025-03-05/
a large, stylized letter "C" set in a futuristic computer lab that reflects a 1970s perspective of the future. The lab should feature retro-futuristic computer equipment, glowing screens, and intricate circuit designs, all rendered in muted tones like soft blues, greens, and grays. The atmosphere should evoke a sense of nostalgia while showcasing advanced technology, with elements like oversized buttons, analog dials, and vintage monitors. The overall composition should blend the charm of retro aesthetics with a vision of a high-tech future, inviting viewers to explore this imaginative space.


🔍 Confused by C pointers? Let's start with the basics! Learn what pointers are and how to declare them properly in our beginner-friendly guide!

I'm learning as I write it so if you see errors please comment the correction :)

#C #CProgramming #Blog #Programming #LearnC #Code

🔗 https://www.spsanderson.com/steveondata/posts/2025-03-05/
a large, stylized letter "C" set in a futuristic computer lab that reflects a 1970s perspective of the future. The lab should feature retro-futuristic computer equipment, glowing screens, and intricate circuit designs, all rendered in muted tones like soft blues, greens, and grays. The atmosphere should evoke a sense of nostalgia while showcasing advanced technology, with elements like oversized buttons, analog dials, and vintage monitors. The overall composition should blend the charm of retro aesthetics with a vision of a high-tech future, inviting viewers to explore this imaginative space.


Banned from Forums? Here’s How to Turn the Tables (Ethically, of Course!) 🚀

https://chat-to.dev/post?id=ZjBYSGw1QVE4bElOUThEY2l0OUNYUT09&redirect=/ #programming #forums #blogs #socialnetworks #code #developers


Remotely controlled Vehicles over Starlink.

What if you want to control a vehicle that’s hundreds of kilometers away, or even on the other side of the planet? Cellular is an option, but is obviously limited by available infrastructure — good luck getting a cell signal in the middle of the ocean.

https://youtu.be/Fjy1hcLf2_M

#diy #remotely #controlled #science #sea #vehicles #starlink #mini #receiver #it #engineer #media #maker #programming #tech #space #news
Modern remote control (RC) radios are capable of incredible range, but they’re still only made for line-of-sight use. But what if you could beam your commands down from space?

That’s what [Thingify] was looking to test when they put together an experimental RC boat using a Starlink Mini for communications. Physically, there was no question it would work on the boat. After all, it was small, light and power-efficient enough.

The downside? Starlink is a fairly expensive proposition; you’d need to have a pretty specific mission in mind to justify the cost. The Mini receiver currently costs $599 USD (though it occasionally goes on sale), and you’ll need at least a $50 per month plan to go with it. While this puts it out of the price range for recreational RC, [Thingify] notes that it’s not a bad deal if you’re looking to explore uncharted territory.
[ImageSource: Thingify]

But would the network connection be up to the task of controlling the vehicle in real-time?

During early ground testing, the Mini version of the Starlink receiver worked very well. Despite being roughly 1/4 the size of its predecessor, the smaller unit met or exceeded its performance during benchmarks on bandwidth, latency and signal strength. As expected, it also drew far less power: the Mini’s power consumption peaked at around 33 watts, compared to the monstrous 180 W for the larger receiver.

On the water, there was even more good news. The bandwidth was more than enough to run a high-resolution video feedback to the command center. At the same time, the boat moved autonomously between waypoints, and when [Thingify] switched over to manual control, the latency was low enough not to be a problem. “We wouldn’t recommend manually piloting a high-speed aircraft over Starlink, but for a boat that’s cruising along at 4 km/h, the lag didn’t even come into play.”


:blobcatgamer: Fan made Dreamcast Port of GTA 3 [Steals the Show].

Thanks to [Stefanos] and his team, the genre defining Grand Theft Auto III [GTA 3], can now run on Sega’s hardware. Their combined efforts have yielded a fully playable port of the PC version of the game for Sega Dreamcast.

https://gitlab.com/skmp/dca3-game

#sega #dreamcast #gta3 #port #retrocomputing #art #console #gaming #history #engineer #media #retro #programming #artist #tech #news
The porting effort was years in the making. It began with reverse engineering the entire source code of GTA 3 then implementing it into the homebrew SDK for the Dreamcast, KallistiOS. All the in-game graphic and sound assets are only pulled from a user provided PC copy of the game. Steps for those seeking to compile a bootable Dreamcast image of their own have been provided on the project’s website.

<https://dca3.net/setup/>

Recently one of the original developers of GTA 3 [Obbe Vermejj], divulged that the game actually began development on the Dreamcast. The project was obviously transferred onto PlayStation 2 for commercial reasons, but with this port from [Stefanos] and crew, we no longer have to dream of what could have been.
[ImageSource: Stefanos]

As it turns out, Sega’s long defunct Dreamcast console is still thinking. The company behind the machine cut support long ago due in part to the commercial pressures applied by Sony’s PlayStation 2 console, but that never stopped the most dedicated of Dreamcast fans from seeking out its true potential.

This port of GTA 3 represents what could have been a true butterfly effect moment in console gaming history. The game was a major hit in the early days of the PlayStation 2, and it has been theorized that it could have proven to be a major commercial success for Sega as well had it been pressed onto a Dreamcast GD-ROM disc.


The "bus factor" is the minimum number of team members that have to suddenly disappear from a project before the project stalls due to lack of knowledgeable or competent personnel.

https://en.wikipedia.org/wiki/Bus_factor

#freesoftware #programming


🎮 Ready for a challenge? Try sorting this:

int mix[] = {42, 13, 7, 1, 89}

Share your solution below! Hint: Start with bubble sort 😉

Join the fun at https://www.spsanderson.com/steveondata/posts/2025-02-26/

#Programming #CProg #Fun #Blog #C #CProgramming
ALT text: "A code snippet written in C programming language displayed in a dark-themed code editor window. The code implements a `bubbleSort` function that takes an integer array and its size as parameters. It uses nested loops to compare and swap adjacent elements if they are out of order, sorting the array in ascending order. The syntax is highlighted with keywords in green, numbers in red, and variables in yellow."


🎮 Ready for a challenge? Try sorting this:

int mix[] = {42, 13, 7, 1, 89}

Share your solution below! Hint: Start with bubble sort 😉

Join the fun at https://www.spsanderson.com/steveondata/posts/2025-02-26/

#Programming #CProg #Fun #Blog #C #CProgramming
ALT text: "A code snippet written in C programming language displayed in a dark-themed code editor window. The code implements a `bubbleSort` function that takes an integer array and its size as parameters. It uses nested loops to compare and swap adjacent elements if they are out of order, sorting the array in ascending order. The syntax is highlighted with keywords in green, numbers in red, and variables in yellow."