Giter VIP home page Giter VIP logo

jollyday's People

Contributors

cschneider avatar cwguenther avatar dependabot[bot] avatar dertobsch avatar dusiema avatar fanste avatar fkleon avatar focbenz avatar gebeater avatar github-actions[bot] avatar ivani3 avatar kattisa avatar malex211 avatar mfedkowicz avatar mliberato avatar netskeh avatar oleksandrshkurat avatar opensource21 avatar peffenberger avatar philipp-borchert-ish avatar raider2000 avatar rototor avatar samymohammed avatar sjmisterm avatar svendiedrichsen avatar thegreski avatar thomass4t avatar tr1ple-f avatar wborn avatar xspielinbox 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  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  avatar

jollyday's Issues

denmark: Christmas naming wrong

Names of the holidays on December 25 and 26 are incorrect. I would argue that the English Wikipedia also has the incorrect names. In Danish they are litterally called first and second christmas day (perhaps with the first it is often just called christmas day). I can see that there is a first and second Christmas day name

holiday.description.FIRST_CHRISTMAS_DAY = 1st Christmas day
holiday.description.SECOND_CHRISTMAS_DAY = 2nd Christmas day

refs #191

Java 8 compatibility?

Is it possible to get Java 8 compatibility for this module? It would be useful to have a dropin replacement for the old Jollyday, which doesn't support Java 17 but does support Java 8.

Stanford CoreNLP uses Jollyday to detect holidays, but it apparently does not support Java 17:

svendiedrichsen/jollyday#163

and some of our users are running into that issue:

stanfordnlp/CoreNLP#1328

GAV

We need a new gav.

ClassNotFoundException WindowsAnsiOutputStream

Describe the bug
When compiling the release 0.7.1 with Java 17, the test run causes an exception:

19:40:52,428 |-INFO in ch.qos.logback.core.ConsoleAppender[console] - Enabling JANSI WindowsAnsiOutputStream for the console.
19:40:52,429 |-WARN in ch.qos.logback.core.ConsoleAppender[console] - Failed to create WindowsAnsiOutputStream. Falling back on the default stream. ch.qos.logback.core.util.DynamicClassLoadingException: Failed to instantiate type org.fusesource.jansi.WindowsAnsiOutputStream
        at ch.qos.logback.core.util.DynamicClassLoadingException: Failed to instantiate type org.fusesource.jansi.WindowsAnsiOutputStream
        at      at ch.qos.logback.core.util.OptionHelper.instantiateByClassNameAndParameter(OptionHelper.java:68)
        at      at ch.qos.logback.core.util.OptionHelper.instantiateByClassNameAndParameter(OptionHelper.java:39)
        at      at ch.qos.logback.core.ConsoleAppender.getTargetStreamForWindows(ConsoleAppender.java:88)
        at      at ch.qos.logback.core.ConsoleAppender.start(ConsoleAppender.java:79)
        at      at ch.qos.logback.core.joran.action.AppenderAction.end(AppenderAction.java:90)
        at      at ch.qos.logback.core.joran.spi.Interpreter.callEndAction(Interpreter.java:309)
        at      at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:193)
        at      at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:179)
        at      at ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:62)
        at      at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:165)
        at      at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:152)
        at      at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:110)
        at      at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:53)
        at      at ch.qos.logback.classic.util.ContextInitializer.configureByResource(ContextInitializer.java:64)
        at      at ch.qos.logback.classic.util.ContextInitializer.autoConfig(ContextInitializer.java:134)
        at      at org.slf4j.impl.StaticLoggerBinder.init(StaticLoggerBinder.java:84)
        at      at org.slf4j.impl.StaticLoggerBinder.<clinit>(StaticLoggerBinder.java:55)
        at      at org.slf4j.LoggerFactory.bind(LoggerFactory.java:150)
        at      at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:124)
        at      at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:417)
        at      at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:362)
        at      at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:388)
        at      at de.focus_shift.configuration.ConfigurationProviderManager.<clinit>(ConfigurationProviderManager.java:19)
        at      at de.focus_shift.configuration.ConfigurationProviderManagerTest.<init>(ConfigurationProviderManagerTest.java:24)
        at      at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at      at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
        at      at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at      at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
        at      at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
        at      at org.junit.platform.commons.util.ReflectionUtils.newInstance(ReflectionUtils.java:550)
        at      at org.junit.jupiter.engine.execution.ConstructorInvocation.proceed(ConstructorInvocation.java:56)
        at      at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
        at      at org.junit.jupiter.api.extension.InvocationInterceptor.interceptTestClassConstructor(InvocationInterceptor.java:73)
        at      at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105)
        at      at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
        at      at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
        at      at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
        at      at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
        at      at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104)
        at      at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:77)
        at      at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestClassConstructor(ClassBasedTestDescriptor.java:355)
        at      at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateTestClass(ClassBasedTestDescriptor.java:302)
        at      at org.junit.jupiter.engine.descriptor.ClassTestDescriptor.instantiateTestClass(ClassTestDescriptor.java:79)
        at      at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:280)
        at      at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4(ClassBasedTestDescriptor.java:272)
        at      at java.base/java.util.Optional.orElseGet(Optional.java:364)
        at      at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5(ClassBasedTestDescriptor.java:271)
        at      at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:31)
        at      at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:102)
        at      at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
        at      at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:101)
        at      at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:66)
        at      at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$2(NodeTestTask.java:123)
        at      at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
        at      at org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:123)
        at      at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:90)
        at      at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
        at      at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
        at      at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
        at      at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
        at      at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
        at      at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
        at      at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
        at      at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
        at      at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
        at      at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
        at      at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
        at      at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
        at      at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
        at      at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
        at      at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
        at      at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
        at      at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
        at      at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
        at      at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
        at      at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
        at      at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
        at      at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
        at      at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
        at      at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:220)
        at      at org.junit.platform.launcher.core.DefaultLauncher.lambda$execute$6(DefaultLauncher.java:188)
        at      at org.junit.platform.launcher.core.DefaultLauncher.withInterceptedStreams(DefaultLauncher.java:202)
        at      at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:181)
        at      at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:128)
        at      at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:150)
        at      at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:124)
        at      at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:384)
        at      at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:345)
        at      at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:126)
        at      at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:418)
