GithubHelp home page GithubHelp logo

underdoeg / ofxfenster Goto Github PK

View Code? Open in Web Editor NEW
79.0 15.0 28.0 24.62 MB

[DEPRECATED] a multiwindow manager for openframeworks 007

Home Page: http://ofxfenster.undef.ch

C++ 98.18% Objective-C++ 1.27% Makefile 0.55%

ofxfenster's Introduction

MULTIWINDOW IS NOW INTEGRATED INTO OPENFRAMEWORKS

REDESIGN

I am currently in the process of redesigning ofxFenster so it will use the now integrated GLFW libs. This is not complete yet. If you are looking for the old ghost version, check the ghost branch.

ABOUT

ofxFenster simplifies the cross platform handling of multiple windows within a single openframeworks app. It is an addon for openframeworks 0.07 built on top of a modified version of blenders window manager "ghost". The current state is stable and more or less production ready.

It should work on linux, mac and windows. Linux and mac should run fine, windows version does compile, but gets only occasional updates.

See this thread for more details: http://forum.openframeworks.cc/index.php/topic,6499.0.html

Or visit the generated docs: http://ofxfenster.undef.ch/docs/index.html

FEATURES

  • integrated into ofBaseApp
  • create and kill windows at runtime
  • opengl context sharing
  • separated event handling for every window
  • borderless windows
  • use an ofImage as app icon at runtime
  • multiple graphic cards and displays management on linux
  • drag and drop of files and textual clipboard access
  • ...

SCREENS

Screen shot

ACKNOWLEDGEMENTS

Thanks to Videosynthesis (http://videosynthesis.net). Pivotal Labs (http://pivotallabs.com).

LICENCE

ofxFenster has an MIT Licence http://en.wikipedia.org/wiki/MIT_License

GHOST is GPL licenced. The modified source code can be found here: https://github.com/underdoeg/ghost

ofxfenster's People

Contributors

blazm avatar gameoverhack avatar groolot avatar jtnimoy avatar mailiam avatar sheridanis avatar underdoeg avatar wtshm 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  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

ofxfenster's Issues

The application "*" cancelled logout

When I go to logout or shutdown my computer my application using ofxFenster is cancelling the shutdown or reboot.

I am 70% sure this is due to ofxFenster (as my other of apps are not having this same problem).

Is there a solution to this?

Problem with EnumDisplayDevices

Error 1 error C3861: 'EnumDisplayDevices': identifier not found c:......\of_prerelease_v007_vs2010\apps\ofxfenster\src\ofxdisplaymanager.cpp 103

when i try to compile visual studio show me that error... i dont know what to do, maybe you can help me

thanks! :)

dragInfo.position

I'm getting funny results for position when using dragEvent in fenster

I notice in ofxFensterManager on line 300:

....info.position.set(dragnDropData->x,dragnDropData->y); //TODO check if drag'n'drop position is actually correct

I've looked at the numbers being produced and I think this is nearly right:

....info.position.set((float)dragnDropData->y,(float)(dragnDropData->x>>16));

Here, the coords seem to be coming out correctly, but I see some anamalous behaviour - sometimes it will return 0 for position.y and sometimes will show erroneous entries in the file list.

get display information

some way to retrieve display info. display dimensions, number of displays, are they separated or twin view, etc...

Drag&drop OF8 linux

What is the current situation of drag&drop feature on OF 0.8 for linux?
I red d&d on ofxFenster for OF 0.7 as working. What now after rewriting?

thanks for this great addon!

Codeblocks on Windows failed to compile

In ofxFensterCanvas::setupPerspectiveForActiveScreen(), I was getting:

expected unqualified-id before '=' token

and I'm guessing the symbols near and far are causing a namespace conflict, so i renamed them to _near and _far.

I also had to explicitly cast _near to a float in the unary mulitply operation on line 160:

from:

float wholeMaxY = _near * halfFovTan;

to:

float wholeMaxY = (float)_near * halfFovTan;

... and then the compile succeeded.

setWindowPosition

