GithubHelp home page GithubHelp logo

Comments (27)

ak2766 avatar ak2766 commented on July 20, 2024

Could it be that I've installed the wrong version of WebSphere Liberty profile? The screenshot below highlights the version I've got installed:

Installed WebSphere Liberty profile

Selection_00372

I'm going to try the latest one and see if that makes a difference.

from bluebox.

ak2766 avatar ak2766 commented on July 20, 2024

OK - I tried Liberty profile 9.1 but couldn't even get bluebox to start - too many one thing incompatible with another.

I think I'll go look for another promiscuous smtp server. if I can't find another option, I'll most likely give this another try.

Hopefully the tool author - @stephen-kruger - will have responded by then.

from bluebox.

stephen-kruger avatar stephen-kruger commented on July 20, 2024

from bluebox.

ak2766 avatar ak2766 commented on July 20, 2024

Oh wow - thanks for responding, @stephen-kruger.

Sounds like you have a ssl config problem. Might be JDK related.

Yes, I felt I was at the precipice of success but I'm not one familiar with Java so was walking around blindly, aimlessly. Let me know if there's anything you'd like me to try. I'm not one to shy from experimentation.

from bluebox.

stephen-kruger avatar stephen-kruger commented on July 20, 2024

Can you try the latest 4.7.0 release and see if it works?
Please follow the instructions in the README, and use the right server.xml etc

from bluebox.

ak2766 avatar ak2766 commented on July 20, 2024

On it.

UPDATE:
I've started afresh by deleting the entire /opt/wlp directory and unzipped the WebSphere Liberty Profile 8 21.0.0.12. However, when I visit the url hxxp://1.2.3.4:8080 I'm getting the Welcome to Liberty screen instead of the Bluebox interface like I had with v4.6.1.

In addition, where the README.md file calls for editing [wlp dir]/usr/server/defaultServer/bluebox.properties, a search in the entire [wlp dir] directory did not reveal a a file that contains bluebox_port. This file existed while I was using v4.6.1.

I searched using the command:
find . -type f -name "*.properties" -exec egrep -il 'bluebox_port=' {} \;

I'm going to try WebSphere Liberty Profile 9.1 21.0.0.12 while I await your response.

Thanks again for taking time to address the issue.

from bluebox.

ak2766 avatar ak2766 commented on July 20, 2024

Oh oh - disregard the above. Just realized I copied the war file to the wrong directory. Retrying...

from bluebox.

ak2766 avatar ak2766 commented on July 20, 2024

OK - everything now according to the book. However, I get the following error:

# tail -F usr/servers/bluebox/logs/console.log 
WARNING: Illegal reflective access by org.apache.aries.jndi.startup.Activator (file:/opt/wlp/lib/com.ibm.ws.org.apache.aries.jndi.core_1.1.59.jar) to field javax.naming.spi.NamingManager.initctx_factory_builder
WARNING: Please consider reporting this to the maintainers of org.apache.aries.jndi.startup.Activator
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
[AUDIT   ] CWPKI0820A: The default keystore has been created using the 'keystore_password' environment variable.
[AUDIT   ] CWWKS4104A: LTPA keys created in 0.570 seconds. LTPA key file: /opt/wlp/usr/servers/bluebox/resources/security/ltpa.keys
[AUDIT   ] CWPKI0803A: SSL certificate created in 2.086 seconds. SSL key file: /opt/wlp/usr/servers/bluebox/resources/security/key.p12
[ERROR   ] CWWKZ0002E: An exception occurred while starting the application bluebox. The exception message was: java.lang.UnsupportedClassVersionError: com/bluebox/rest/RestApi has been compiled by a more recent version of the Java Runtime (class file version 60.0), this version of the Java Runtime only recognizes class file versions up to 55.0
[AUDIT   ] CWWKF0012I: The server installed the following features: [appSecurity-2.0, beanValidation-1.1, cdi-1.2, distributedMap-1.0, ejbLite-3.2, el-3.0, jaxrs-2.0, jaxrsClient-2.0, jdbc-4.1, jndi-1.0, jpa-2.1, jpaContainer-2.1, jsf-2.2, json-1.0, jsonp-1.0, jsp-2.3, managedBeans-1.0, servlet-3.1, ssl-1.0, webProfile-7.0, websocket-1.1].
[AUDIT   ] CWWKF0011I: The bluebox server is ready to run a smarter planet. The bluebox server started in 13.244 seconds.

I installed JAVA on ubuntu 20.04 using the command apt install default-jre which installed the following version:

# java --version
openjdk 11.0.11 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.20.04)
OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.20.04, mixed mode, sharing)