Caused by: java.lang.ClassNotFoundException: org.fusesource.jansi.WindowsAnsiOutputStream
        at      at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
        at      at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
        at      at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
        at      at ch.qos.logback.core.util.OptionHelper.instantiateByClassNameAndParameter(OptionHelper.java:55)
        at      ... 89 common frames omitted

To Reproduce
Steps to reproduce the behavior:

  1. Download current release 0.7.1
  2. compile with Java 17 as described in the documentation

Expected behavior
Class should not be missing and test run should succeed without errors

Desktop (please complete the following information):

  • OS: Win10
  • Java 17 Coretto

Additional context
Maybe a dependency is missing, e.g.

<dependency>
  <groupId>org.fusesource.jansi</groupId>
  <artifactId>jansi</artifactId>
  <version>2.4.0</version>
</dependency>

Remove deprecated code

We will change a lot at the actual code, like the gav and package names etc. So we will also remove all deprecated code.

Examples in documentation outdated

All the examples in README.md contain this line:

final HolidayManager holidayManager = HolidayManager.getInstance(HolidayCalendar.GERMANY);

However, the method with the matching signature was deprecated for some time and eventually got removed in commit 6dcddf0.

Add Jackson to parse holiday XML files

At the moment we provide jaxb as parsing library to read the holidays from the XML files. We also want to provide Jackson as library to parse the XML files and hydrate them into the java object.

We focus on the Jackson version that will be used with spring boot 3.2.x. So that there are no conflicts with the dependency

Parser cache does not work

With the new version of jollyday the parsers are stored in a cache with their holidays. So new holidays will not be processed. Of course this is not the way we want it. So I disabled the parser cache atm.

We need to find a good solution and also readd the tests for the parsers.

Introduce Property-Based-Testing (PBT)