hello Underdoeg, I have just recompiled in VS10 the ghost library (from the masterbranch repository) with the few lines you told about to Gameover for adding the possibility of moving the window and dealing with a secondary screen on Windows. It works fine on my config at least (OF0071, Visual Studio, Windows Vista).

I can put the new binaries here. Also, I think it would be fair to put my VS10 project for Ghost because the former one does not load the project.

What do you think ?

PS : I may also check how it's going in CB.

ofEvents() -> ofEvents

It looks like the latest version of OF no longer uses the method ofEvents(), and just shares ofEvents as an extern instance (changing these calls allowed the examples to run just fine on my machine)

memory management

I think there is some memory leaking on closing of the application. I'm pretty sure the underlying GHOST system gets deleted properly. But the ofxFensterManager and every instance of ofxFenster, may still be floating around in the memory. This needs some serious checking!

glfwCreateWindow on windows

There is an issue in setupOpenGL. When calling glfwCreateWindow on runtime there is an unhandled exception by an access violation location.

¿Any ideas?

OS: windows 7 64b
Openframeworks 0.8.0
Visual Studio 12

Can't build current version

When trying to build the example for new redesigned library I get

"Project /Users/jrs/Code/openframeworks/of_v0.8.0_osx_release/addons/ofxFenster/example/ofxFensterExample.xcodeproj cannot be opened because it is missing its project.pbxproj file."

Issues with GLFW key callbacks under 0.8.3

It seems GLFW was updated in 0.8.3 which has broken the key callbacks, specifically

glfwSetKeyCallback(windowP, ofxFensterManager::keyboard_cb); (line 272 of ofxFenster.cpp)
and
glfwSetDropCallback(windowP, ofxFensterManager::drop_cb); (line 276 of ofxFenster.cpp)

I've had a look at the function template requirements for these callbacks though and they seem to be met by the function so I'm not sure whats gone wrong or how to fix it - any ideas?

007 Drag and Drop not registered on multiple windows

Was performing some tests on Drag and Drop as I thought its really nice tool to import assets. Would be wonderful for it to get working on multiple windows.

When I create my own header files and try and implement debug the following code

void testApp::dragEvent(ofDragInfo info){

cout<<info.files.size()<<endl;   // No value debugged
if( info.files.size() > 0 ){
    dragPt = info.position;
    draggedImages.assign( info.files.size(), ofImage() );
    for(int k = 0; k < info.files.size(); k++){
        draggedImages[k].loadImage(info.files[k]);
    }
}

}

As you can see there is no value that is debugged.

Would be nice to have this integrated.

Cheers

remove GHOST to allow non GPL usage?

just wondering how much Ghost was being used in ofxFenster and how hard it would be to replace it with something else.
because Ghost is GPL it makes ofxFenster GPL and in turn makes any project that uses ofxFenster GPL.

this means that projects that use ofxFenster would have to publish under GPL and this would limit the types of projects ofxFenster could be used in.

anyway I also ask because we might see ofxFenster or something based off of it become the default windowing environment for OF down the line and OF doesn't use GPL code in the core.

spanning multiple monitors in OS X

I can't get ofxFenster displaying fullscreen across two monitors and two graphics cards on OS X. I've tried a few approaches:

  1. use OF_FULLSCREEN: the window is correctly shown filling the active display, but doesn't appear at all on the secondary display, even though the resolution should be high enough to span both.
  2. use OF_WINDOW: the window is correctly shown spanning both displays, but is scaled to allow room for the dock and the menubar, even through I've specified a high enough resolution to cover both.
  3. both of the above approaches using one video card: the window dimensions are the same as with two video cards, but the window contents are black, occasionally flashing the content.

I have extended the recommended main() call in order to detect the number of displays and automatically initialize the first window with the correct dimensions. This seemed preferable to my app doing this work, creating a second window, and killing the default window. Here's what that looks like:

#include "ofMain.h"
#include "videoWall.h"
#include "ofxFensterManager.h"
#include "ofAppGlutWindow.h"