Judging by the error in the logs, it looks like I need to install an older version of java. Let me know which version I'll need to install.

EDIT:
Reading around shows I need Java 16. Let me deploy that and see...

from bluebox.

ak2766 avatar ak2766 commented on July 20, 2024

Installed Oracle Java 16 and I can now get to the Bluebox interface on the browser and the SMTP server is running. However, in the logs I saw some errors. Not sure what implications that will have later on:

# tail -F usr/servers/bluebox/logs/console.log 
[AUDIT   ] CWPKI0820A: The default keystore has been created using the 'keystore_password' environment variable.
[AUDIT   ] CWWKT0016I: Web application available (default_host): http://promisc-smtp.lxd:8080/
[AUDIT   ] CWWKZ0001I: Application bluebox started in 8.803 seconds.
[err] SLF4J: Class path contains multiple SLF4J bindings.
[err] SLF4J: Found binding in [wsjar:file:/opt/wlp/usr/servers/bluebox/apps/expanded/bluebox.war/WEB-INF/lib/log4j-slf4j-impl-2.14.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
[err] SLF4J: Found binding in [wsjar:file:/opt/wlp/usr/servers/bluebox/apps/expanded/bluebox.war/WEB-INF/lib/slf4j-simple-1.7.31.jar!/org/slf4j/impl/StaticLoggerBinder.class]
[err] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
[err] SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
[AUDIT   ] CWWKF0012I: The server installed the following features: [appSecurity-2.0, beanValidation-1.1, cdi-1.2, distributedMap-1.0, ejbLite-3.2, el-3.0, jaxrs-2.0, jaxrsClient-2.0, jdbc-4.1, jndi-1.0, jpa-2.1, jpaContainer-2.1, jsf-2.2, json-1.0, jsonp-1.0, jsp-2.3, managedBeans-1.0, servlet-3.1, ssl-1.0, webProfile-7.0, websocket-1.1].
[AUDIT   ] CWWKF0011I: The bluebox server is ready to run a smarter planet. The bluebox server started in 12.733 seconds.

Off to test...

from bluebox.

ak2766 avatar ak2766 commented on July 20, 2024

Testing not successful. I'm using the following command to test:

echo "Testing promiscuous email..." | mail -s "Testing Promiscuous SMTP server @ $(date)" [email protected]
console log error when I send an email
13:33:55.852 [org.subethamail.smtp.server.Session-/10.0.0.13:48580] ERROR org.subethamail.smtp.server.Session - Unexpected error in the SMTP handler thread
java.lang.NoSuchMethodError: 'void com.sun.mail.util.LineInputStream.<init>(java.io.InputStream, boolean)'
        at javax.mail.internet.InternetHeaders.load(InternetHeaders.java:422) ~[javax.mail-api-1.6.2.jar:1.6.2]
        at javax.mail.internet.InternetHeaders.<init>(InternetHeaders.java:380) ~[javax.mail-api-1.6.2.jar:1.6.2]
        at javax.mail.internet.MimeMessage.createInternetHeaders(MimeMessage.java:2304) ~[javax.mail-api-1.6.2.jar:1.6.2]
        at javax.mail.internet.MimeMessage.parse(MimeMessage.java:353) ~[javax.mail-api-1.6.2.jar:1.6.2]
        at javax.mail.internet.MimeMessage.<init>(MimeMessage.java:223) ~[javax.mail-api-1.6.2.jar:1.6.2]
        at com.bluebox.Utils.loadEML(Utils.java:129) ~[classes/:?]
        at com.bluebox.smtp.storage.mongodb.MongoImpl.getSpooledStream(MongoImpl.java:572) ~[classes/:?]
        at com.bluebox.smtp.Inbox.deliver(Inbox.java:720) ~[classes/:?]
        at org.subethamail.smtp.helper.SimpleMessageListenerAdapter$Handler.data(SimpleMessageListenerAdapter.java:142) ~[subethasmtp-3.1.7.jar:June 16 2012]
        at org.subethamail.smtp.command.DataCommand.execute(DataCommand.java:64) ~[subethasmtp-3.1.7.jar:June 16 2012]
        at org.subethamail.smtp.server.RequireTLSCommandWrapper.execute(RequireTLSCommandWrapper.java:30) ~[subethasmtp-3.1.7.jar:June 16 2012]
        at org.subethamail.smtp.server.CommandHandler.handleCommand(CommandHandler.java:99) ~[subethasmtp-3.1.7.jar:June 16 2012]
        at org.subethamail.smtp.server.Session.runCommandLoop(Session.java:244) ~[subethasmtp-3.1.7.jar:June 16 2012]
        at org.subethamail.smtp.server.Session.run(Session.java:145) [subethasmtp-3.1.7.jar:June 16 2012]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?]
        at java.lang.Thread.run(Thread.java:833) [?:?]
