Giter Club home page Giter Club logo

terminal-status's People

Contributors

akonwi avatar guileen avatar omnidan avatar pandres95 avatar rgbkrk avatar sberan avatar shafreeck 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  avatar  avatar  avatar  avatar

terminal-status's Issues

Uncaught SyntaxError: Unexpected end of input

From @ST3tter on December 11, 2014 19:52

Uncaught SyntaxError: Unexpected end of input

Atom Version: 0.154.0
System: Mac OS X 10.10
Thrown From: terminal-status package

Steps To Reproduce

  1. ...
  2. ...

Stack Trace

At file:///Applications/Atom.app/Contents/Resources/app/static/index.html?loadSettings=%7B%22bootstrapScript%22%3A%22%2FApplications%2FAtom.app%2FContents%2FResources%2Fapp%2Fsrc%2Fwindow-bootstrap.js%22%2C%22resourcePath%22%3A%22%2FApplications%2FAtom.app%2FContents%2FResources%2Fapp%22%2C%22devMode%22%3Afalse%2C%22safeMode%22%3Afalse%2C%22appVersion%22%3A%220.154.0%22%2C%22shellLoadTime%22%3A247%7D:0

SyntaxError: Unexpected end of input
  at Object.parse (native)
  at /Users/tobiasmeerstetter/.atom/packages/terminal-status/lib/command-output-view.coffee:38:26
  at ChildProcess.exithandler (child_process.js:752:5)
  at ChildProcess.emit (events.js:110:17)
  at maybeClose (child_process.js:1013:16)
  at Socket.<anonymous> (child_process.js:1181:11)
  at Socket.emit (events.js:107:17)
  at Pipe.close (net.js:461:12)

Copied from original issue: atom/atom#4559

Move away from command for key bindings due to open sourcing of atom.

With atom now open source and available to build on all platforms, a move away from using command for key bindings. Using super is not advised as under Linux it should be reserved for OS and window manager specific functions. In my own environment I've moved command to ctrl.

Uncaught SyntaxError: Unexpected end of input

[Enter steps to reproduce below:]

Occurs on Atom startup

Atom Version: 0.165.0
System: Mac OS X 10.10.2
Thrown From: terminal-status package, v1.3.5

Stack Trace

Uncaught SyntaxError: Unexpected end of input

At file:///Applications/Atom.app/Contents/Resources/app/static/index.html?loadSettings=%7B%22bootstrapScript%22%3A%22%2FApplications%2FAtom.app%2FContents%2FResources%2Fapp%2Fsrc%2Fwindow-bootstrap.js%22%2C%22resourcePath%22%3A%22%2FApplications%2FAtom.app%2FContents%2FResources%2Fapp%22%2C%22devMode%22%3Afalse%2C%22safeMode%22%3Afalse%2C%22appVersion%22%3A%220.165.0%22%2C%22shellLoadTime%22%3A16494%7D:0

SyntaxError: Unexpected end of input
  at Object.parse (native)
  at /Users/michael/.atom/packages/terminal-status/lib/command-output-view.coffee:38:26
  at ChildProcess.exithandler (child_process.js:752:5)
  at ChildProcess.emit (events.js:110:17)
  at maybeClose (child_process.js:1013:16)
  at Socket.<anonymous> (child_process.js:1181:11)
  at Socket.emit (events.js:107:17)
  at Pipe.close (net.js:461:12)

Commands

Config

{
  "core": {
    "disabledPackages": [
      "wrap-guide",
      "linter-jscs",
      "term",
      "term"
    ]
  }
}

Installed Packages

# User
autoclose-html, v0.13.0
autocomplete-emojis, v0.6.0
autocomplete-paths, v0.9.0
autocomplete-plus, v1.0.0
autocomplete-snippets, v0.3.1
color-picker, v1.2.6
command-logger, v0.20.0
compass, v0.7.5
editor-stats, v0.16.0
git-log, v0.2.0
html-entities, v0.2.0
html-id-class-snippets, v1.4.1
linter, v0.9.0
linter-clang, v2.9.0
linter-csslint, v0.0.11
linter-jshint, v0.1.0
linter-php, v0.0.11
linter-ruby, v0.1.4
linter-shellcheck, v0.0.6
linter-xmllint, v0.0.5
playlist, v0.1.7
terminal-status, v1.3.5
the-closer, v0.2.0