//========================================================================
int main( ){
    ofxFensterManagerPtr fenster = ofxFensterManager::get();

    ofxDisplayList displays = ofxDisplayManager::get()->getDisplays();
    cout << "Found " << ofToString(displays.size()) << " displays" << endl;

    int minX = 0, minY = 0, maxX = 0, maxY = 0;
    ofxDisplay * minDisplay;

    ofxDisplayList::iterator dit;
    for(dit = displays.begin(); dit < displays.end(); dit++){
        ofxDisplay * display = *dit;
        minX = min(minX, display->x);
        minY = min(minY, display->y);
        maxX = max(maxX, display->width + display->x);
        maxY = max(maxY, display->height + display->y);
        if(minX == display->x && minY == display->y){
            minDisplay = display;
        }
    }

    cout << "Setting up display: " << maxX - minX << "x" << maxY - minY << endl;

    fenster->setActiveDisplay(minDisplay);
//    ofSetupOpenGL(fenster, maxX - minX, maxY - minY, OF_FULLSCREEN);
    ofSetupOpenGL(fenster, maxX - minX, maxY - minY, OF_WINDOW);
    ofxFenster * win = fenster->getActiveWindow();
    win->setBorder(false);

    ofRunFensterApp(new videoWall());
}

Is this even the right way to approach it? I've read about using multiple rendering contexts, which is what I think the multiple graphics cards example does, but wasn't entirely clear on how to display different portions of the same app in each window. This seemed like a quick-and-dirty approach albeit possibly at the cost of performance.

Resize issue at least in i3 window manager on Linux

When you open your program in tiling mode and resize the Fenster window, it will draw objects in wrong place and draw only the area which was visible before resize. If you open the program in floating mode, everything is fine. Main window draws everything correctly in both cases.

Suggestion: icon support

The icon showing up in X11 is the same as the blender one, and it seems to be hardcoded into the library, no exposed handles. The current icon setup is in GHOST_WindowX11.cpp .

I tried to access the XwmHints to change it, and I guess its possible with some effort, but for now I'll just leave you a suggestion.

ofxFenster error on Vista 64bit

Hello,

When I run my app in CB, running on Vista 64bit, I get the following error:

Linking console executable: binEddsIDE_DEBUG.exe
c:/program files (x86)/codeblocks/mingw/bin/../lib/gcc/mingw32/4.4.1/../../../../mingw32/bin/ld.exe: cannot open output file binEddsIDE_DEBUG.exe: Permission denied
collect2: ld returned 1 exit status
Process terminated with status 1 (1 minutes, 40 seconds)
1 errors, 0 warnings

So it compiles fine. When we comment out the ofxFenster calls, this error ceases. So we're assuming that there might be some compatibility issue with ofxFenster and Vista.

UAC has been disabled, and folder permissions are as they should be.

how do I give permission to the debug.exe file, thoughts?

Thanks!

multiple display support on OS X

I was told there are some problem with multiple displays on OS X. In this case 6 connected screens. The windows seem to work but there are problems positioning them on the screens...

custom cursor

Not that important. But it is already built into GHOST, so it shouldn't take too much effort to make it work,

Fenster 'ghost' issues w/ latest OF/ ubuntu 13.10 x64

I'm trying to get an old project working that uses Fenster, I tried the ghost branch, using newer OF releases >= 0.8.0 the simple example suffers from some heinous bug that launches masses of windows and locks the system up needing powering off.

Using OF 0.7.4, on Ubuntu 13.10 compiling Fenster fails like this:

/usr/bin/ld: ../../../addons/ofxFenster/libs/ghost/lib/linux64/libGhost64.a(intern_GHOST_SystemX11.o): undefined reference to symbol 'XConvertSelection'

(it works fine with ubuntu 12.04 LTS)

I imagine libGhost64.a needs to be recompiled.. similar to the other issue post here about recompiling for gcc 4.7.1 ? I checked out the underdoeg/ghost repo but this doesn't compile by itself:

