@geniusmusing Mostly the same stuff: * LAMP / LEMP / similar — Linux, Apache webserver (though I would also look at Nginx, Lighttpd, H20, Comanche, Cheyenne web servers), MySQL (though I’d also look at PostgreSQL, SQLite, Firebird), PHP (though I’d also look at Perl, Raku, Python, !TclTk, Ruby [and Ruby on Rails], JVM langs [Java, Scala, Groovy + Grails], JavaScript [and Node.js, Deno, Jsish]) * Cloud stuff (Amazon AWS, Microsoft Azure, Google GCP, IBM Cloud, CenturyLink Cloud) * C, C++, !DLang, Nim * Some of the NoSQL database technologies, such as Cassandra, Riak, MongoDB * MapReduce technologies, such as Hadoop
Note that a mention on the list above does not mean I will actively focus on learning that particular technology, just that it is one that has a potential of being a focal point.
One good thing about starting out so broad and zooming in a bit is that I have a few courses I’ve already paid for that are already in the zone. I can utilize some of them to steer me into the direction that works best for me.
I’m not doing that. There’s another way to get Rustup, and I can make it use the OS installation as default, too. It’ll allow me to use their then-current version when I need to without losing the OS-installed default.
(I’m so very glad that both #gdc and #ldc for !DLang, along with #dub, are in Debian / Ubuntu and work fine. I’m not a #Rustacean or #Rusticrucian, so I don’t want something that I’ll forget to update between my occasional uses.)
Taking a brief time away from learning !Dlang and #PHP to go through a couple of #Ocaml tutorials before I return to $EMPLOYER's garbage training courses tomorrow.
@dansup @clipsey Adding link to the conversation to the !DLang group (not sure how many people will see it now that most #Fediverse users use software that does not support groups).
It takes an almost-D file that contains C-#includes, inserts those, translates any prototypes into the right D prototype in an extern(C) block, runs the result through the real cpp to expand any macros, and that becomes a D file that the normal compiler can compile.
Sounds crazy, but apparently it's been tested to work for calling libcurl, openssl, nanomsg and a few others, and that's still early days. Kindasorta works with C++ if it's basically a C-compatible subset.
Is the !dlang GC an issue for you as you're interfacing with your C and other non-D code?
There is the -betterC mode, which is still pretty limiting (but no more than writing in C?), but it's being worked on. More and more of the standard library is being made available.
There are methods for separating your GC code and your non-GC code in different threads, and you can make sure certain code parts (and everything they call) are free of GC with the @nogc attribute.
There's also always the nuclear option of GC.disable. If you have safe points where you're not under scheduling pressure you can run GC.collect explicitly. I don't think there's a way to make the collection time bounded though, which would have been useful.
> It can’t be repeated enough given how often it’s misunderstood: D’s GC will only have a chance to run when the programmer allocates GC memory and it will only run if it needs to. Use that knowledge to your advantage by keeping the allocations small, infrequent, and isolated outside your inner loops.
> A not-so-well-written article about the fuzzing capability recently added to LDC, using LLVM’s libFuzzer. Compiling code with -fsanitize=fuzzer adds control-flow instrumentation used to guide the fuzzing and links-in the libFuzzer library that drives the fuzz testing (same as Clang). -fsanitize=fuzzer is available from LDC 1.4.0, not on Windows. LDC 1.6.0 was used for the examples in this article.
Tried out subbing to the "BSD Now" podcast. Interesting, but the two episodes I've listened to are about four times too long and filled with babbling. Within 5-10 minutes, I've tuned out. #BSDNow
I think I'm going to unsubscribe, which will leave me with two: * Hacker Public Radio -- I've resubbed for the past couple of weeks and I have not burned out yet. Maybe I'm just a fan of @klaatu ;-) #HPR * Smalltalk Reflections -- This one is on another unannounced hiatus. I should probably take a look around and see whether there are any other !Smalltalk podcasts in currently active production.
I haven't really looked for them yet, but I'd be interested in trying out podcasts that focus mostly on !TclTk or !DLang.
> Main part of this feature is a new UDA `@dynamicCompile`.
> You can mark with this attribute any function (including class methods and lambdas) and compilation and optimization of this function will be deferred to runtime. Dynamic compiler will use instruction set available on host, so application can utilize the best available instructions without sacrificing users with old hardware.
You can also calculate or otherwise dynamically figure things out in runtime, and then compile with these values considered constant, so that the optimizer can remove dead code based on your values etc.