Coder Social home page Coder Social logo

osgi / osgi.enroute.site Goto Github PK

View Code? Open in Web Editor NEW
17.0 17.0 54.0 53.15 MB

GitHub Pages repo for OSGi enRoute website

Home Page: https://enroute.osgi.org/

License: Apache License 2.0

Ruby 2.92% HTML 42.50% Shell 0.39% SCSS 54.20%
osgi-enroute-website

osgi.enroute.site's Introduction

OSGi

OpenSSF Scorecard

This is the main git repository for the OSGi specifications, implementations and TCKs. It is a Bnd Workspace model build.

Build

See CONTRIBUTING for information on checking out the repo and building.

Draft Specifications

The GitHub Actions build "GitHub Pages" job will publish the draft specifications into the repo's gh-pages branch. So you can view the draft specifications for the osgi/osgi repo:

In your fork, just add core/ or cmpn/ to the end of your fork's GitHub Pages URL. For example:

https://<username>.github.io/osgi/core/

More Information

For more information see the OSGi Specification Project pages at Eclipse: https://projects.eclipse.org/projects/technology.osgi

osgi.enroute.site's People

Contributors

androidi avatar aploese avatar axiopisty avatar azzazzel avatar bjhargrave avatar bosschaert avatar cboecking avatar cschneider avatar daghanacay avatar dependabot-preview[bot] avatar dependabot[bot] avatar dleangen avatar erwindl0 avatar gamerson avatar grantpax avatar jconlon avatar jest avatar jonenst avatar jpasski avatar jrao avatar jslain avatar mike-francis avatar negstek avatar pkriens avatar radford-nguyen avatar rn82497 avatar rotty3000 avatar timothyjward avatar vatosbmem avatar ypekingma avatar

Stargazers

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

Watchers

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

osgi.enroute.site's Issues

Modernize site and restructure content

Hi,

first of all: I really like the OSGi enRoute. It's a great piece of work and I often come to the site for getting information about OSGi. The assembled information on this site is really awesome and always helpful.

BUT:
The content seems to me being rather fragmented and grown over time with not much structure in mind.
Also the look and feel of the site is not what I would expect from an up-to-date project. In my opinion a lot more users could be attracted, if the site had a more modern look and feel and if the content would be better structured.

What I propose:

  • Use another Jekyll template for a more modern look and feel. I've set up a sample template here that mimics the look of a lot of modern project sites (or websites in general) today.
  • Restructure the content. It would be great to have an overall structure (like a book... I also think this was originally intended, judging from the naming in the source code ) where a visitor easily can see what documentation is provided on this site and also what is still missing. The missing parts would be helpful for contributors to decide which piece of information they want to add and to where help is still needed..

If you agree with the above named points I would start to set up the OSGi enRoute site with the new template on my fork, so that you can see how it would look like. Also, I would create a table of contents for the site to show how I would restructure the content. If you agree on this TOC I would then step by step port the site to this new structure.

I know that my proposal is a rather disruptive change, so please do not take offense. It is done with best intentions. I just think, that OSGi and OSGi enRoute are not yet receiving the attention they deserve and that a more modern appearance and a better structure would help to attract more user.

Kind regards,
Thomas

Enhancing the current contributing guidelines

Hi,

I've worked through the contributing guidelines and (at least as a Win10 user) struggled when trying to set up everything in order to be able to build the website locally.

I've written down the steps taken by me to make it work and would be pleased to contribute these notes as an enhanced version of the current contributing guidelines.

I think that a more detailed set of step-by-step instructions will also lower the initial hurdles for other future contributors :)

Kind regards,
Thomas

'bundle exec jekyll server -w -s _source -d _site' does not work for ruby 2.2.0

I tried 2.2.0 and it failed. 2.1.4 works.