[err] Exception in thread "pool-3-thread-4" 
[err] java.lang.NoSuchMethodError: 'void com.sun.mail.util.LineInputStream.<init>(java.io.InputStream, boolean)'
[err]   at javax.mail.internet.InternetHeaders.load(InternetHeaders.java:422)
[err]   at javax.mail.internet.InternetHeaders.<init>(InternetHeaders.java:380)
[err]   at javax.mail.internet.MimeMessage.createInternetHeaders(MimeMessage.java:2304)
[err]   at javax.mail.internet.MimeMessage.parse(MimeMessage.java:353)
[err]   at javax.mail.internet.MimeMessage.<init>(MimeMessage.java:223)
[err]   at com.bluebox.Utils.loadEML(Utils.java:129)
[err]   at com.bluebox.smtp.storage.mongodb.MongoImpl.getSpooledStream(MongoImpl.java:572)
[err]   at com.bluebox.smtp.Inbox.deliver(Inbox.java:720)
[err]   at org.subethamail.smtp.helper.SimpleMessageListenerAdapter$Handler.data(SimpleMessageListenerAdapter.java:142)
[err]   at org.subethamail.smtp.command.DataCommand.execute(DataCommand.java:64)
[err]   at org.subethamail.smtp.server.RequireTLSCommandWrapper.execute(RequireTLSCommandWrapper.java:30)
[err]   at org.subethamail.smtp.server.CommandHandler.handleCommand(CommandHandler.java:99)
[err]   at org.subethamail.smtp.server.Session.runCommandLoop(Session.java:244)
[err]   at org.subethamail.smtp.server.Session.run(Session.java:145)
[err]   at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[err]   at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[err]   at java.base/java.lang.Thread.run(Thread.java:833)

Any suggestions welcome.

In the meantime, I'm going to try WebSphere Liberty Profile 9.1.

from bluebox.

stephen-kruger avatar stephen-kruger commented on July 20, 2024

Your jvvm is older than mine (I'm using OpenJDK Runtime Environment Homebrew (build 17.0.1+1))
But it should work, I made a new release targetting 1.8
Can you download the new war and try agin please?

from bluebox.

ak2766 avatar ak2766 commented on July 20, 2024

Wow - quick response. On it...

But before I go, I did update to Java 17:

# java --version
java 17.0.1 2021-10-19 LTS
Java(TM) SE Runtime Environment (build 17.0.1+12-LTS-39)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.1+12-LTS-39, mixed mode, sharing)

The logs above are from this new Java version.

from bluebox.

ak2766 avatar ak2766 commented on July 20, 2024

One quick question - exactly how do I perform an upgrade? Is it just as simple as copying the bluebox.war file to the bluebox/apps directory and then stopping and starting the server?

from bluebox.

ak2766 avatar ak2766 commented on July 20, 2024

OK - it looks like my upgrade assumption is correct.

However, even with this new version, I'm still getting that error to do with:

13:49:03.234 [org.subethamail.smtp.server.Session-/10.0.0.13:48588] ERROR org.subethamail.smtp.server.Session - Unexpected error in the SMTP handler thread
java.lang.NoSuchMethodError: 'void com.sun.mail.util.LineInputStream.<init>(java.io.InputStream, boolean)'

from bluebox.

stephen-kruger avatar stephen-kruger commented on July 20, 2024

Downgraded a few jars to try match your ancient JVM.
Grab the new war and try again.
If it doesn't work can you upgrade your JVM to. something more recent?

from bluebox.

ak2766 avatar ak2766 commented on July 20, 2024

@stephen-kruger - I have upgraded to the latest Oracle Java 17 already! Maybe all my messages aren't getting through?

# java --version
java 17.0.1 2021-10-19 LTS
Java(TM) SE Runtime Environment (build 17.0.1+12-LTS-39)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.1+12-LTS-39, mixed mode, sharing)

Is a release from 2021-10-19 too ancient already?

from bluebox.

stephen-kruger avatar stephen-kruger commented on July 20, 2024

Did you try the new war too?

from bluebox.

ak2766 avatar ak2766 commented on July 20, 2024

Yep - just tried the latest one:

