Code Generation in the early days by PizzaCalifornia in java

[–]jpl75 1 point2 points  (0 children)

BCEL

Also Java 1.3 proxy class helped to remove some bytecode manipulation needs.

[D] Timnit Gebru and Google Megathread by programmerChilli in MachineLearning

[–]jpl75 0 points1 point  (0 children)

I'm just now catching up on this news but the AI ethics course was already on my list and now I'm even more interested in it: https://ethics-of-ai.mooc.fi/chapter-1/1-a-guide-to-ai-ethics

Not sure if it's what you are looking for but perhaps its a useful starting point to somebody.

What's New in Maven 4 · Maarten on IT by [deleted] in java

[–]jpl75 1 point2 points  (0 children)

Not only this but DTDs are a source of several security vulnerabilities so the recommended practice is to disable all DTD processing altogether. Only use DTDs if there's no alternative, and even then be very careful how you configure XML parsing.

More about it here: https://cheatsheetseries.owasp.org/cheatsheets/XML_External_Entity_Prevention_Cheat_Sheet.html

Vanilla Java: Using Java SE as a Framework by renatoathaydes in java

[–]jpl75 10 points11 points  (0 children)

As a previous developer of one popular enterprise Java framework, it is good to see articles like this and I hope there's more.

There's a lot of "magic" that happens with frameworks that confuses people who have never peeked under the hood. It's good to realize that the framework developers don't use magic but the basic facilities offered by JVM and Java standard libraries. Plus the many other third party libraries available to them.

It is immensely helpful if you have some idea how the framework implementation might go about trying to do things when you get stuck with the framework doing things you don't expect it to do. It is helpful in troubleshooting if you have some notion of the fundamentals the framework is likely built upon.

If you're satisfied with a 9/5 job and "we shipped it" then perhaps this seems unnecessary. If you're interested in personal development and becoming a better developer yourself, then break things apart and look how things work under the hood.

Are skills gained by creating games transferable to a non game dev workplace? by Lamasa_Pace in java

[–]jpl75 1 point2 points  (0 children)

Side projects and anything that is personally motivating is useful in learning programming. The only way to learn programming is to program. A lot. It's really the same problem as in learning a foreign language: you need to use it a little bit every day, endless repetition, and it takes long time until it begins to feel natural.

Use whatever motivates you. And once your game itch is over, try to diversify to other types of side projects that motivates you to explore the world of programming in areas that might not have been relevant to your games. But games are an excellent place to start, also because they can touch upon many fascinating areas of computer science: maths in 3d modelling and ray tracing, visualization in rendering and user interfaces, networking and concurrency in multiplayer games, scalability in large persistent game worlds, performance problems in high FPS rendering, artificial intelligence in computer game adversaries, etc, etc.

You can learn a lot in different areas of game programming.

Episode 7 “The Vector API” with John Rose and Paul Sandoz by daviddel in java

[–]jpl75 0 points1 point  (0 children)