$ rvm use 2.2.0
Using /usr/local/rvm/gems/ruby-2.2.0
$ bundle exec jekyll server -w -s _source -d _site
/usr/local/rvm/gems/ruby-2.2.0/gems/safe_yaml-1.0.3/lib/safe_yaml/load.rb:43:in <module:SafeYAML>': undefined methodtagged_classes' for Psych:Module (NoMethodError)
from /usr/local/rvm/gems/ruby-2.2.0/gems/safe_yaml-1.0.3/lib/safe_yaml/load.rb:26:in <top (required)>' from /usr/local/rvm/gems/ruby-2.2.0/gems/jekyll-2.0.3/lib/jekyll.rb:21:inrequire'
from /usr/local/rvm/gems/ruby-2.2.0/gems/jekyll-2.0.3/lib/jekyll.rb:21:in <top (required)>' from /usr/local/rvm/gems/ruby-2.2.0/gems/jekyll-2.0.3/bin/jekyll:6:inrequire'
from /usr/local/rvm/gems/ruby-2.2.0/gems/jekyll-2.0.3/bin/jekyll:6:in <top (required)>' from /usr/local/rvm/gems/ruby-2.2.0/bin/jekyll:23:inload'
from /usr/local/rvm/gems/ruby-2.2.0/bin/jekyll:23:in <main>' from /usr/local/rvm/gems/ruby-2.2.0/bin/ruby_executable_hooks:15:ineval'
from /usr/local/rvm/gems/ruby-2.2.0/bin/ruby_executable_hooks:15:in `

'
$ rvm use 2.1.4
Using /usr/local/rvm/gems/ruby-2.1.4
$ bundle exec jekyll server -w -s _source -d _site
Configuration file: _source/_config.yml
Source: _source
Destination: _site
Generating...
done.
Auto-regeneration: enabled
Configuration file: _source/_config.yml
Server address: http://0.0.0.0:4000/
Server running... press ctrl-c to stop.

tutorial: won't users have to remove osgi/workspace as a remote?

In my current understanding of git, cloning the workspace repository maintains the GitHub workspace as a remote. If I have to push my project work to my own remote, don't I have to remove the GitHub workspace as a remote? Maybe I don't understand git. Is there some way in git to section a repository to push/pull to/from different remotes? What if the osgi/workspace changes? Should those changes always be pulled?

Error/issue arising in the bnd-maven integration testing tutorial

Hello,

I tried to create an integration test project patterned after the tutorial, but I get a strange error message during resolution. It seems that the string which is supposed to list the missing dependencies instead becomes a string representation of an index out of bounds exception, but I haven't been able to find out of it comes from equinox or the bnd testing plugin, or if it's related to something specific in the tutorial.

Here is a minimized project to show it:

https://github.com/vintermann/mvn-bnd-issue/

On mvn install, it should give the following error:

[ERROR] Failed to execute goal biz.aQute.bnd:bnd-testing-maven-plugin:3.4.0-SNAPSHOT:testing (default) on project org.example.minimized.integration-test: Unable to resolve <<INITIAL>> version=null: missing requirement java.lang.StringIndexOutOfBoundsException: String index out of range: 42 -> [Help 1]

Unambiguous use of build and debug configuration.

The two run configuration files (bndrun) are confusing if you start with enRoute because each one has a Run OSGi and Debug OSGi button on the top right. The sole purpose/difference i know of for the debug bndrun file is that it allows to add requirements for debugging.

I suggest to merge the bndruns into one to make it straigth forward. Just add a box for 'Debug Requirements' similar to 'Run Requirements'. This can contain all requirements, which are added for debug runs.

marketing thoughts?

Would you like me to share marketing thoughts as I am reviewing? I have a measure of marketing in my bailiwick.

Error in maven tutorial, missing org.apache.felix.gogo.shell

I got the error
[ERROR] Failed to execute goal biz.aQute.bnd:bnd-export-maven-plugin:3.4.0-SNAPSHOT:export (default) on project osgi.enroute.examples.eval.bndrun: Unable to resolve <<INITIAL>> version=null: missing requirement org.apache.felix.gogo.shell -> [Help 1]

when going through the maven tutorial, so on a hunch I changed it back to the enroute wrapped gogo shell seeing that had recently changed on github. Then it worked as it should. It seems org.apache.felix.gogo.shell is not in the repositories used for resolution?

Aside, I wonder why the version ranges are so tight on the resolved bundles. Surely things like the logging facility are only consumed, not provided, so why do they have a have a version range like
org.apache.felix.log; version='[1.0.1,1.0.2)'

when resolved?

Missing escape char for mvn command (microservices tutorial)

The tutorial instructs the user to run the command mvn -pl !rest-app verify

but running it on a linux host yeilds:

usr@host:~/sandbox/OSGi/microservice$ mvn -pl !rest-app verify
bash: !rest: event not found
usr@host:~/sandbox/OSGi/microservice$

I will add a note about how linux-based cli users need to escape the ! in the command.

usr@host:~/sandbox/OSGi/microservice$ mvn -pl \!rest-app verify

Request to allow "-" as a valid delimiter

This is a request to add "-" as a valid delimiter for when other maven providers do not follow the proper convention.

On Wednesday, April 25, 2018, 2:06:43 PM EDT, Kevin Boyle [email protected] wrote:

The problem I now have is that curator versions going back several years all depend on zookeeper "-beta" or "-alpha".
Is there anyway to configure osgi to allow the "-" as a valid delimiter?
K

On Wednesday, April 25, 2018, 1:42:49 PM EDT, Tim Ward [email protected] wrote:

Hi Kevin,

OSGi version syntax is strictly defined with four sections separated by dots. The first three sections are integers greater than or equal to zero, and the final section (the qualifier) is a String.

In this case the org.apache.hadoop.zookeeper “bundle” has a version of 3.5.3-beta, which is not OSGi compatible (3.5.3.beta would be). This is because the actual artifact you’re using is malformed - the developers have added a Bundle-Version to the artifact which isn’t a valid version. There is no way that this has ever been run or tested in OSGi. This is a bug in their code and should be raised as such.

You should be fine using an older version with a legal version number, for example 3.4.9.

I hope this helps,

Tim

On 25 Apr 2018, at 18:29, Kevin Boyle via osgi-dev [email protected] wrote:

I'm new to OSGI and after following the enroute quick start tutorial I added one class and one library to the pom.xml included here. The curator-recipes indirectly depends on zookeeper 3.5.3-beta ( curator-recipes depends on curator-test which depends on zookeeper 3.5.3 ). Please help me resolve the version conflict and understand why zookeeper 3.5.3-beta is a problem for the quickstart.

Please help as I'm stuck

Thanks
K

package org.osgi.enroute.examples.quickstart.rest;

import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.retry.ExponentialBackoffRetry;

public class StartCurator {

public static void main ( String [] args ) 
{
	StartCurator s = new StartCurator();
	s.start_curator();
}

public void start_curator ()
{

	String zookeeper_connection_string = "localhost:2181";
    CuratorFramework    client = CuratorFrameworkFactory.newClient(zookeeper_connection_string, new ExponentialBackoffRetry(1000, 3));
    System.out.println ("Opening curator connection to zookeeper");
    client.start();
    client.close();
    System.out.println ("Closing curator connection to zookeeper");
}

}

org.apache.curator
<artifactId>curator-recipes</artifactId>

<version>4.0.1</version>

mvn install fails with the following error
[INFO] ------------------------------------------------------------------------

[ERROR] Failed to execute goal biz.aQute.bnd:bnd-indexer-maven-plugin:4.0.0-SNAPSHOT:index (index) on project app: Invalid version in bundle org.apache.hadoop.zookeeper=: 3.5.3-beta -> [Help 1]

[ERROR]

[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.

[ERROR] Re-run Maven using the -X switch to enable full debug logging.

[ERROR]

[ERROR] For more information about the errors and possible solutions, please read the following articles:

[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

[ERROR]

[ERROR] After correcting the problems, you can resume the build with the command

[ERROR] mvn -rf :app

Kevins-MBP:quickstart kevintboyle$


OSGi Developer Mail List
[email protected]
https://mail.osgi.org/mailman/listinfo/osgi-dev

Maven tutorial - bndrun project can be POM project

"OSGi Runtime" section suggests to create <packaging>jar</packaging> maven module for "bndrun". While this is not a problem, it is not strictly needed. The project could be <packaging>pom</packaging>.

It makes no difference if everything is created by hand (like the tutorial does), but when using tools/IDEs to generate the maven module, "jar" results in generating files and folders that are not needed.

Error in Base Tutorial

Hello,

While doing the Base Tutorial I ran into a problem. In the section 'Dependencies', when adding 'parsii.*' to the 'Private-Package:' section in the source of the bnd.bnd file I get the following error:

Unable to resolve <> version=null:
missing requirement osgi.enroute.base.tut.eval.provider
-> Unable to resolve osgi.enroute.base.tut.eval.provider version=1.0.0.201706120807:
missing requirement parsii.tokenizer]

Also, on the same page. before there is the following advice:

"BUG: Unfortunately the refresh has a bug. To see the dependency, you must for now
make small change to the build.bnd file in cnf project. This will kick the repository to properly refresh itself."

What is this small change?

Thanks!

Quick Start tutorial should be updated for new Eclipse workflows

The Quick Start tutorial is very good, very followable, but it is showing its age with respect to the version of eclipse and new workflows for eclipse and bndtools.
Specifically in /qs/300-application.html the instructions specify that after the user selects the create project with "Bndtools OSGi Project" the wizard will open before the template selection. The order is actually opposite, the template selection comes before the project configuration. I'm using Eclipse Neon (4.6.0) with bndtools 3.2.0.201605172024.
There are other areas where the eclipse screens don't quite match up with the instructions as well, but this one was the most obvious.

Maven tutorial missing pluginRepository

In the "OSGi Runtime" section, after creating the bndrun sub-project Maven can not find biz.aQute.bnd:bnd-export-maven-plugin:jar:3.4.0-SNAPSHOT plugin:

→ mvn clean install
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building osgi.enroute.examples.eval.bndrun 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[WARNING] The POM for biz.aQute.bnd:bnd-export-maven-plugin:jar:3.4.0-SNAPSHOT is missing, no dependency information available
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.109 s
[INFO] Finished at: 2016-10-12T00:26:21+02:00
[INFO] Final Memory: 7M/309M
[INFO] ------------------------------------------------------------------------
[ERROR] Plugin biz.aQute.bnd:bnd-export-maven-plugin:3.4.0-SNAPSHOT or one of its dependencies could not be resolved: Could not find artifact biz.aQute.bnd:bnd-export-maven-plugin:jar:3.4.0-SNAPSHOT -> [Help 1]

The POM (the one from bndrun module or the parent one) need to have

<pluginRepositories>
  <pluginRepository>
    <id>bnd-snapshots</id>
    <url>https://bndtools.ci.cloudbees.com/job/bnd.master/lastSuccessfulBuild/artifact/dist/bundles/</url>
    <layout>default</layout>
  </pluginRepository>
</pluginRepositories>

so that Maven can find and download the plugin

Duplicated workspace creation on Quick Start and Base Tutorial

Setting up the workspace is generally the same for both quick start and base tutorials.

When following the navbar from the top to the bottom, one may wonder whether to remove the old workspace (with the same name, com.acme.prime!) from the quick start, or just skip the section. A note at the top of Base Tutorial/The Workspace would be nice (I followed with skipping this section).

Add directory path clarity to Quickstart Tutorial for new users

I'm a new user to OSGi and I was very confused where to run commands specified in the quickstart tutorial.

In a lot of tech tutorials I've seen, there is a directory path shown before the $ <CLI COMMAND> such as directory/path/location $ ls .. This helps prevent confusion about where to run CLI commands.

One issue that took me at least a day to resolve was that the quickstart tutorial told me to run commands in the examples/quickstart dir but never told me to run commands anywhere else.

When it came time to recreate the project using OSGi I didn't know that I had to run the project template command outside of the project I had just downloaded.

user@host:~/sandbox/osgi.enroute/examples/quickstart/quickstart $ mvn org.apache.maven.plugins:maven-archetype-plugin:3.0.1:generate \
-DarchetypeGroupId=org.osgi.enroute.archetype \
-DarchetypeArtifactId=project \
-DarchetypeVersion=7.0.0
user@host:~/sandbox/osgi.enroute/examples/quickstart/ $ ls 
app  pom.xml rest quickstart

Since I'm not very mvn savvy, I was confused when issues came up about repeated parent.artifactId since I was following the instructions exactly as specified.

[INFO] Scanning for projects...
[ERROR] [ERROR] Some problems were encountered while processing the POMs:
[FATAL] 'parent.artifactId' must be changed, the parent element cannot have the same
 groupId:artifactId as the project. @ org.osgi.enroute.examples.quickstart:quickstart:1.0-SNAPSHOT,
 /home/user/sandbox/osgi.enroute/examples/quickstart/quickstart/pom.xml, line 5, column 17

I would clarify where to run commands for future users by adding detail to the CLI command code snippets:

~/osgi.enroute/examples/quickstart $ mvn verify
~/osgi.enroute/examples/quickstart $ java -jar app/target/app.jar
~/sandbox $ mvn org.apache.maven.plugins:maven-archetype-plugin:3.0.1:generate \
-DarchetypeGroupId=org.osgi.enroute.archetype \
-DarchetypeArtifactId=project \
-DarchetypeVersion=7.0.0

Having created the project skeleton, edit ~/sandbox/quickstart/impl/src/main/java/org/osgi/enroute/examples/quickstart/rest/ComponentImpl.java

Etc.

Event publish page should include a subscription example

http://enroute.osgi.org/services/org.osgi.service.event.html

This page references the scheduler API but might be improved by showing a non scheduler example of EventAdmin publish and EventListener subscriptions to a topic. An annotation configured example might be easier to implement.

I had luck with a subscription written like this:

import org.osgi.service.event.Event;
import org.osgi.service.event.EventHandler;
import org.osgi.service.event.EventConstants;

@Component( property= EventConstants.EVENT_TOPIC + "=some/topic")
public class SomeListenerImpl implements EventHandler {

    @Override
    public void handleEvent(Event event) {
        System.out.println("Got event " + event);
    }
}

Improve user feedback for drag&drop to different repository types.

  1. Drag and drop of a JPM 'vignette' to the Local repository in the Repositories view reports a 'not a jar' error. It works for the Central repository. Can you show the type besides the name of the repo or provide an error message that provides hints on how to solve the issue: E.g. 'You tried to drag & drop a JPM repository link to a JAR-only repository. Please use the Central repository instead.'. Its good to hide unnecessary details from the user but not having this information makes the behaviour seem random or wrong.

  2. Report an error if you drag & drop the name of a bundle from JPM on the Central repository - currently just nothing happens. Success is unknown and also what you need to do in order to make it work.

Broken link

image

The link to the enRoute Archetypes is broken on the Microservices page.

image

Small Document Inconsistency- Implementing the Chat API

If we create a provider Bndtools project with the OSGi enRoute templates then we get the proper setup. It will creates a project with a Declarative Services component for us. To setup a provider project, make sure the name of the project ends with .provider. In our case we will use the name osgi.enroute.examples.chat.provider for the project.
This gives us a bundle with a component like:
package osgi.enroute.examples.chat.adapter; <<<<<<<<<<<<<<<<<< Should this be provider

import org.osgi.service.component.annotations.Component;

@component(name = "osgi.enroute.examples.chat")
public class ChatImpl {
}

Maven tutorial - Eclipse and Bndtools

Perhaps there should be a warning box or something somewhere on the page stating that resolving of -standalone bndrun files only works from BNDTools version 3.3.x

In 3.2.x it displays "Can not resolve INITIAL" error

marketing: roadmap

The first two columns on the home page (front.html) spell increased risk.

  • First column: OSGi is too complicated and enRoute is the answer.
  • Second column: enRoute won't be done for "some time", what is already done is undefined and the balance speaks of plans only.

Presumably, the user is looking to enRoute to help solve OSGi complexity issues. It is entirely unclear how, right now or when, enRoute can do so.

Recommendation: a roadmap that shows where enRoute is now and where it will be and when. This helps users decide if he, she or they can become involved now or later.

Simplify resolution of requirements to bundles.

The resolution procedure is cumbersome in the tutorials. There might be use cases that need to specify run bundles explicitly but the additional Resolve step is odd in the tutorials. I'm not sure where the resolve button could actually pay off.

  1. Auto-resolve on save is not marked by default. This leads to the cumbersome behaviour that you first save, then resolve, then have to see that the file was automatically modified in the background, and then can really save before running the configuration.

  2. Resolve button could automatically save the file if the file was not dirty before.

Typos in "Persistance With JPA" tutorial

First Typo

In the "The JPA Composite Application" section of the "Persistance With JPA" tutorial, the code snippet for entering the impl-artifactId is

Define value for property 'impl-artifactId': rest-service

but the output reads

impl-artifactId: dao-impl-jpa

Later in the tutorial the rest-service is mentioned again in the rest-app-jpa.bndrun

-runrequires: \
    osgi.identity;filter:='(osgi.identity=org.osgi.enroute.examples.microservice.rest-service)',\

so this means the output should be changed to

impl-artifactId: rest-service

Second Typo

The last command in the tutorial is to run the jar that was just created by the mvn package command:

java -jar rest-app-jpa/target/rest-app.jar

But the jar you just created is not rest-app.jar but rest-app-jpa.jar. The command should be changed to

java -jar rest-app-jpa/target/rest-app-jpa.jar

I will add these to the PR I am currently working on.

Error installing Jekyll on Linux (Mint)

Error installing Jekyll on Linux (Mint), following the instructions in CONTRIBUTING.md.

After running bundle exec jekyll build, this error occurs:

	ERROR:  Error installing jekyll:
		ERROR: Failed to build gem native extension.

		current directory: /var/lib/gems/2.3.0/gems/ffi-1.9.18/ext/ffi_c
	/usr/bin/ruby2.3 -r ./siteconf20171117-322-1cr2dl9.rb extconf.rb
	mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h

	extconf failed, exit code 1

The solution is to install the ruby-dev package: sudo apt-get install ruby-dev

Missing resources in Maven tutorial, web app section

I worked through the base enRoute tutorial and most of the Maven tutorial up to the end of the web app section: http://enroute.osgi.org/tutorial_eval/450-web. Excellent tutorials! But at the end of the web app section, I ran into an issue:

First of all, there's an inconsistency about where to add the home.htm and about.htm files. The Static Web Content section near the top of the tutorial shows them at this location: osgi.enroute.examples.eval/htm/. However, the actual instructions direct to add these to a different location: osgi.enroute.examples.eval/main/htm/

I started off by following the instructions (using the osgi.enroute.examples.eval/main/htm/ location) but ran into a 404 error. And the evaluator was not present on the home page.

Then I moved home.htm and about.htm to osgi.enroute.examples.eval/htm/ and did not get any 404 but the evaluator was still not present on the home page.

Then I tried copying home.htm and about.htm to both locations and the application worked correctly.

So I'm wondering which is the correct location? And how to get the application to work correctly with these resources only in one of the locations?

why not create the api project as desired instead of immediately changing the name?

I'm missing something structurally important. From here:

Create an API

In general, you want to have an API project per workspace. So we should create such an API project. In OSGi enRoute this means the name of the project should end with .api and you should select the OSGi enRoute template. Let’s to call our API project com.acme.prime.api.

In this new project, we rename the template API to reflect our semantics. So rename the com.acme.prime.api package to com.acme.prime.upper.api and the Prime.java file to Upper.java.

changing maven commands and adding Resolve to the debug exercise.

snip20180423_3

On the http://enroute.osgi.org/tutorial/022-tutorial_osgi_runtime.html page do you want to change the maven comments to use only "mvn verify" like you did earlier.

Also the debug.bndrun was not "resolved" and required that I press the "Resolve Button" after changing the pom.xml. Prior to doing that I was getting errors when executing the maven commends.

you may want to mention that after running the java -jar debug.jar command that you might have to hit return a few times before the gogo shell command appears.

consider Liquid comments over HTML comments

Liquid comments are stripped from the build. HTML comments are passed through and tend to look like dirty laundry to anyone poking around. More professional product.

For editing convenience, a normal or regex replace of HTML comments works and can be reversed as needed. If you editor supports snippets or macros, they can be helpful.

Liquid comments, not surprisingly, look like this: {% comment %} text that will be ignored {% endcomment %}

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.