# md5sum usr/servers/bluebox/apps/bluebox.war 
7fc7f6c02a85a0474ce7592893ac3eb6  usr/servers/bluebox/apps/bluebox.war
console log
14:18:41.018 [org.subethamail.smtp.server.Session-/10.0.0.13:48602] ERROR org.subethamail.smtp.server.Session - Unexpected error in the SMTP handler thread
java.lang.NoClassDefFoundError: Could not initialize class javax.mail.internet.MimeMessage
        at com.bluebox.Utils.loadEML(Utils.java:129) ~[classes/:?]
        at com.bluebox.smtp.storage.mongodb.MongoImpl.getSpooledStream(MongoImpl.java:572) ~[classes/:?]
        at com.bluebox.smtp.Inbox.deliver(Inbox.java:720) ~[classes/:?]
        at org.subethamail.smtp.helper.SimpleMessageListenerAdapter$Handler.data(SimpleMessageListenerAdapter.java:142) ~[subethasmtp-3.1.7.jar:June 16 2012]
        at org.subethamail.smtp.command.DataCommand.execute(DataCommand.java:64) ~[subethasmtp-3.1.7.jar:June 16 2012]
        at org.subethamail.smtp.server.RequireTLSCommandWrapper.execute(RequireTLSCommandWrapper.java:30) ~[subethasmtp-3.1.7.jar:June 16 2012]
        at org.subethamail.smtp.server.CommandHandler.handleCommand(CommandHandler.java:99) ~[subethasmtp-3.1.7.jar:June 16 2012]
        at org.subethamail.smtp.server.Session.runCommandLoop(Session.java:244) ~[subethasmtp-3.1.7.jar:June 16 2012]
        at org.subethamail.smtp.server.Session.run(Session.java:145) [subethasmtp-3.1.7.jar:June 16 2012]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?]
        at java.lang.Thread.run(Thread.java:833) [?:?]
[err] Exception in thread "pool-3-thread-3" 
[err] java.lang.NoClassDefFoundError: Could not initialize class javax.mail.internet.MimeMessage
[err]   at com.bluebox.Utils.loadEML(Utils.java:129)
[err]   at com.bluebox.smtp.storage.mongodb.MongoImpl.getSpooledStream(MongoImpl.java:572)
[err]   at com.bluebox.smtp.Inbox.deliver(Inbox.java:720)
[err]   at org.subethamail.smtp.helper.SimpleMessageListenerAdapter$Handler.data(SimpleMessageListenerAdapter.java:142)
[err]   at org.subethamail.smtp.command.DataCommand.execute(DataCommand.java:64)
[err]   at org.subethamail.smtp.server.RequireTLSCommandWrapper.execute(RequireTLSCommandWrapper.java:30)
[err]   at org.subethamail.smtp.server.CommandHandler.handleCommand(CommandHandler.java:99)
[err]   at org.subethamail.smtp.server.Session.runCommandLoop(Session.java:244)
[err]   at org.subethamail.smtp.server.Session.run(Session.java:145)
[err]   at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[err]   at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[err]   at java.base/java.lang.Thread.run(Thread.java:833)

from bluebox.

ak2766 avatar ak2766 commented on July 20, 2024

I also just tried to re-install bluebox thinking that I might be missing components from the new .war file:

# bin/installUtility install bluebox
Checking for missing features required by the server ...
The server does not require any additional features.  No features were installed.

Start product validation...
Product validation completed successfully.

from bluebox.

stephen-kruger avatar stephen-kruger commented on July 20, 2024

Try send mail using telnet instead, odds are your sendmail is doing something funky.
What happens if you generate mails from the admin page?

from bluebox.

ak2766 avatar ak2766 commented on July 20, 2024

Tried using Thunderbird - same error

Attempt to send email via Bluebox interface

Selection_00375

Got this error:

14:58:30.900 [Default Executor-thread-3] ERROR com.bluebox.WorkerThread - Initialising thread generate                                                                                                                                                                                                                       
14:58:30.903 [Thread-24] ERROR com.bluebox.Utils - Problem generating mail                                                                                                                                                                                                                                                   
java.lang.NoClassDefFoundError: Could not initialize class javax.mail.internet.MimeMessage                                                                                                                                                                                                                                   
        at com.bluebox.Utils.createMessage(Utils.java:399) ~[classes/:?]                                                                                                                                                                                                                                                     
        at com.bluebox.Utils$1.run(Utils.java:200) [classes/:?]                                                                                                                                                                                                                                                              
        at java.lang.Thread.run(Thread.java:833) [?:?]  