It is at the moment very hard to test that a public holiday is properly configured in the xml files, because we need to test "every year". With PBT we can write tests that will test with a subset of years that a public holiday is correctly configured over the years.

We want to take a look at jqwik

Missing days for german federals

Describe the bug
Looks like jollyday ignores the federals in germany.

To Reproduce
Using the following example code:

package org.example;

import de.focus_shift.Holiday;
import de.focus_shift.HolidayManager;
import java.time.LocalDate;
import java.util.Set;

public class Main
{
    public static void main(String[] args)
    {
        HolidayManager holidayManager = HolidayManager.getInstance();
        Set<Holiday> days = holidayManager.getHolidays(
                LocalDate.of(2023,1,1),
                LocalDate.of(2023,12,30),
                "de", "bw"
        );

        System.out.println("\n" + days.size() + " of 12 days found:");

        for( Holiday tag: days )
        {
            System.out.println( tag.toString() );
        }

        // Fixed: 6th of january
        System.out.println( "Heilige drei Könige: " +
                holidayManager.isHoliday(LocalDate.of(2023, 1, 6), "de", "bw") );

        // Moving: 60 days after Christ's resurrection day
        System.out.println( "Fronleichnam: " +
                holidayManager.isHoliday(LocalDate.of(2023, 6, 8), "de", "bw") );
    }
}

pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>test_jollyday</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>19</maven.compiler.source>
        <maven.compiler.target>19</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>de.focus-shift</groupId>
            <artifactId>jollyday-jaxb</artifactId>
            <version>0.16.0</version>
        </dependency>
    </dependencies>

</project>

yields:

9 of 12 days found:
2023-05-01 (Tag der Arbeit)
2023-04-10 (Ostermontag)
2023-04-07 (Karfreitag)
2023-01-01 (Neujahr)
2023-05-18 (Christi Himmelfahrt)
2023-05-29 (Pfingstmontag)
2023-10-03 (Tag der Deutschen Einheit)
2023-12-25 (1. Weihnachtsfeiertag)
2023-12-26 (2. Weihnachtsfeiertag)
Heilige drei Könige: false
Fronleichnam: false

while these days are defined in the xml (Holidays_de.xml:52):

  <tns:SubConfigurations hierarchy="bw" description="Baden-Württemberg">
    <tns:Holidays>
      <tns:Fixed month="JANUARY" day="6" descriptionPropertiesKey="EPIPHANY"/>
      <tns:Fixed month="NOVEMBER" day="1" descriptionPropertiesKey="ALL_SAINTS"/>

      <tns:RelativeToFixed validFrom="1945" validTo="1989" descriptionPropertiesKey="REPENTANCE_PRAYER">
        <tns:Weekday>WEDNESDAY</tns:Weekday>
        <tns:When>BEFORE</tns:When>
        <tns:Date month="NOVEMBER" day="23"/>
      </tns:RelativeToFixed>

      <tns:ChristianHoliday type="CORPUS_CHRISTI" descriptionPropertiesKey="christian.CORPUS_CHRISTI"/>
    </tns:Holidays>
  </tns:SubConfigurations>

Desktop (please complete the following information):

  • OS: Windows 10
  • Java: temurin-19.0.2
  • jollyday: 0.16.0 installed via maven

ANSI Encoding with Umlauts leads to compile errors and javadoc errors

Describe the bug
When compiling with Java 17 I get errors due to encoding issues, e.g.:

[INFO] --- maven-compiler-plugin:3.10.1:compile (default-compile) @ jollyday-jaxb ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 44 source files to E:\EBS\jollyday-0.7.1\jollyday-jaxb\target\classes
[ERROR] /E:/EBS/jollyday-0.7.1/jollyday-jaxb/target/generated-sources/jaxb/de/focus_shift/jaxb/mapping/HolidayType.java:[4,4] unmappable character (0xC4) for encoding UTF-8
[ERROR] /E:/EBS/jollyday-0.7.1/jollyday-jaxb/target/generated-sources/jaxb/de/focus_shift/jaxb/mapping/HolidayType.java:[16,20] unmappable character (0xFC) for encoding UTF-8