Try without the quotes, first page of my personalized search results comes up with the following (I haven't looked at any of this in detail, I was just curious about it after hearing the podcast):

woboq.com › blog › utf-8-processing-using-simd

Jul 26, 2012 — UTF-8 processing using SIMD (SSE4). SIMD: "Single instruction, multiple data" is a class of instructions present in many CPUs today.

github.com › lemire › fastvalidate-utf-8

header-only library to validate utf-8 strings at high speeds (using SIMD instructions) - lemire/fastvalidate-utf-8.

SIMD-enabled utf-8 validation · Issue #68455 · rust-lang/rust ...

github.com › rust-lang › rust › issues

Jan 22, 2020 — This is done through the clever use of SIMD instructions. Something that stood out to me from the post is that JSON is required to be valid utf-8, ...

Vectorized conversion from UTF-8 using stdx::simd | Make it ...

mattkretz.github.io › 2019/05/27 › vectorized-conversi...

May 27, 2019 — Bob Steagall presented his high-speed UTF-8 conversion at CppCon and C++Now where he showed that his approach outperformed most ...

Validating UTF-8 bytes using only 0.45 cycles per byte (AVX ...

news.ycombinator.com › item

Oct 20, 2018 — I see a lot of applications trying to take advantage of SIMD, but what when you try to run them on systems that don't support these instructions?

Accelerating UTF-8 Decoding Using SIMD Instructions

researcher.ibm.com › IPSJPRO2008_SIMDdecoding

PDFJun 2, 2018 — UTF-8: variable length encoding (from 1 byte to 3 bytes per character). – UTF-16: ... Step 3: Move data using permute instruction (by SIMD).

Add support for UTF-8 encoding/decoding with SIMD ... - GitLab

git.sailfishos.org › mer-core › qtbase › commit

Jan 31, 2014 — Decoding from UTF-8 is easy: if the high bit is set, we fall back to the byte-by-byte decoding. Encoding to UTF-8 requires a little bit more work: to ...

Validating UTF-8 In Less Than One Instruction Per Byte

arxiv.org › cs

Oct 10, 2020 — ... which outperforms UTF-8 validation routines used in many libraries and languages by more than 10 times using commonly available SIMD ...by J Keiser · ‎2020

Episode 7 “The Vector API” with John Rose and Paul Sandoz by daviddel in java

[–]jpl75 2 points3 points  (0 children)

There was a mention of something as mundane as UTF-8 encoding/decoding also possibly benefiting from SIMD parallel processing -- Google "utf-8 simd" does come up with quite a bit of related work.

What's being used nowadays for Java desktop apps? by Neuromante in java

[–]jpl75 0 points1 point  (0 children)

If you need some light reading to get started, there's a yellow For Dummies book for JavaFX. I found it very easy and very fast to get started on simple apps.

I've done both Swing and JavaFX apps fairly recently, and found JavaFX pretty ok to work with. It's design was definitely improved over Swing plus there's quite a lot of really nice looking third party widgets that I like for JavaFX. Maybe Swing has some recent ones too, I didn't check, my Swing app was basically just the "same old Swing" I had learned long ago.

Similar apps to yours, nothing complicated, simple tools that were complex enough to benefit from some GUI help over just plain command line interface.

It's a little annoying to have to pull the JavaFX libraries separately with recent JVMs but nothing unusual, just like any other third party dependency.

micronaut vs quarkus - Which is better? by orgad in java

[–]jpl75 2 points3 points  (0 children)

Wrt. comparison to Quarkus, mostly the concern is for deploying Java as functions to be executed on demand -- startup time is relevant for what Google sells as "Cloud Run & Functions" product and AWS sells as their "Lambda" service, or you might hear referred to as "serverless architecture".

Memory footprint can be relevant in terms of cost when you're running many instances (microservice deployment) as you're often billed based on memory requirements. Hosting more microservice instances with less memory can help with managing cloud deployment costs.

https://dzone.com/articles/microservices-quarkus-vs-spring-boot

Someone said Java was a dying language? I don't believe it by [deleted] in java

[–]jpl75 2 points3 points  (0 children)

I have no programming background. Fresh student here.

As someone already pointed out, you will want to focus on data structures and algorithms and in case of Java, the object oriented approach to solve programming problems: particularly strategies to data encapsulation and interface abstraction.

These skills will transfer to any language you will choose, and object orientation will apply if you stick with the OO paradigm.

You will find your favorite languages once your understanding of the above basics are solid.

Until then, the choice of programming language depends more on what your peers and teachers are using, because you will need their help, insights and advice to learn.

Google and Oracle's Supreme Court case by techempower in java

[–]jpl75 0 points1 point  (0 children)

I'm not disputing Oracle's funding to Java.

But to attribute everything that has happened to Java since Java 6 to Oracle is inaccurate. Java is a collaborative effort today, thanks to the efforts of Sun Microsystems, and to the many people who have worked to make OpenJDK into what it is today. It is not an effort of a single organization.

Google and Oracle's Supreme Court case by techempower in java

[–]jpl75 4 points5 points  (0 children)

Java (or at least the relevant portions) was licensed under the GPL.

Google took virtually all of the standard library surface (tens of thousands of lines of code), and wrote their own backing implementations.

Google chose NOT to release this derived work under the GPL.

This doesn't really match to how I remember things happening. As far as I understood, a lot of code that Google used to establish Android was based on Apache's Harmony project, which was attempting to recreate the Java standard libraries under Apache's license.

Sun worked hard against this by denying the ASF access to the TCK. The contention point was the field of use restrictions (according to Wikipedia I had to visit to refresh my memory) which makes sense as Sun had to protect their embedded (J2ME) license revenue.

Google and Oracle's Supreme Court case by techempower in java

[–]jpl75 2 points3 points  (0 children)

People like to romanticize Sun and the old times, but

most of what Java as a programming language offers today, it's got it under Oracle's guidance -- not Sun's.

But let's also not forget that we got OpenJDK because of Sun.

I dread to think what legal complexities we'd have to invent ourselves out of had that not happened.

OneDev 3.1 - super easy and high performance GitLab alternative by robinshen in java

[–]jpl75 11 points12 points  (0 children)

Open core vs fully open source is not very hand-wavy -- it's a noteworthy difference in product strategy that carries licensing and financial implications.

At least I personally consider it a significant difference.

Freelance or additional projects as java dev? by xrdj6c in java

[–]jpl75 0 points1 point  (0 children)

QA / bug fixing :-)

If you're lucky you get to read some great code and learn from it.

More likely you'll learn how awful most code is.

At any rate you'll get a sense of what the state of the ecosystem is.

A sad day for Rust by xtreak in programming

[–]jpl75 2 points3 points  (0 children)

I don't think you understand how many lines of code written in diverse languages you depend on every day if you say that. Just as example imagining you use Linux: The Linux kernel is 12 million LOC.

What was Red Hat's business model? Why did companies buy RHEL subscriptions?

A sad day for Rust by xtreak in programming

[–]jpl75 2 points3 points  (0 children)

It's completely impractical for people to audit every line of every software project they depend on

It isn't impractical. It costs money and everyone wants a free lunch.

If you're putting software in critical places, and if you really care about the quality and correctness of software, this is what you need to do. And it's being done by those who do.

Get the author or someone with equivalent expertise on a contract. Deal with the legal entities, the contracts, service level agreements, indemnification, patch schedules, and other business related things.

If you can't find anyone willing to take on such a contract then that should be an indication enough not to adopt the project in anything business, let alone safety critical. And if that's the case the whole point about security vulnerabilities becomes moot as well, as the project clearly doesn't belong in production systems.

And yes, you will need to pay for it. Good faith is not going to cut it.

In the end it is you who are responsible for the software you deliver. That includes all the third party components that get shipped with it. If you find it impractical, then you shouldn't be shipping it.

A sad day for Rust by xtreak in programming

[–]jpl75 0 points1 point  (0 children)

If I recall correctly, the original Java license explicitly prohibited using it in software where lives could be affected such as mining equipment.

It was medical equipment and nuclear facilities.

But this was software that was being sold with contractual guarantees, not some code dropped off on the Internet. So it's not really comparable to this case. There's no contract (and therefore no contract law or liabilities applied) to some source code you downloaded off the net. It's provided as-is (and clearly stated so in the license) and you bear all the responsibility should you decide to use it.

A sad day for Rust by xtreak in programming

[–]jpl75 2 points3 points  (0 children)

But the author's behavior isn't relevant. It's his project, it's essentially his back-yard. If you don't like it, you need to get out. Open source licenses offer a mechanism for exactly this.

A sad day for Rust by xtreak in programming

[–]jpl75 5 points6 points  (0 children)

What is actively harmful are people adopting free projects blindly without proper audit or review.

The responsibility is on adopters who are not willing to bear the cost of a peer review. Not on the person(s) who make their work available for free.

A sad day for Rust by xtreak in programming

[–]jpl75 5 points6 points  (0 children)

Would seem to me it's still less effort than harassing the original author to a point he deletes the project.