Code Monkey home page Code Monkey logo

josi's Introduction

the history of the entire me, i guess

  1. ๐ŸŽฎ Started programming in 2017 by making small games using Processing and in particular this tutorial
    • Later made some games with pure Java+Swing and also Unity
  2. ๐Ÿ–ฅ Started developing applications with JavaFX (there was a barely functional video editor, for example)
  3. ๐Ÿ Created small scripts and desktop applications for individual clients using mostly Python and Java
  4. ๐ŸŒ Got into web development with NodeJS, TypeScript and React
  5. ๐Ÿ‘จโ€๐ŸŽ“ Now a CS student at TU Dortmund and member of the student council, as well as a freelance web developer

Currently only contributing small things here and there to the things I use. Still, maybe someday I'll start doing more open source.

<3

  • TypeScript
  • DrizzleORM
  • SvelteKit
  • Hetzner
  • LuciaAuth
  • DaisyUI

josi's People

Contributors

aghasemi avatar cegredev avatar dbwiddis avatar rohannagar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

josi's Issues

Is (version) or greater helper methods

Feature request: a common version use case is determining a minimum and/or maximum range of versions. It would be useful for you to add a few helper methods that do not require an explicit list.

For example, you currently have public boolean is(OS... operatingSystems). I'd suggest adding public boolean isAtLeast(OS operatingSystem).

Support Windows Server versions

The current implementation only includes "NT Workstation" (e.g., personal) versions and doesn't work for Windows Server versions. See JDK Source for a list of possible values for the os.name property.

There are a few tricky points to consider here:

  • Some server versions are the same as the corresponding workstation version and for the purpose of matching versions, should match. For example, Vista and Server 2008 have the same feature set, so could possibly share the same enum value.
  • But sharing the enum may not work for Server 2016 vs. Server 2019 where there's a distinction based on the build number
  • If we do have separate enums for server version that introduces a question on how to handle the isAtLeast() checks based on enum ordering; indicating perhaps we should be keeping major/minor available for this check. But that's hard without exposing it to the API.
  • Taking a look at the official Windows API for comparing versions, however, they don't handle the servers separately, they stick with essentially the same enum list you have, suggesting that for isAtLeast() the existing enum ordering is sufficient and we should just add the server versions as equivalent case staements, e.g., map "server 2008" to "vista" and so on, and consider Server 2016 and Server 2019 equivalent.

Unix is not Linux

See the backronym for GNU.

Interestingly, Current OpenJDK versions only include os.name for AIX in the Unix category, having dropped support for Solaris; but it's definitely distinct from Linux. Looking in the history, they did previously include Solaris and AIX as distinct OS Types from Linux.

There should either be a separate Family for UNIX under which Solaris should fall, as well as AIX, and any other Unix flavors you want to support, or if you only want to support AIX and Solaris (matching pre-2020 OpenJDK with Solaris support) then you should add a separate family for AIX.

Should you choose to group UNIX separately, you might include the following values from os.name in older closed-source JDK versions, or versions ported to the respective OS's: FreeBSD, NetBSD, OpenBSD, DragonflyBSD, HP-UX, AIX, Solaris (also SunOS).

I'm sure the z/OS people want support too but I can't find it definitively.

Setup GitHub Actions to handle testing PRs and conducting snapshot deployments

Checking whether PRs break tests is currently done manually. GitHub Actions are easy to set up, very capable, and helpful to automate testing and other things. You could easily:

  • Run unit tests on every push to a PR or merge to the main branch (and test across multiple JDK versions)
  • Deploy SNAPSHOT versions on every merge to the main branch
  • Send your code to static analysis tools like Coverity and Sonarcloud

Happy to submit a PR to get you started on this if you'd like.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.