tim@gray:~/sources/ghost$ cmake ./ CMake Warning (dev) at CMakeLists.txt:243 (add_definitions): Policy CMP0005 is not set: Preprocessor definition values are now escaped automatically. Run "cmake --help-policy CMP0005" for policy details. Use the cmake_policy command to set the policy and suppress this warning. This warning is for project developers. Use -Wno-dev to suppress it.

CMake Error at CMakeLists.txt:284 (blender_add_lib):
Unknown CMake command "blender_add_lib".

Frame rate drop vs. regular openFrameworks

With #define USE_FENSTER: ~170fps
Without: ~215fps

Fullscreen on my attached monitor (1680x1050) with #define USE_FENSTER: ~72fps
Fullscreen on my attached monitor (1680x1050) without: ~120fps

Any ideas why this is the case?

I'm running Windows 7 on my 2011 MacBook Pro (Radeon 6700M with 1GB VRAM).

I've also attached screens of the draw() callstack of regular OF (GLUT callback) vs. fenster. Not sure if that is the difference or not, pretty strange.

int main( ){
#if defined(USE_FENSTER)
    ofSetupOpenGL(ofxFensterManager::get(), 1024,768, OF_WINDOW);
    ofRunFensterApp(new testApp());
#else
    ofAppGlutWindow of;
    ofSetupOpenGL(&of, 1024,768, OF_WINDOW);
    ofRunApp(new testApp());
#endif
}
#define USE_FENSTER
#if defined(USE_FENSTER)
    #include "ofxFenster.h"
#endif

class testApp
#if defined(USE_FENSTER)
    : public ofxFensterListener
#else
    : public ofBaseApp 