# Dev
No dev packages

/cc @atom/core

Feature request: history

The commands should be saved in a history, and some usual history search functions would be nice (like in Fish, Bash, ZSH or so).

We would automatically get this is we implement #13 and just use some existing shell (e.g. just the default system shell).

killing a command doesn't actually kill it

As the title says, when I click the kill button, the command is still running according to my system task manager. This also happens when I destroy the terminal instance (instead of killing the command it is running).

Overwrite Reopen Last Item keybinding

Your shift-cmd-T for new terminal shell, has the same keybinding of Reopen Last Item of Atom Editor.
Maybe is better to choice another keybinding.

Execute user's .bashrc or .profile or custom terminal startup script?

As a specific example, the terminal window is unable to access the path as a normal terminal session on OS X would. This means I don't have any access to rvm/nvm etc., which makes it quite useless, as I have to revert to a traditional terminal.

Is it possible to specify a a startup script anywhere?

.bash_profile methods and aliases not available

Apparently when using aliases or methods declared on .bash_profile nothing happens?
It somehow still has access to env variables export VAR=1, but apparently not for the aliases and methods.

Atom.Object.defineProperty.get is deprecated.

atom.workspaceView is no longer available.
In most cases you will not need the view. See the Workspace docs for
alternatives: https://atom.io/docs/api/latest/Workspace.
If you do need the view, please use atom.views.getView(atom.workspace),
which returns an HTMLElement.

Atom.Object.defineProperty.get (C:\Users\pandres95\AppData\Local\atom\app-0.182.0\resources\app\src\atom.js:54:11)
CliStatusView.initialize (C:\Users\pandres95\.atom\packages\terminal-status\lib\cli-status-view.coffee:18:9)

Atom.Object.defineProperty.get is deprecated.

atom.workspaceView is no longer available.
In most cases you will not need the view. See the Workspace docs for
alternatives: https://atom.io/docs/api/latest/Workspace.
If you do need the view, please use atom.views.getView(atom.workspace),
which returns an HTMLElement.

Atom.Object.defineProperty.get (/opt/atom/resources/app/src/atom.js:55:11)
Object.activate (/home/william/.atom/packages/terminal-status/lib/cli-status.coffee:10:12)

Atom.Object.defineProperty.get is deprecated.

atom.workspaceView is no longer available.
In most cases you will not need the view. See the Workspace docs for
alternatives: https://atom.io/docs/api/latest/Workspace.
If you do need the view, please use atom.views.getView(atom.workspace),
which returns an HTMLElement.

Atom.Object.defineProperty.get (C:\Users\pandres95\AppData\Local\atom\app-0.182.0\resources\app\src\atom.js:54:11)
CommandOutputView.initialize (C:\Users\pandres95\.atom\packages\terminal-status\lib\command-output-view.coffee:39:9)

Conflicting default key binding shift-enter

Hi!

first of all, thanks for this extension, it's very nice, I just installed it and it looks promising.
Nonetheless, there's a tiny glitch: the default keybinding shift-enter conflicts with atom core keybinding (by default there are already 2 bindings for shift-enter.) so it simply does not work in the editor (of course the terminal icon can be clicked to open the pane.)

Would it be possible to change that default keybinding so that it works how of the box?

Atom.Object.defineProperty.get is deprecated.

atom.workspaceView is no longer available.
In most cases you will not need the view. See the Workspace docs for
alternatives: https://atom.io/docs/api/latest/Workspace.
If you do need the view, please use atom.views.getView(atom.workspace),
which returns an HTMLElement.