The problems are the used Umlauts within the Java files.

To Reproduce
Steps to reproduce the behavior:

  1. Download current release 0.7.1
  2. Compile with Java 17 using the documented command

Expected behavior
Compile shouldn't fail.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: Win19
  • Java 17 Coretto

Additional context
Similar problems occur when generating the javadocs. The Umlauts also causes errors.
Maybe converting everything to UTF-8 would be a good solution for the future or omit special characters.

Modularization

We start with the modules

  • core
  • jaxb
  • and maybe jackson

Use slf4j as logging abstraction

At the moment java.util.logging.* is used for logging. We want to provide a facade with slf4j to abstract the implementation from the api. Therefore we will add slf4j and logback as implementation for logging on tests.

java.lang.IllegalStateException: Cannot instantiate datasource instance of de.focus_shift.jaxb.JaxbConfigurationService

Dear Jollyday development team,

when running the following test in JUnit 5

import de.focus_shift.Holiday;
import de.focus_shift.HolidayManager;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.junit.jupiter.MockitoExtension;

import java.util.Set;

@ExtendWith(MockitoExtension.class)
public class JollydayTests
{
    @Test
    void printHollydaysForOneYearGermany()
    {
        final HolidayManager holidayManager = HolidayManager.getInstance();
    }
}

I run into the following error:

java.lang.IllegalStateException: Cannot instantiate datasource instance of de.focus_shift.jaxb.JaxbConfigurationService.

What is the reason for this error and how can this error be fixed? In my pom.xml I have imported jollyday-core (0.14.0) and jollyday-jaxb (0.14.0):

<dependency>
    <groupId>de.focus-shift</groupId>
    <artifactId>jollyday-core</artifactId>
    <version>0.14.0</version>
</dependency>
<dependency>
    <groupId>de.focus-shift</groupId>
    <artifactId>jollyday-jaxb</artifactId>
    <version>0.14.0</version>
</dependency>

My Java version is 19.0.2 and my Maven version is 3.9.0

denmark: General prayer day only until 2023

Describe the bug
The Holidays for Denmark are wrong: https://github.com/focus-shift/jollyday/blob/6d5b20dd13c32fae484f5251606baea3afc9b1a9/jollyday-core/src/main/resources/holidays/Holidays_dk.xml in version 0.12.0.

Christmas is described as December 25, but it is actually December 24. December 25 is Christmas Day, and December 26 is 2. Christmas day.

Also of note is that Great Prayer Day has been removed effective 2024: https://en.wikipedia.org/wiki/Store_Bededag

Please see:
https://www.visitaarhus.dk/aarhusregionen/planlaeg-din-tur/helligdage-i-danmark-gdk1101954
https://da.wikipedia.org/wiki/Danske_helligdage

To Reproduce
Steps to reproduce the behavior:

HolidayManager holidayManager = HolidayManager.getInstance(ManagerParameters.create(HolidayCalendar.DENMARK));
holidayManager.getHolidays(2023, "dk");

Expected behavior
The holidays should be correct

com.sun.xml.bind dependency clashes with Spring Boot 3.0.1's org.glassfish.jaxb:jaxb-runtime:4.0.1

There have been some changes in the latest release that include org.glassfish.jaxb:jaxb-runtime; the dependencies of the jollyday jaxb version however include com.sun.xml.bind which breaks the gradle build with

Entry BOOT-INF/lib/jaxb-core-4.0.1.jar is a duplicate but no duplicate handling strategy has been set. Please refer to https://docs.gradle.org/7.6/dsl/org.gradle.api.tasks.Copy.html#org.gradle.api.tasks.Copy:duplicatesStrategy for details.

Fixed it with the following gradle dependency:

implementation("de.focus-shift:jollyday-jaxb:0.11.0") {
    exclude("com.sun.xml.bind", "jaxb-impl")
}

Improve portuguese public holidays

We want to check if the Portuguese public holidays are up to date.

The Portuguese public holidays has a very special case, every city has their own public holiday, "city day", and these are not completely configured.

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.