#endif
{
...
void testApp::draw(){
    ofBackground(150,38,70);

    ofNoFill();
    ofSetRectMode(OF_RECTMODE_CENTER);
    ofSetColor(255);
    ofCircle(mouseX, mouseY, 10); //mouseX and mouseY are currently not working reliably

    ofDrawBitmapString(ofToString(ofGetFrameRate()),20,20);
}

Fenster
fenster
Regular OF
vanilla_OF

windows version

I was able to compile ofxFenster on windows using minGW and Code::Blocks. It opens multiple windows and they seem to work. But I wasn't able to load an image and display it. So I guess the project still needs some fixings. To make it compile, I commented some (crucial?) stuff out. It's only a few lines and marked with //TODO: SOLVE THIS!

Actually I have no idea how the windows API works, so the whole thing was a lot of trial and error. But since I usually don't use windows, I am satisfied to just know that ofxFenster can compile on it.

Which means, if anybody wants windows support: it should only be a small step away...

calling ofSystemLoadDialog in an ofxFenster app breaks mouse input on OSX

In ofxFensterExample, add three lines to testApp::mousePressed():

void testApp::mousePressed(int x, int y, int button)
{
    cout << "PRESSED" << endl;
    if (x < 100 && y < 100) {
        ofFileDialogResult result = ofSystemLoadDialog("Load Model", false, "");
    }
}

Run the example. If you click in the lower right corner of the main window, nothing happens, as expected. Click in the upper left corner and the file dialog appears, again as expected. Close the file dialog.

Now the window is in a strange state where it receives mouse pressed/released messages but not mouse moved messages. Click anywhere in the window and the file dialog will pop up again, even if you are outside the 100x100 zone, because the mouse position is still locked there. Even clicking on the title bar will pop the dialog again.

By swapping windows and apps around a bit, you can generally reset the behavior back to normal.

EXE_BAD_ACCESS (code =1...) when setting up a window in 0fx0.8

Hi All,

I've just converted a large app to ofx 0.8 (with a fresh pull from github) and I'm on xcode 5.1 on osx 10.9. Since doing so I've started randomly (around 1 in 4 runs) getting memory access errors on the following line in main

ofxFensterManager::setup(750, 750, OF_WINDOW);

As this is pretty much the first line of the program I'm confident the cause of the program is within ofxFenseter or GLFW. Is this the right way to be setting things up and if so has anyone else been seeing this?

James

get rid of manually adding listener in testApp::setup

currently the following line has to be added to setup.

ofxFensterManager::get()->getPrimaryWindow()->addListener(this);

since there is always a primary window this should be automated somehow to increase usability.

better deleting of windows?

maybe its better we should only fire up an GHOST_kEventWindowClose in ofxFensterManager::deleteFenster.

needs more research on this

Can't build ofxFenster-7.4 on Max(osx-10.7.5)

I use oF-version 7.4 on OSX-10.7.5 but
I can't build basic usage code below.
https://github.com/underdoeg/ofxFenster/wiki/basic-usage

Do you have any suggestion ?

I got these error.

Undefined symbols:
"STR_String::STR_String(char const*)", referenced from:
ofxFenster::setWindowTitle(std::basic_string<char, std::char_traits, std::allocator >)in ofxFenster.o
ofxFenster::setupOpenGL(int, int, int, int, int)in ofxFenster.o
"GHOST_ISystem::disposeSystem()", referenced from:
ofxFensterManager::onClose(ofEventArgs&) in ofxFensterManager.o
"GHOST_ISystem::createSystem()", referenced from:
ofxFensterManager::ofxFensterManager()in ofxFensterManager.o
"vtable for GHOST_Rect", referenced from:
__ZTV10GHOST_Rect$non_lazy_ptr in ofxFenster.o
(maybe you meant: __ZTV10GHOST_Rect$non_lazy_ptr)
"GHOST_ISystem::getSystem()", referenced from:
ofxFenster::destroy() in ofxFenster.o
ofxFenster::setupOpenGL(int, int, int, int, int)in ofxFenster.o
ofxFensterManager::ofxFensterManager()in ofxFensterManager.o
ld: symbol(s) not found

collect2: ld returned 1 exit status

image loading on windows

On windows the example won't work. As soon as the ofImage is initialized, there is a null pointer somewhere...

ofxFenster crashed on Visual Studio 2010

Hi, my name is Sunu Wibirama
I am working on my research project using OF 007.
I am interested in controlling my application using ofxFenster, as it seems possible to make another window to put control panel and the other as the primary window. Last time, I downloaded ofxFenster on Oct. 23, 2012., and tried to compile it on Visual Studio 2010.
I can compile the "example" project, but soon it crashed and the IDE stated that "stackoverflow" had occured. The window could be initialized, but the image was not loaded.

I tried to compile on two operating systems: Windows XP SP 2 and Windows 7, but i got the same result. Does anybody who uses Visual Studio 2010 get the same result ?
Now, I am trying to solve this problem, but I cannot get reference from Google.

My system:

Windows XP SP 2
OpenFrameworks 007
Visual Studio 2010
Graphic Card: Quadro 5000
Single monitor

modal windows

a window that's always on top and stops everything in the background windows

keycode not correct

looks like the integer keyCode on a mac does not correspond with the char key codes. for example key=='f' won't work as expected

Infinite setup loop with latest OF/develop ?

Hi,
When I try to compile and run the ofxFenster example with the latest OF/develop, the app gets stuck in an infinite loop of such :
screen shot 2013-06-22 at 12 54 31 pm
In testApp::setup, that's the line that's the line involved :

ofxFenster* win=ofxFensterManager::get()->createFenster(400+(i*winW), 0, winW, 300, OF_WINDOW);

For reference, a quick hack prevented this from happening but, running the example fine : 42a080e (I'm not submitting a PR since I've no idea of what it can break)

ofImage.loadImage problem

I have 2 Ati Radeon HD 7770 cards. Each card is diving one monitor. I have an image loading problem. If I change the image on the second screen, the image updates fine. However, if I change the image on the first screen, I get a generic grey box instead of my image. What am I doing wrong? Here's my code:


testApp.h:

pragma once

include "ofMain.h"

include "ofxFensterManager.h"

class mySecondWindow : public ofxFensterListener {
public:

mySecondWindow()
{
}

~mySecondWindow()
{

}

void setup() {
    myImg.loadImage("background.jpg");
}

void updateImg()  {
    myImg.loadImage("background2.jpg");
}

void draw() {
    myImg.draw(0,0);
}

private:
ofImage myImg;
};

class testApp : public ofBaseApp {

public:
void setup();
void draw();

void mousePressed(int x, int y, int button);
void mousePressedEvent(ofMouseEventArgs &args);

ofxDisplayList displays;
ofxDisplay* disp;

//my second screen
mySecondWindow window2;
ofImage myImg;

};


testApp.cpp:

include "testApp.h"

//--------------------------------------------------------------
void testApp::setup()
{
//initialized variables and make first screen full
displays = ofxDisplayManager::get()->getDisplays();
disp = displays[0];
ofxFensterManager::get()->setActiveDisplay(disp);
ofxFensterManager::get()->getActiveWindow()->toggleFullscreen();

//initialize first screen
myImg.loadImage("background.jpg");

//create second screen and make full
ofxFenster* win=ofxFensterManager::get()->createFenster(1920, 0, 1920, 1080, OF_WINDOW);
disp = displays[1];
ofxFensterManager::get()->setActiveDisplay(disp);
ofxFensterManager::get()->getActiveWindow()->toggleFullscreen();

ofAddListener(win->events.mousePressed, this, &testApp::mousePressedEvent);

window2.setup();
win->addListener(&window2);

}

//--------------------------------------------------------------
void testApp::draw()
{
myImg.draw(0,0);
}

//--------------------------------------------------------------
void testApp::mousePressed(int x, int y, int button)
{
printf("monitor 1 mouse pressed x:%d y:%d\n",x,y);
//---------------------------------------------------------------------------------------------------
//image doesn't get updated properly. Displays a generic grey box instead
//---------------------------------------------------------------------------------------------------
myImg.loadImage("background2.jpg");
}

void testApp::mousePressedEvent(ofMouseEventArgs &args)
{
printf("monitor 2 mouse pressed x:%d y:%d\n",args.x, args.y);
window2.updateImg();
}

Windows don't move to ext. display

ive tried all the examples and on my system

Win7 64 bit
VS 2010 pro

everything compiles like a charm...the examples straight work...but if i try to define the active display as 1 instead of 0 nothing changes...Windows always stay on primary display...The size of the display list is 2 - so monitors get recognized - but somehow i cant access the external ones

Any Ideas about this ... or methods which i can use to track down the prob...Help is pretty much needed - since there is no issue in the compiling or on the console i dont know any other way for now to understand it...

Thank you very much for reading

setWindowOnTop causes warnings on build

this line https://github.com/underdoeg/ofxFenster/blob/master/libs/ghost/include/GHOST_IWindow.h#L131

causes warnings like this:

../openFrameworks/addons/ofxFenster/libs/ghost/include/GHOST_IWindow.h: In member function ‘virtual GHOST_TSuccess GHOST_IWindow::setWindowOnTop(bool)’:
../openFrameworks/addons/ofxFenster/libs/ghost/include/GHOST_IWindow.h:131:59: warning: no return statement in function returning non-void

can we add just a

= 0

at the end of the line like the other methods?

multiple display support on X11

This is a feature I already had built in. Hacked right into the X11 specific ghost code. Now to compile on windows with minGW, I had to update the GHOST system. This led to an update of the X11 specific files as well.

This has one advantage. Ghost is now in sync with the repository again. hooray! (Revision 2122 - 15th of July 2011 11pm)

But the display handling is gone now! Boohooo... It's kinda ok, because, I thought the code was a little messy anyways. Had to write it under quite a time pressure. So a rewrite is probably not a bad idea. (aka how to motivate yourself to do the same thing again... :) )

Windows send capital letters as lower case

Since the upgrade to GLFW when receiving key press events from a window everything seems to be lower case. This was tested on osx 10.9 with a very recent version of the ofx github repo and the most recent ofxFenster.

The main window is fine its only children windows that exhibit the problem.

vs2010 won't complied

sorry,seems i can't complied it under the vs2010,missing the ghost win32 lib ? thxs!

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.