Atom.Object.defineProperty.get (/Applications/Atom.app/Contents/Resources/app/src/atom.js:54:11)
CommandOutputView.open (/Users/Dileep/.atom/packages/terminal-status/lib/command-output-view.coffee:100:9)

Atom.Object.defineProperty.get is deprecated.

atom.workspaceView is no longer available.
In most cases you will not need the view. See the Workspace docs for
alternatives: https://atom.io/docs/api/latest/Workspace.
If you do need the view, please use atom.views.getView(atom.workspace),
which returns an HTMLElement.

Atom.Object.defineProperty.get (C:\Users\pandres95\AppData\Local\atom\app-0.182.0\resources\app\src\atom.js:54:11)
CliStatusView.attach (C:\Users\pandres95\.atom\packages\terminal-status\lib\cli-status-view.coffee:57:9)

RVM Issues

I uses RVM to manage Ruby and am getting this message when trying to run grunt even after using source ~/.profile and source ~/.bash-profile:

screenshot

Atom.Object.defineProperty.get is deprecated.

atom.workspaceView is no longer available.
In most cases you will not need the view. See the Workspace docs for
alternatives: https://atom.io/docs/api/latest/Workspace.
If you do need the view, please use atom.views.getView(atom.workspace),
which returns an HTMLElement.

Atom.Object.defineProperty.get (/Applications/Atom.app/Contents/Resources/app/src/atom.js:54:11)
Object.activate (/Users/boonie/.atom/packages/terminal-status/lib/cli-status.coffee:10:12)

Atom.Object.defineProperty.get is deprecated.

atom.workspaceView is no longer available.
In most cases you will not need the view. See the Workspace docs for
alternatives: https://atom.io/docs/api/latest/Workspace.
If you do need the view, please use atom.views.getView(atom.workspace),
which returns an HTMLElement.

Atom.Object.defineProperty.get (C:\Users\pandres95\AppData\Local\atom\app-0.182.0\resources\app\src\atom.js:54:11)
CliStatusView.initialize (C:\Users\pandres95\.atom\packages\terminal-status\lib\cli-status-view.coffee:15:9)

Uncaught SyntaxError: Unexpected end of input

This comes after I installed the plugin, every time I start Atom and every time I open a new terminal status window (the developer tools window opens itself):
Screenshot

The plugin is working but the error messages are annoying.

Input support

When the terminal requests input, I am unable to enter anything. I have tried with various terminal apps requesting user input, e.g. apm publish on first publish requests the token.

It would be nice if the terminal would get focus in case it requests input.

No colors in output

Atom 0.123.0
Terminal Status 1.3.5

The terminal is all black and white. ls yields no colors, nor does my fancy test runner color anything.