Attempt to send email via Telnet
$ telnet 8.8.8.8 25
Trying 8.8.8.8...
Connected to 8.8.8.8.
Escape character is '^]'.
220 promisc-smtp ESMTP BlueBox V4.7.0
ehlo domain.com
250-promisc-smtp
250-8BITMIME
250 Ok
mail from: [email protected]
250 Ok
rcpt to: [email protected]
250 Ok
data
354 End data with <CR><LF>.<CR><LF>
Subject: Testing Promiscuous SMTP server
This is a test message to the Promiscuous SMTP server via telnet.
.
421 4.3.0 Mail system failure, closing transmission channel
Connection closed by foreign host.

Got same error as before:

15:07:08.198 [org.subethamail.smtp.server.Session-/10.0.0.13:59510] ERROR org.subethamail.smtp.server.Session - Unexpected error in the SMTP handler thread
java.lang.NoClassDefFoundError: Could not initialize class javax.mail.internet.MimeMessage
        at com.bluebox.Utils.loadEML(Utils.java:129) ~[classes/:?]
        at com.bluebox.smtp.storage.mongodb.MongoImpl.getSpooledStream(MongoImpl.java:572) ~[classes/:?]
        at com.bluebox.smtp.Inbox.deliver(Inbox.java:720) ~[classes/:?]
        at org.subethamail.smtp.helper.SimpleMessageListenerAdapter$Handler.data(SimpleMessageListenerAdapter.java:142) ~[subethasmtp-3.1.7.jar:June 16 2012]
        at org.subethamail.smtp.command.DataCommand.execute(DataCommand.java:64) ~[subethasmtp-3.1.7.jar:June 16 2012]
        at org.subethamail.smtp.server.RequireTLSCommandWrapper.execute(RequireTLSCommandWrapper.java:30) ~[subethasmtp-3.1.7.jar:June 16 2012]
        at org.subethamail.smtp.server.CommandHandler.handleCommand(CommandHandler.java:99) ~[subethasmtp-3.1.7.jar:June 16 2012]
        at org.subethamail.smtp.server.Session.runCommandLoop(Session.java:244) ~[subethasmtp-3.1.7.jar:June 16 2012]
        at org.subethamail.smtp.server.Session.run(Session.java:145) [subethasmtp-3.1.7.jar:June 16 2012]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?]
        at java.lang.Thread.run(Thread.java:833) [?:?]
[err] Exception in thread "pool-3-thread-16" 
[err] java.lang.NoClassDefFoundError: Could not initialize class javax.mail.internet.MimeMessage
[err]   at com.bluebox.Utils.loadEML(Utils.java:129)
[err]   at com.bluebox.smtp.storage.mongodb.MongoImpl.getSpooledStream(MongoImpl.java:572)
[err]   at com.bluebox.smtp.Inbox.deliver(Inbox.java:720)
[err]   at org.subethamail.smtp.helper.SimpleMessageListenerAdapter$Handler.data(SimpleMessageListenerAdapter.java:142)
[err]   at org.subethamail.smtp.command.DataCommand.execute(DataCommand.java:64)
[err]   at org.subethamail.smtp.server.RequireTLSCommandWrapper.execute(RequireTLSCommandWrapper.java:30)
[err]   at org.subethamail.smtp.server.CommandHandler.handleCommand(CommandHandler.java:99)
[err]   at org.subethamail.smtp.server.Session.runCommandLoop(Session.java:244)
[err]   at org.subethamail.smtp.server.Session.run(Session.java:145)
[err]   at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[err]   at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[err]   at java.base/java.lang.Thread.run(Thread.java:833)

from bluebox.

ak2766 avatar ak2766 commented on July 20, 2024

All attempts result in similar failure:
java.lang.NoClassDefFoundError

from bluebox.

stephen-kruger avatar stephen-kruger commented on July 20, 2024

For some reason your setup cannot access the bundled mail jars.
I've added another compat version in, could you please try again with new war.
Make sure you have exactly the same Liberty server as shown in the readme (they are a real PITA)
Delete the old one, install fresh.

from bluebox.

ak2766 avatar ak2766 commented on July 20, 2024

OK - will wipe out the entire directory and perform a reboot before I attempt again. I've also just downloaded that new .war file:

# md5sum /var/tmp/bluebox.war
cfb453ad9c5c785043ea6b1f10b14485  /var/tmp/bluebox.war

from bluebox.

stephen-kruger avatar stephen-kruger commented on July 20, 2024

Added as v4.7.1

from bluebox.

ak2766 avatar ak2766 commented on July 20, 2024

It works! You ROCK!!!!

Thank you so much for your help.

from bluebox.

stephen-kruger avatar stephen-kruger commented on July 20, 2024

FINALLY! :)

from bluebox.

Related Issues (12)

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.