Programming Leftovers
-
AI, Minus the Hype
AI is a fascinating topic that seems to dominate the cultural conversation lately. Whether it’s AI being used to write anything imaginable or one of the many AI image generators making waves everywhere, there’s no denying the fact that AI is here to stay—and people are utilizing it in some very strange ways. AI inspires conversations on everything from copyright issues to regulation and potential job losses. But there’s also a distinct novelty to AI, and if you’ve been reading Tedium for a while, you probably already know where we’re going with this. In today’s Tedium, we’re looking at generative AI though our grainy, red-and-gray tinted glasses.
-
David Guetta Faked Eminem’s Vocals Using AI for New Song
"Eminem bro, there's something that I made as a joke and it works so good — I could not believe it!" says Guetta. "Basically you can write lyrics in the style of any artist you like, so I typed: 'write a verse in the style of Eminem about future rave,' and I went to another AI website that can recreate the voice. I put the text in that and I played the record and people went nuts."
-
Some different graph types in R
Of course there are many more chart types that are beyond the scope of this blog post. One reference is Top 50 ggplot2 Visualizations – The Master List (With Full R Code). A very cool chart type is the radar chart which you can see at How to Create Radar Charts in R (With Examples).
-
Custom Models Are AI’s Killer App
The whole game will be how fast they can be trained, on the most data, at the lowest cost.
-
GhostSCAD: Marrying OpenSCAD And Golang
It’s been at least a couple of months since we’ve seen a different 3D modeling language project, so here’s [Lukasz Janyst] with GhostSCAD: a take on creating OpenSCAD models, using the Go language as the front end, bringing all the delights this modern modular language has to offer (and a few of its own idiosyncrasies.) As [Lukasz] says in the blog, from a programmer’s viewpoint, openSCAD has a number of failings that make it not necessarily hard, just kinda annoying to work with, due to the way the geometry tree works. The OpenSCAD way of working ends up with the programmer requiring knowledge of the internal workings of sub-modules, in order to work at the top level (assembly) which is not an ideal situation from a code reuse perspective.
-
A 10-step guide for a successful hackathon
Hackathons are easy. How much thought do you need to put into them anyway? Just set a date, and people will show up. Well, that is not quite true!
While you may get lucky with that approach, the reality is that hackathons are a keystone experience in the tech industry, and attendees have specific expectations. Not only that, but your organization also has certain needs and should set goals for a hackathon. So, how do you ensure that a hackathon works for your organization and attendees?
A successful hackathon depends on several decisions that tend to be recursive. Decisions about what you want to achieve will impact what resources you allot and how you want to communicate. Those decisions affect whether you go virtual or in person, and that decision will once again impact the resources you need and how you communicate. Alignment when planning hackathons is not just about getting people to agree. You will have a whole suite of decisions that must internally align. For example, a technically difficult hackathon might not be able to attract a large audience (ask me how I know!) and will require a specialized recruitment strategy that requires different resources.
I've done many hackathons over the years, including just a few months back, when my organization hosted a hackathon that led to new features that we will incorporate into the next version of our open source product, Traefik Proxy 3.0. So, trust me when I say planning a hackathon that will enrich attendees and create valuable outcomes for your project is about more than hope, pizza, and chaos.
This downloadable guide serves as a model for you to outline best practices so that you can hold a successful hackathon with a sizable target audience that delivers results…
-
Learn Expect by writing and automating a simple game
While trying to automate my workflow, I hit upon a configuration utility that defied meaningful automation. It was a Java process that didn't support a silent installer, or support stdin, and had an inconsistent set of prompts. Ansible's expect module was inadequate for this task. But I found that the expect command was just the tool for the job.
My journey to learn Expect meant learning a bit of Tcl. Now that I have the background to create simple programs, I can better learn to program in Expect. I thought it would be fun to write an article that demonstrates the cool functionality of this venerable utility.
This article goes beyond the typical simple game format. I plan to use parts of Expect to create the game itself. Then I demonstrate the real power of Expect with a separate script to automate playing the game.
This programming exercise shows several classic programming examples of variables, input, output, conditional evaluation, and loops.
-
Java’s History Could Point the Way for WebAssembly
It’s hard to believe that it’s been over 20 years since the great dotcom crash happened in 2001, which continues to serve as a harbinger of potential doom whenever cyclic tech is on a downward path. I remember quite distinctly hanging out with either unemployed or underemployed folks in the IT field shortly after the great crash in 2001. We were doing just that: hanging out with time on our hands.
During that time, one day in a park in New York City, Brookdale Park in Montclair, NJ, one of my friends was sitting on a park bench pounding away on his laptop, and he said there was this really cool thing for website creation called Java. It’s been around for a long time, actually, but described how amazing it was that you could program in Java code and deploy, where you want on websites, he said. And of course, have played a key role in transforming the user experience on websites compared to the days of the 1990s when HTML code provided the main elements of website design. Sure, why not, I’ll check it out, I said. And the rest is history as Java secured its place in history, not only for web development, but across IT infrastructure.
-
Performance Measured: How Good Is Your WebAssembly?
WebAssembly adoption is exploding. Almost every week at least one startup, SaaS vendor or established software platform provider is either beginning to offer Wasm tools or has already introduced Wasm options in its portfolio, it seems. But how can all of the different offerings compare performance-wise?
The good news is that given Wasm’s runtime simplicity, the actual performance at least for runtime can be compared directly among the different WebAssembly offerings. This direct comparison is certainly much easier to do when benchmarking distributed applications that run on or with Kubernetes, containers and microservices.
-
WebAssembly vs. JavaScript: Security, Speed, Flexibility
Towards the beginning of what is popularly known as the World Wide Web, there was JavaScript. JavaScript has been around since 1995 when Brendan Eich created the language to support Netscape, the now sadly defunct yet aesthetically pleasing web browser that was revolutionary for its time. Since then, the ECMAScript standard has served to underpin web development, representing the vast majority of applications that run in the web browser.
More recently, WebAssembly (Wasm) — which actually has been around for a while — has emerged. After the World Wide Web Consortium (W3C) named it as a web standard in 2019, it has thus become the fourth web standard with HTML, CSS and JavaScript. But while web browser applications have represented Wasm’s central and historical use case, again, the point is that it is designed to run anywhere on a properly configured CPU — this is where Wasm and JavaScript both bifurcate and become more integrated for some use cases.
-
WebAssembly: When You Hate Rust but Love Python
One of the main attributes of WebAssembly is how it can accommodate a number of different languages that are deployed — in theory at least — wherever there is a CPU device that can run instruction sets. The languages Wasm can run include, in addition to JavaScript, Rust, Go, .NET, C++, Java, PHP — and Python (a lot more about Python below).
As an early web browser application, Wasm has been, and continues to be, heavily entwined with JavaScript. More recently, Rust has entered the fray, and its integration with JavaScript and even when running alone without JavaScript for WebAssembly applications is showing a lot of promise.