It did, however, parse this correctly: echo "\033[31mHello World\033[0m" and give me red text.
The \x1B[0m format works for me as well, but not \e[0m.

Possibly OT: In my bash terminal i need the -e flag to echo for this to work, while terminal-status doesn't, and actually outputs the -e.

Uncaught SyntaxError: Unexpected token #

[Enter steps to reproduce below:]

  1. ...
  2. ...

Atom Version: 0.177.0
System: Mac OS X 10.10.2
Thrown From: terminal-status package, v1.3.5

Stack Trace

Uncaught SyntaxError: Unexpected token #

At file:///Applications/Atom.app/Contents/Resources/app/static/index.html?loadSettings=%7B%22pathToOpen%22%3A%22%2FUsers%2Fsudeepjathar%2Flab%2Funitz%22%2C%22bootstrapScript%22%3A%22%2FApplications%2FAtom.app%2FContents%2FResources%2Fapp%2Fsrc%2Fwindow-bootstrap.js%22%2C%22resourcePath%22%3A%22%2FApplications%2FAtom.app%2FContents%2FResources%2Fapp%22%2C%22devMode%22%3Afalse%2C%22safeMode%22%3Afalse%2C%22appVersion%22%3A%220.177.0%22%2C%22initialPath%22%3A%22%2FUsers%2Fsudeepjathar%2Flab%2Funitz%22%7D:1

SyntaxError: Unexpected token #
  at Object.parse (native)
  at /Users/sudeepjathar/.atom/packages/terminal-status/lib/command-output-view.coffee:38:26
  at ChildProcess.exithandler (child_process.js:740:7)
  at ChildProcess.emit (events.js:119:17)
  at maybeClose (child_process.js:1013:16)
  at Socket.<anonymous> (child_process.js:1181:11)
  at Socket.emit (events.js:116:17)
  at Pipe.close (net.js:477:12)

Commands

     -31:14.4 core:paste (atom-text-editor.editor.mini.is-focused)
  6x -30:43.1 core:backspace (atom-text-editor.editor.mini)

Config

{
  "core": {
    "audioBeep": false,
    "themes": [
      "atom-dark-ui",
      "base16-tomorrow-dark-theme"
    ],
    "ignoredNames": [
      "*.pyc"
    ],
    "disabledPackages": [
      "language-objective-c",
      "styleguide"
    ]
  }
}

Installed Packages

# User
autocomplete-plus, v2.1.3
language-rust, v0.3.5
linter, v0.11.1
linter-pylint, v0.2.0
terminal-status, v1.3.5
vim-mode, v0.30.0

# Dev
No dev packages

/cc @atom/core

Uncaught Error: Pane has been destroyed

  1. I tried to kill the shell

Atom Version: 0.165.0
System: Mac OS X 10.10.1
Thrown From: terminal-status package, v1.3.5

Stack Trace

Uncaught Error: Pane has been destroyed

At /Applications/Atom.app/Contents/Resources/app/src/pane.js:579

Error: Pane has been destroyed
  at Pane.module.exports.Pane.activate (/Applications/Atom.app/Contents/Resources/app/src/pane.js:579:15)
  at CommandOutputView.module.exports.CommandOutputView.close (/Users/aarongreenlee/.atom/packages/terminal-status/lib/command-output-view.coffee:109:19)
  at /Users/aarongreenlee/.atom/packages/terminal-status/lib/command-output-view.coffee:84:10
  at CommandOutputView.module.exports.CommandOutputView.destroy (/Users/aarongreenlee/.atom/packages/terminal-status/lib/command-output-view.coffee:92:7)
  at HTMLButtonElement.<anonymous> (/Applications/Atom.app/Contents/Resources/app/node_modules/space-pen/lib/space-pen.js:181:36)
  at HTMLButtonElement.handler (/Applications/Atom.app/Contents/Resources/app/src/space-pen-extensions.js:112:34)
  at HTMLButtonElement.jQuery.event.dispatch (/Applications/Atom.app/Contents/Resources/app/node_modules/space-pen/vendor/jquery.js:4681:9)
  at HTMLButtonElement.elemData.handle (/Applications/Atom.app/Contents/Resources/app/node_modules/space-pen/vendor/jquery.js:4359:46)

Commands

     -0:42.6 find-and-replace:show (input.hidden-input)
     -0:41.8 core:confirm (input.hidden-input)
     -0:27.1 core:copy (input.hidden-input)
  5x -0:26.5 core:move-left (input.hidden-input)
     -0:24.5 editor:consolidate-selections (input.hidden-input)
     -0:24.5 core:cancel (input.hidden-input)
 11x -0:23.2 core:move-right (input.hidden-input)
     -0:20.5 core:delete (input.hidden-input)
     -0:16.0 core:save (input.hidden-input)
     -0:07.6 find-and-replace:show (input.hidden-input)
  6x -0:06.9 core:confirm (input.hidden-input)
     -0:03.3 find-and-replace:show (input.hidden-input)
  3x -0:02.3 core:confirm (input.hidden-input)
     -0:00.0 editor:consolidate-selections (input.hidden-input)
     -0:00.0 core:cancel (input.hidden-input)

Config

{}

Installed Packages

# User
autocomplete-plus, v1.1.0
color-gutter, v0.3.1
go-plus, v3.0.11
grunt-runner, v0.6.0
minimap, v3.4.9
terminal-status, v1.3.5

# Dev
No dev packages

/cc @atom/core

Uncaught SyntaxError: Unexpected token b

[Enter steps to reproduce below:]

  1. Install terminal-status

Atom Version: 0.165.0
System: linux 3.17.7-300.fc21.x86_64 (Fedora 21)
Thrown From: terminal-status package, v1.3.5

Stack Trace

Uncaught SyntaxError: Unexpected token b

At file:///usr/local/share/atom/resources/app/static/index.html?loadSettings=%7B%22pathToOpen%22%3A%22%2Fhome%2Frkopka%2FCodeEval%22%2C%22bootstrapScript%22%3A%22%2Fusr%2Flocal%2Fshare%2Fatom%2Fresources%2Fapp%2Fsrc%2Fwindow-bootstrap.js%22%2C%22resourcePath%22%3A%22%2Fusr%2Flocal%2Fshare%2Fatom%2Fresources%2Fapp%22%2C%22devMode%22%3Afalse%2C%22safeMode%22%3Afalse%2C%22appVersion%22%3A%220.165.0%22%2C%22initialPath%22%3A%22%2Fhome%2Frkopka%2FCodeEval%22%7D:1

SyntaxError: Unexpected token b
  at Object.parse (native)
  at /home/rkopka/.atom/packages/terminal-status/lib/command-output-view.coffee:38:26
  at ChildProcess.exithandler (child_process.js:752:5)
  at ChildProcess.emit (events.js:110:17)
  at maybeClose (child_process.js:1013:16)
  at Socket.<anonymous> (child_process.js:1181:11)
  at Socket.emit (events.js:107:17)
  at Pipe.close (net.js:461:12)

Commands

Config

{
  "core": {
    "themes": [
      "seti-ui",
      "seti-monokai"
    ],
    "autoHideMenuBar": true,
    "disabledPackages": [
      "linter-clang",
      "linter"
    ]
  }
}

Installed Packages

# User
autocomplete-plus, v1.1.0
minimap, v3.4.9
project-manager, v1.14.1
seti-monokai, v0.3.1
seti-ui, v0.5.1
terminal-status, v1.3.5

# Dev
No dev packages

/cc @atom/core

Atom.Object.defineProperty.get is deprecated.

atom.workspaceView is no longer available.
In most cases you will not need the view. See the Workspace docs for
alternatives: https://atom.io/docs/api/latest/Workspace.
If you do need the view, please use atom.views.getView(atom.workspace),
which returns an HTMLElement.

Atom.Object.defineProperty.get (C:\Users\pandres95\AppData\Local\atom\app-0.182.0\resources\app\src\atom.js:54:11)
CliStatusView.initialize (C:\Users\pandres95\.atom\packages\terminal-status\lib\cli-status-view.coffee:16:9)

Command line completion

It would be great if we can use shell completion like cd <TAB>.... This will save a lot of typings. Nice work anyway!

Atom.Object.defineProperty.get is deprecated.

atom.workspaceView is no longer available.
In most cases you will not need the view. See the Workspace docs for
alternatives: https://atom.io/docs/api/latest/Workspace.
If you do need the view, please use atom.views.getView(atom.workspace),
which returns an HTMLElement.

Atom.Object.defineProperty.get (C:\Users\pandres95\AppData\Local\atom\app-0.182.0\resources\app\src\atom.js:54:11)
CliStatusView.initialize (C:\Users\pandres95\.atom\packages\terminal-status\lib\cli-status-view.coffee:17:9)

Running npm commands results in odd behaviours

When I run NPM commands like 'npm install' I get bizzare results. It seems like it's in production mode and won't install dev dependencies. If I run 'npm install --dev' I get strange error messages. These commands work fine in the terminal. I'm running npm 2.5.1, and it was just recently installed on my computer (as was Atom and this package). Can anyone else reproduce this, or is it a problem with my setup/installation?

`ls` override is too much

While the ls override is looking fancy and stuff, that's okay. But it stands in the way of me getting something useful done, so please provide for some way to override it.

First of all, doing ls bin doesn't show me the contents of the bin subdirectory. It behaves as if I had typed just ls.

Secondly, I wanted to check whether a shell script I just created has execute permissions. So I typed ls -la bin and I didn't get any useful output. (It seems that executable files are highlighted in green -- but it's not the same thing. I want to see the whole drwxrwxrwx thing.)

PATH(s) and command

first, very nice package.. it's exactly what I was looking for. However, I have issues with paths:

  • changing the path is not recognized (e.g. cd aFolder and then `ls displays the original root folder
  • system 'PATH' variable environnement is not used (e.g. for executables not in classical paths, the output is "spawn ENOENT"

Atom.Object.defineProperty.get is deprecated.

atom.workspaceView is no longer available.
In most cases you will not need the view. See the Workspace docs for
alternatives: https://atom.io/docs/api/latest/Workspace.
If you do need the view, please use atom.views.getView(atom.workspace),
which returns an HTMLElement.

Atom.Object.defineProperty.get (C:\Users\Fabiano\AppData\Local\atom\app-0.179.0\resources\app\src\atom.js:54:11)
CliStatusView.initialize (C:\Users\Fabiano\.atom\packages\terminal-status\lib\cli-status-view.coffee:17:9)

Feature request: Real Terminal (VT100) emulator

For example, like this. And there are probably a few other similar projects which can already do that. Maybe we can just integrate some of them. Someone should research a bit on all available existing such projects.

Uncaught SyntaxError: Unexpected end of input

When i open new Atom Window, when i open a fodler, when i open new terminal status, the developer console is opened and "Uncaught SyntaxError: Unexpected end of input" error is displayed.
schermata 2014-05-28 alle 01 23 38

Atom.Object.defineProperty.get is deprecated.

atom.workspaceView is no longer available.
In most cases you will not need the view. See the Workspace docs for
alternatives: https://atom.io/docs/api/latest/Workspace.
If you do need the view, please use atom.views.getView(atom.workspace),
which returns an HTMLElement.

Atom.Object.defineProperty.get (C:\Users\pandres95\AppData\Local\atom\app-0.182.0\resources\app\src\atom.js:54:11)
Object.activate (C:\Users\pandres95\.atom\packages\terminal-status\lib\cli-status.coffee:10:12)

SSH

Unable to ssh into my dev servers using this terminal plugin. Trying to ssh gives this error "Pseudo-terminal will not be allocated because stdin is not a terminal"

That can be solved by adding flags to the ssh command like so : "ssh -t -t username@server". Unfortunatly I can still not connect as it refuses to ask for authentication like the standard system terminal.

It would be nice if ssh was supported correctly in this plugin to save having yet another window open while developing.

Thanks

Error when opening a new terminal with `cmd+shift+t`

Not sure if this is due to terminal-status, but when I try to open a new terminal with cmd+shift+t it throws the following error:

Uncaught SyntaxError: Unexpected end of input index.html:1
6
Uncaught SyntaxError: Unexpected end of input command-output-view.coffee:38
(anonymous function) command-output-view.coffee:38
exithandler child_process.js:713
EventEmitter.emit events.js:104
maybeClose child_process.js:821
(anonymous function) child_process.js:1038
EventEmitter.emit events.js:101
(anonymous function) net.js:459
4
Uncaught SyntaxError: Unexpected end of input 

If any additional feedback is needed, feel free to post a commend.

An error seems top come up when I install the package too, not sure if they are related:

7
Uncaught SyntaxError: Unexpected end of input index.html:1

Feature Request: copy paste support

I'm on Mac OS X Mavericks, Atom 0.80

I'm unable to copy any terminal output ... would be nice to be able to copy paste text out of there for pasting elsewhere, like a text editor buffer.

Thanks

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.