rails / web-console Goto Github PK
View Code? Open in Web Editor NEWThis project forked from gsamokovarov/web-console
Rails Console on the Browser.
License: MIT License
This project forked from gsamokovarov/web-console
Rails Console on the Browser.
License: MIT License
Continuation of a discussion in #70.
As an aside, I'd love to see the console be available on the "template missing" exception screen. So that probably means turning that screen into using the same setup as any other exception.
It would be great to have the backtrace there. Then you can see where you are calling the missing template, and if it’s programmatically you’re doing it, it’ll help to have the debug console there to figure out what’s up.
It needs to be implemented in Rails itself and backported back with a console attached, at least until #69 is merged.
Because the gemspec uses a blanket glob of files under test/
, any files there will get packaged. In the current release, that includes a 26 MB development.log
, a test.log
half that size, and a 2.4 MB asset cache.
I'm trying out web-console in a Rails engine.
The error page and the console
command work well, showing up the web console.
But when auto-mounting and going to the /console
URL, an error shows up: Spring::MissingApplication
I have added config.web_console.automount = true
to /test/dummy/config/environments/development.rb
I have an on-page console, and bootstrap has some pretty liberal css that really messes up the display
(ignore the thumbs above the console...I just captured too much)
I added this to application.css.scss to override bootstrap's css:
div#console, [class^='console-'] {
padding: 0;
background: none repeat scroll 0% 0% #333;
margin: 0;
font-size: 11px;
color: #1ad027;
overflow: auto;
pre {
border: 0;
white-space: pre-wrap;
}
}
and I ended up with this
I'm not sure what the right approach is here, but I thought I'd throw this out there.
When using Rack::Deflater
the console doesn't appear. Obviously cause it is trying to attach itself to a gzipped body.
The solution is to include Rack::Deflater
as early as possible
#config/application.rb
class Application < Rails::Application
config.middleware.insert(0, Rack::Deflater)
end
probably should be noted in FAQ section
Rails 4.2, web_console 2.0.0 if exception occures, IP whitelist is ignored and console is displayed no matter the user IP.
There's a second initialization of console_session variable, not wrapped in "if allowed?"
In lib/action_dispatch/debug_exceptions.rb (around line 54):
if env['action_dispatch.show_detailed_exceptions']
request = Request.new(env)
if allowed?(request)
console_session = WebConsole::REPLSession.create(
binding: wrapper.exception.bindings.first,
binding_stack: exception.bindings
)
end
traces = wrapper.traces
extract_sources = wrapper.extract_sources
console_session = WebConsole::REPLSession.create(
binding: exception.bindings.first,
binding_stack: exception.bindings
)
I think most of the people are confused with the terminal part of Web Console. As much as I love web-console 1.0 and its quirkiness I think it gotta go into its own project, if it is to be developed any further.
Its hard do document of the different aspects of Web Console as is. Some of the settings are specific only to the terminal part, other are affecting all the consoles. Also, with the recent security fixes, if the terminal isn't run on a long-polling capable server (most of the development ones we use aren't) its noticeably slower.
People also weren't using web-console 1.0
that much. Some numbers from RubyGems to back it up:
Version | Downloads |
---|---|
2.0.0.beta4 | 22,241 |
2.0.0.beta3 | 13,804 |
2.0.0.beta2 | 1,481 |
2.0.0.beta1 | 111 |
1.0.4 | 2,787 |
1.0.3 | 978 |
1.0.2 | 486 |
1.0.1 | 486 |
1.0.0 | 454 |
I'm sure that the majority of the version 2 downloads are coming from Rails 4.2 beta installs, but nevertheless, I don't wanna introduce this burden to all the installation, if its not useful. So I propose to move it to an own gem and mention it in the README, if someone looks for the old functionality.
If you guys think its too late to pull it out now, we can do it for version 3, otherwise, if I have @dhh blessing I can remove it for 2.0 stable.
Hi, we use 3 environments - development, beta and production - and I want this console to run in beta env. How can I allow it?
Hi
If I have web-console on every page, it steals focus. Is it possible for the focus to be defaulted (or configurable) to the page?
Has this been discussed elsewhere?
People have showed an interest to be able to close a console, once rendered from a view or a controller action. Let's prototype an UI. I would like to avoid a key combination, so it doesn't collide with the currently running application.
On an error page, when the console buffer exceeds the size of the frame, shrinking it with the resize bar anchors it to the line currently at the top of the frame, when it should really be anchored to the bottom.
This means that, for instance, if you fill the console buffer with a bunch of stuff (using methods
usually works), drag the resize bar up to make the frame bigger, then drag it down again to its previous size, you'll be in a different position than you were before, without doing any scrolling. Basically the behavior is inconsistent between dragging up and dragging down. Occurs in Chrome, Firefox, and IE11.
There's some other bugs I noticed, but seeing as this is in beta and under active development, I assume those will be fixed in short order. However I thought this usability issue had the potential to be overlooked.
Trying to access http://127.0.0.1:3000/console or http://localhost:3000/console I get a 401 status code from Puma server (also in Webrick)
Started GET "/console" for ::1 at 2014-09-07 17:37:40 +0200
Processing by WebConsole::ConsoleSessionsController#index as HTML
Rendered text template (0.0ms)
Filter chain halted as :prevent_unauthorized_requests! rendered or redirected
Completed 401 Unauthorized in 3ms (Views: 0.6ms | ActiveRecord: 0.0ms)
::1 - - [07/Sep/2014:17:37:40 +0200] "GET / HTTP/1.1" 401 - 0.0133
Seen the server request and response I guess that ::1 l0 is not been translated to 127.0.0.1 as first 127.0.0.0/8 loopback IP. Using OS X Yosemite Preview7, Ruby 2.1.2, Rails4.2.0.beta1 and it's possible that the IPv6 notation is causing this problem.
On application.rb I have:
config.web_console.whitelisted_ips = %w( 127.0.0.1 )
development.rb:
config.web_console.automount = true
I see on the engine.rb that the defaultwhitelisted_ip is 127.0.0.1. I tried also adding my own IP, and the full network with a mask but I always get the 401.
Sure that I'm missing something. Any ideas.
I suppose this is kind of a ruby bug more than web-console but anyway...
When typing just "c" in the console i get a segfault. Same thing happens with just "l" so I assume it's to do with debugger commands
Rails: 4.2.0
Web-console: master (3775fe0)
Ruby: 2.1.3p242
partial trace:
Started PUT "/console/repl_sessions/c17abb55e84469f3590b438f3042ae73" for 127.0.0.1 at 2015-02-27 17:04:04 +0000
/Users/admin/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/binding_of_caller-0.7.2/lib/binding_of_caller/mri2.rb:21: [BUG] Segmentation fault at 0x00000000000090
ruby 2.1.3p242 (2014-09-19 revision 47630) [x86_64-darwin13.0]
-- Crash Report log information --------------------------------------------
See Crash Report log file under the one of following:
* ~/Library/Logs/CrashReporter
* /Library/Logs/CrashReporter
* ~/Library/Logs/DiagnosticReports
* /Library/Logs/DiagnosticReports
for more details.
-- Control frame information -----------------------------------------------
c:0073 p:---- s:0391 e:000390 CFUNC :open
c:0072 p:0021 s:0388 E:000a90 METHOD /Users/admin/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/binding_of_caller-0.7.2/lib/binding_of_caller/mri2.rb:21
c:0071 p:0046 s:0384 E:0025e0 METHOD /Users/admin/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/bundler/gems/web-console-3775fe0637d5/lib/web_console/integration/ [FINISH]
c:0070 p:0005 s:0380 e:000379 EVAL /Users/admin/git/my_app/app/views/layouts/application.html.haml:12 [FINISH]
c:0069 p:---- s:0378 e:000377 CFUNC :eval
c:0068 p:0013 s:0374 e:000372 METHOD /Users/admin/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/bundler/gems/web-console-3775fe0637d5/lib/web_console/evaluator.rb
c:0067 p:0011 s:0368 e:000367 METHOD /Users/admin/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/bundler/gems/web-console-3775fe0637d5/lib/web_console/session.rb:4
c:0066 p:0062 s:0364 e:000362 METHOD /Users/admin/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/bundler/gems/web-console-3775fe0637d5/lib/web_console/middleware.r
c:0065 p:0056 s:0354 e:000353 METHOD /Users/admin/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/bundler/gems/web-console-3775fe0637d5/lib/web_console/middleware.r
c:0064 p:0098 s:0340 e:000339 METHOD /Users/admin/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/newrelic_rpm-3.10.0.279/lib/new_relic/agent/instrumentation/m
c:0063 p:0011 s:0332 e:000331 METHOD /Users/admin/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/actionpack-4.2.0/lib/action_dispatch/middleware/show_exceptio
c:0062 p:0098 s:0327 e:000326 METHOD /Users/admin/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/newrelic_rpm-3.10.0.279/lib/new_relic/agent/instrumentation/m
c:0061 p:0076 s:0319 E:0001f8 METHOD /Users/admin/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/railties-4.2.0/lib/rails/rack/logger.rb:38
c:0060 p:0011 s:0312 e:000311 BLOCK /Users/admin/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/railties-4.2.0/lib/rails/rack/logger.rb:20
c:0059 p:0007 s:0310 e:000309 BLOCK /Users/admin/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/activesupport-4.2.0/lib/active_support/tagged_logging.rb:68
c:0058 p:0016 s:0308 e:000307 METHOD /Users/admin/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/activesupport-4.2.0/lib/active_support/tagged_logging.rb:26
c:0057 p:0011 s:0303 e:000302 METHOD /Users/admin/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/activesupport-4.2.0/lib/active_support/tagged_logging.rb:68
c:0056 p:0042 s:0299 e:000298 METHOD /Users/admin/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/railties-4.2.0/lib/rails/rack/logger.rb:20
c:0055 p:0098 s:0294 e:000293 METHOD /Users/admin/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/newrelic_rpm-3.10.0.279/lib/new_relic/agent/instrumentation/m
c:0054 p:0032 s:0286 e:000285 METHOD /Users/admin/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/actionpack-4.2.0/lib/action_dispatch/middleware/request_id.rb
c:0053 p:0098 s:0282 e:000281 METHOD /Users/admin/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/newrelic_rpm-3.10.0.279/lib/new_relic/agent/instrumentation/m
c:0052 p:0091 s:0274 e:000273 METHOD /Users/admin/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rack-1.6.0/lib/rack/methodoverride.rb:22
c:0051 p:0098 s:0269 e:000268 METHOD /Users/admin/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/newrelic_rpm-3.10.0.279/lib/new_relic/agent/instrumentation/m
c:0050 p:0024 s:0261 e:000260 METHOD /Users/admin/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rack-1.6.0/lib/rack/runtime.rb:18
OS = Win 7 x64 Pro
I'm using railsinstaller
Rails 3.2.14
ruby 2.0.0p195 (2013-05-14) [i386-mingw32]
Bundler version 1.5.3
group :development, :beta do
gem 'better_errors'
gem "binding_of_caller"
gem 'meta_request'
gem 'web-console-rails3'
end
And I want to start server...
C:\Sites\skeletor>rails s
C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/activesupport- 3.2.14/lib/active_support/dependencies.rb:251:in `require': cannot load such file -- pty (LoadError)
from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/activesupport-3.2.14/lib/active_support/dependencies.rb:251:in `block in require'
from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/activesupport-3.2.14/lib/active_support/dependencies.rb:236:in `load_dependency'
from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/activesupport-3.2.14/lib/active_support/dependencies.rb:251:in `require'
from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/web-console-rails3-1.0.4/lib/web_console/slave.rb:1:in `<top (required)>'
from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/activesupport-3.2.14/lib/active_support/dependencies.rb:251:in `require'
from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/activesupport-3.2.14/lib/active_support/dependencies.rb:251:in `block in require'
from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/activesupport-3.2.14/lib/active_support/dependencies.rb:236:in `load_dependency'
from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/activesupport-3.2.14/lib/active_support/dependencies.rb:251:in `require'
from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/web-console-rails3-1.0.4/lib/web_console.rb:4:in `<top (required)>'
from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/web-console-rails3-1.0.4/lib/web-console-rails3.rb:1:in `require'
from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/web-console-rails3-1.0.4/lib/web-console-rails3.rb:1:in `<top (required)>'
from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/bundler-1.5.3/lib/bundler/runtime.rb:76:in `require'
from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/bundler-1.5.3/lib/bundler/runtime.rb:76:in `block (2 levels) in require'
from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/bundler-1.5.3/lib/bundler/runtime.rb:72:in `each'
from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/bundler-1.5.3/lib/bundler/runtime.rb:72:in `block in require'
from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/bundler-1.5.3/lib/bundler/runtime.rb:61:in `each'
from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/bundler-1.5.3/lib/bundler/runtime.rb:61:in `require'
from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/bundler-1.5.3/lib/bundler.rb:131:in `require'
from C:/Sites/skeletor/config/application.rb:15:in `<top (required)>'
from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/railties-3.2.14/lib/rails/commands.rb:53:in `require'
from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/railties-3.2.14/lib/rails/commands.rb:53:in `block in <top (required)>'
from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/railties-3.2.14/lib/rails/commands.rb:50:in `tap'
from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/railties-3.2.14/lib/rails/commands.rb:50:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
I created an empty Rails 4.2 application using rails new.
I access http://localhost:3000/a to get a 404 error and open the console.
I can type anything but nothing happens when I press the return key. It's completely ignored and the cursor keeps staying on the same line.
I tested that with Firefox 34.0 and Opera 26.0 on Ubuntu 12.04.5, Ruby 2.1.0 and Ruby 2.2.0.
Another possibly related strange behaviour is that no console appears if I add console
into a controller (rails g controller welcome, action index) or <%= console %>
in a view (welcome/index.html.erb).
Hey, what I've needed a million times in the past was a production console to fix issues with a quick command when I was away from my computer.
How safe do you consider this console be for production use? My applications already have an admin interface that allows me to administrate the database (and, if I wanted to, destroy all records).
If I mount the console protected by both an administrator session, an additional http password (of course it's all SSL encrypted), what additional risks am I exposing myself to as compared to my admin interface?
I understand that an attacker with access to my admin interface, may be able to use the console to gain access to the machine. Is there anything else to consider?
Whenever I get an exception on Rails 4.2, the keyboard immediately shifts to web console. While this might be useful when opening google, for me it is terribly annoying in this case because usually I just skim over the exception, know what to fix, skip to the editor, fix it and try to refresh, only to realize that ctrl+r does not work anymore. I think this is the more common case opposed to wanting to dive into the live console right away, so I'd suggest to remove the autofocus behaviour.
It's legal Ruby code, not sure why it's hitting SyntaxError in web-console.
>> @machines.map(&:storage)
!! #<SyntaxError: /home/nowaker/projekty/ruby/virtkick-webapp/app/controllers/machine_controller.rb:6: syntax error, unexpected end-of-input, expecting ')' @machines.map( ^>
Normal console:
2.1.2 :003 > @machines = Machine.all; nil
=> nil
2.1.2 :004 > @machines.map(&:storage)
=> [[#<Machine::Storage:0x00000004b08c50 @attributes={"allocation"=>3485696, "capacity"=>21474836480, "type"=>0, "format"=>"qcow2", "path"=>"/var/lib/libvirt/images/test.img", "image"=>"test.img", "storage"=>"default", "dev"=>"vda"}, @prefix_options={}, @persisted=true>]]
I'd like to style the console from being positioned 'fixed' to being positioned 'relative'. I have tried to pull in styles as mentioned in the ReadMe but style.css is never picked up, or does not overwrite the default styles.
Rails 4.2
With out the gem, the routing errors are displayed as follows:
With the gem, the routing errors are displayed as below:
The log file shows the following error
ActionController::RoutingError (No route matches [GET] "/ahhaha"):
web-console (2.0.0.beta3) lib/action_dispatch/debug_exceptions.rb:22:in `middleware_call'
web-console (2.0.0.beta3) lib/action_dispatch/debug_exceptions.rb:13:in `call'
actionpack (4.1.4) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
railties (4.1.4) lib/rails/rack/logger.rb:38:in `call_app'
railties (4.1.4) lib/rails/rack/logger.rb:20:in `block in call'
activesupport (4.1.4) lib/active_support/tagged_logging.rb:68:in `block in tagged'
activesupport (4.1.4) lib/active_support/tagged_logging.rb:26:in `tagged'
activesupport (4.1.4) lib/active_support/tagged_logging.rb:68:in `tagged'
railties (4.1.4) lib/rails/rack/logger.rb:20:in `call'
actionpack (4.1.4) lib/action_dispatch/middleware/request_id.rb:21:in `call'
rack (1.5.2) lib/rack/methodoverride.rb:21:in `call'
rack (1.5.2) lib/rack/runtime.rb:17:in `call'
rack-rewrite (1.5.0) lib/rack/rewrite.rb:24:in `call'
activesupport (4.1.4) lib/active_support/cache/strategy/local_cache_middleware.rb:26:in `call'
Is it possible just to hide those logs:
Rendered /Users/gangam/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/web-console-2.1.2/lib/web_console/templates/style.css.erb within layouts/inlined_string (0.4ms)
This is what I get when I try to use it. I created a new application with rails new empty -O -T --skip-bundle
. The docker way didn't work for me either since some library header seemed to be missing... I'm trying this on a Debian unstable box.
where is support for rake routes in browser with bundled rails web-console
This probably goes hand-in-hand with #82.
Specifically, since turbo-links is enabled on the default stack, we should make sure we don't keep any event listeners around on navigation or when the user closes the console.
If possible, we should also try to attach the event listeners on our container, instead of on the whole document. That way, the hot keys will only be active when the console is focused and it reduces the chance of leaking listeners on navigation.
I have this on my rails configuration
config.web_console.whitelisted_ips = '10.11.50.22'
which works as supposed, but i can't run test unless I comment it.
So:
shell> rspec
I get:
undefined method `web_console' for #Rails::Application::Configuration:0x00000002305190 (NoMethodError)
I opened an issue on rspec as well.
I got segmentation fault when I enter an instance variable, let's say @user which is available in that controller. <%= console %>
is called inside payment.html.erb
ruby
def payment
@user = current_user
end
calling `@user` works but when I start calling `user` which does not return me a `nil` but an segmentation fault and killed my server process. Btw my database is mongoid, does that causes the error? Or web console only support ActiveRecord?
Web console doesn't show up in Firefox but it's working in Chrome. What are the possibilities that it's not rendering in Firefox?
``` ruby```
/Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/binding_of_caller-0.7.2/lib/binding_of_caller/mri2.rb:21: [BUG] Segmentation fault at 0x00000000000000
ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-darwin14.0]
-- Crash Report log information --------------------------------------------
See Crash Report log file under the one of following:
* ~/Library/Logs/CrashReporter
* /Library/Logs/CrashReporter
* ~/Library/Logs/DiagnosticReports
* /Library/Logs/DiagnosticReports
for more details.
-- Control frame information -----------------------------------------------
c:0033 p:---- s:0195 e:000194 CFUNC :open
c:0032 p:0021 s:0192 E:000af0 METHOD /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/binding_of_caller-0.7.2/lib/binding_of_caller/mri2.rb:21
c:0031 p:0046 s:0188 E:002170 METHOD /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/web-console-2.1.1/lib/web_console/integration/cruby.rb:28 [FINISH]
c:0030 p:0005 s:0184 e:000183 EVAL /Users/yoonwaiyan/Documents/workspace/zorage/app/views/dashboard/schedule.html.erb:112 [FINISH]
c:0029 p:---- s:0182 e:000181 CFUNC :eval
c:0028 p:0013 s:0178 e:000176 METHOD /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/web-console-2.1.1/lib/web_console/evaluator.rb:18
c:0027 p:0011 s:0172 e:000171 METHOD /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/web-console-2.1.1/lib/web_console/session.rb:49
c:0026 p:0062 s:0168 e:000166 METHOD /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/web-console-2.1.1/lib/web_console/middleware.rb:90
c:0025 p:0056 s:0158 e:000157 METHOD /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/web-console-2.1.1/lib/web_console/middleware.rb:32
c:0024 p:0011 s:0144 e:000143 METHOD /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/actionpack-4.1.7/lib/action_dispatch/middleware/show_exception
c:0023 p:0081 s:0139 e:000138 METHOD /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/railties-4.1.7/lib/rails/rack/logger.rb:38
c:0022 p:0011 s:0132 e:000131 BLOCK /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/railties-4.1.7/lib/rails/rack/logger.rb:20
c:0021 p:0007 s:0130 e:000129 BLOCK /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.1.7/lib/active_support/tagged_logging.rb:68
c:0020 p:0016 s:0128 e:000127 METHOD /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.1.7/lib/active_support/tagged_logging.rb:26
c:0019 p:0011 s:0123 e:000122 METHOD /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.1.7/lib/active_support/tagged_logging.rb:68
c:0018 p:0042 s:0119 e:000118 METHOD /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/railties-4.1.7/lib/rails/rack/logger.rb:20
c:0017 p:0080 s:0114 e:000113 METHOD /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/quiet_assets-1.0.3/lib/quiet_assets.rb:23
c:0016 p:0032 s:0110 e:000109 METHOD /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/actionpack-4.1.7/lib/action_dispatch/middleware/request_id.rb:
c:0015 p:0075 s:0106 e:000105 METHOD /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rack-1.5.2/lib/rack/methodoverride.rb:21
c:0014 p:0024 s:0101 e:000100 METHOD /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rack-1.5.2/lib/rack/runtime.rb:17
c:0013 p:0035 s:0092 e:000091 METHOD /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.1.7/lib/active_support/cache/strategy/local_ca
c:0012 p:0056 s:0087 e:000086 METHOD /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rack-1.5.2/lib/rack/lock.rb:17
c:0011 p:0094 s:0080 e:000079 METHOD /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/actionpack-4.1.7/lib/action_dispatch/middleware/static.rb:84
c:0010 p:0011 s:0074 e:000073 METHOD /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rack-1.5.2/lib/rack/sendfile.rb:112
c:0009 p:0060 s:0064 e:000063 METHOD /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/railties-4.1.7/lib/rails/engine.rb:514
c:0008 p:0039 s:0060 e:000059 METHOD /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/railties-4.1.7/lib/rails/application.rb:144
c:0007 p:0056 s:0056 e:000055 METHOD /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rack-1.5.2/lib/rack/lock.rb:17
c:0006 p:0011 s:0049 e:000048 METHOD /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rack-1.5.2/lib/rack/content_length.rb:14
c:0005 p:0284 s:0040 e:000039 METHOD /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rack-1.5.2/lib/rack/handler/webrick.rb:60
c:0004 p:0185 s:0028 e:000027 METHOD /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/2.1.0/webrick/httpserver.rb:138
c:0003 p:0310 s:0018 E:000c98 METHOD /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/2.1.0/webrick/httpserver.rb:94
c:0002 p:0089 s:0007 E:000d10 BLOCK /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/2.1.0/webrick/server.rb:295 [FINISH]
c:0001 p:---- s:0002 e:000001 TOP [FINISH]
/Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/2.1.0/webrick/server.rb:295:in `block in start_thread'
/Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/2.1.0/webrick/httpserver.rb:94:in `run'
/Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/2.1.0/webrick/httpserver.rb:138:in `service'
/Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rack-1.5.2/lib/rack/handler/webrick.rb:60:in `service'
/Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rack-1.5.2/lib/rack/content_length.rb:14:in `call'
/Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rack-1.5.2/lib/rack/lock.rb:17:in `call'
/Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/railties-4.1.7/lib/rails/application.rb:144:in `call'
/Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/railties-4.1.7/lib/rails/engine.rb:514:in `call'
/Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rack-1.5.2/lib/rack/sendfile.rb:112:in `call'
/Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/actionpack-4.1.7/lib/action_dispatch/middleware/static.rb:84:in `call'
/Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rack-1.5.2/lib/rack/lock.rb:17:in `call'
/Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.1.7/lib/active_support/cache/strategy/local_cache_middleware.rb:26:in `call'
/Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rack-1.5.2/lib/rack/runtime.rb:17:in `call'
/Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rack-1.5.2/lib/rack/methodoverride.rb:21:in `call'
/Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/actionpack-4.1.7/lib/action_dispatch/middleware/request_id.rb:21:in `call'
/Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/quiet_assets-1.0.3/lib/quiet_assets.rb:23:in `call_with_quiet_assets'
/Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/railties-4.1.7/lib/rails/rack/logger.rb:20:in `call'
/Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.1.7/lib/active_support/tagged_logging.rb:68:in `tagged'
/Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.1.7/lib/active_support/tagged_logging.rb:26:in `tagged'
/Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.1.7/lib/active_support/tagged_logging.rb:68:in `block in tagged'
/Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/railties-4.1.7/lib/rails/rack/logger.rb:20:in `block in call'
/Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/railties-4.1.7/lib/rails/rack/logger.rb:38:in `call_app'
/Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/actionpack-4.1.7/lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
/Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/web-console-2.1.1/lib/web_console/middleware.rb:32:in `call'
/Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/web-console-2.1.1/lib/web_console/middleware.rb:90:in `update_repl_session'
/Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/web-console-2.1.1/lib/web_console/session.rb:49:in `eval'
/Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/web-console-2.1.1/lib/web_console/evaluator.rb:18:in `eval'
/Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/web-console-2.1.1/lib/web_console/evaluator.rb:18:in `eval'
/Users/yoonwaiyan/Documents/workspace/zorage/app/views/dashboard/schedule.html.erb:112:in `_app_views_dashboard_schedule_html_erb___1804175559776679697_70328726489300'
/Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/web-console-2.1.1/lib/web_console/integration/cruby.rb:28:in `set_backtrace_with_binding_of_caller'
/Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/binding_of_caller-0.7.2/lib/binding_of_caller/mri2.rb:21:in `callers'
/Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/binding_of_caller-0.7.2/lib/binding_of_caller/mri2.rb:21:in `open'
-- C level backtrace information -------------------------------------------
0 ruby 0x0000000101fe2780 rb_vm_bugreport + 144
1 ruby 0x0000000101e956e1 report_bug + 305
2 ruby 0x0000000101e955a4 rb_bug + 180
3 ruby 0x0000000101f652ac sigsegv + 156
4 libsystem_platform.dylib 0x00007fff92c62f1a _sigtramp + 26
5 ruby 0x0000000101fd59ef vm_make_env_object + 31
6 ??? 0x0000000105aaf650 0x0 + 4390057552
-- Other runtime information -----------------------------------------------
* Loaded script: bin/rails
* Loaded features:
0 enumerator.so
1 /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/2.1.0/x86_64-darwin14.0/enc/encdb.bundle
2 /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/2.1.0/x86_64-darwin14.0/enc/trans/transdb.bundle
3 /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/2.1.0/x86_64-darwin14.0/rbconfig.rb
4 /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/compatibility.rb
5 /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/defaults.rb
6 /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/deprecate.rb
7 /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/errors.rb
8 /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/version.rb
9 /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/requirement.rb
10 /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/platform.rb
11 /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/basic_specification.rb
...
442 /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.1.7/lib/active_support/core_ext/enumerable.rb
443 /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/actionview-4.1.7/lib/action_view/helpers/active_model_helper.rb
444 /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/actionview-4.1.7/lib/action_view/helpers/asset_url_helper.rb
-3.4.1/lib/devise/delegator.rb
...
2290 /Users/yoonwaiyan/Documents/workspace/zorage/config/environment.rb
2291 /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/railties-4.1.7/lib/rails/backtrace_cleaner.rb
2292 /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.1.7/lib/active_support/message_encryptor.rb
2293 /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/actionview-4.1.7/lib/action_view/renderer/renderer.rb
2294 /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/actionview-4.1.7/lib/action_view/flows.rb
2295 /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/actionview-4.1.7/lib/action_view/renderer/abstract_renderer.rb
2296 /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/actionview-4.1.7/lib/action_view/renderer/template_renderer.rb
2297 /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/actionview-4.1.7/lib/action_view/buffers.rb
2298 /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/actionview-4.1.7/lib/action_view/renderer/partial_renderer.rb
2299 /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/devise-3.4.1/lib/devise/parameter_sanitizer.rb
2300 /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/actionview-4.1.7/lib/action_view/helpers/tags.rb
2301 /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/actionview-4.1.7/lib/action_view/helpers/tags/base.rb
2302 /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/actionview-4.1.7/lib/action_view/helpers/tags/text_field.rb
2303 /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/actionview-4.1.7/lib/action_view/helpers/tags/email_field.rb
2304 /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activemodel-4.1.7/lib/active_model/errors.rb
2305 /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/actionview-4.1.7/lib/action_view/helpers/tags/password_field.rb
2306 /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rack-1.5.2/lib/rack/multipart/parser.rb
2307 /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/devise-3.4.1/lib/devise/parameter_filter.rb
2308 /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/bundler/gems/state_machine-88e45a1b1622/lib/state_machine/integrations/active_model/observer.rb
2309 /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/bundler/gems/state_machine-88e45a1b1622/lib/state_machine/integrations/active_model/observer_update.rb
2310 /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/actionview-4.1.7/lib/action_view/template/error.rb
2311 /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.1.7/lib/active_support/number_helper/number_converter.rb
2312 /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.1.7/lib/active_support/number_helper/number_to_currency_converter.rb
2313 /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.1.7/lib/active_support/number_helper/number_to_rounded_converter.rb
2314 /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.1.7/lib/active_support/number_helper/number_to_delimited_converter.rb
2315 /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/actionview-4.1.7/lib/action_view/helpers/tags/checkable.rb
2316 /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/actionview-4.1.7/lib/action_view/helpers/tags/check_box.rb
2317 /Users/yoonwaiyan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/actionview-4.1.7/lib/action_view/helpers/tags/hidden_field.rb
[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html
[1] 64820 abort rails s -p 3001
First I got 500 errors with no stacktrace and then I added 0.0.0.0 to whitelisted_ips (it seems to be detecting the request from IPV6 ::1) and the error changed to 404 and now I get a stacktrace:
Started PUT "/console/repl_sessions/b106fd6a16f9b78a51dab5b770f9d13d" for ::1 at 2014-12-22 17:32:57 -0200
ActionController::RoutingError (No route matches [PUT] "/console/repl_sessions/b106fd6a16f9b78a51dab5b770f9d13d"):
web-console (2.0.0) lib/action_dispatch/debug_exceptions.rb:22:in `middleware_call'
web-console (2.0.0) lib/action_dispatch/debug_exceptions.rb:13:in `call'
actionpack (4.2.0) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
railties (4.2.0) lib/rails/rack/logger.rb:38:in `call_app'
railties (4.2.0) lib/rails/rack/logger.rb:20:in `block in call'
activesupport (4.2.0) lib/active_support/tagged_logging.rb:68:in `block in tagged'
activesupport (4.2.0) lib/active_support/tagged_logging.rb:26:in `tagged'
activesupport (4.2.0) lib/active_support/tagged_logging.rb:68:in `tagged'
railties (4.2.0) lib/rails/rack/logger.rb:20:in `call'
actionpack (4.2.0) lib/action_dispatch/middleware/request_id.rb:21:in `call'
rack (1.6.0) lib/rack/methodoverride.rb:22:in `call'
rack (1.6.0) lib/rack/runtime.rb:18:in `call'
activesupport (4.2.0) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
rack (1.6.0) lib/rack/lock.rb:17:in `call'
actionpack (4.2.0) lib/action_dispatch/middleware/static.rb:113:in `call'
rack (1.6.0) lib/rack/sendfile.rb:113:in `call'
railties (4.2.0) lib/rails/engine.rb:518:in `call'
railties (4.2.0) lib/rails/application.rb:164:in `call'
rack (1.6.0) lib/rack/content_length.rb:15:in `call'
puma (2.9.1) lib/puma/server.rb:490:in `handle_request'
puma (2.9.1) lib/puma/server.rb:361:in `process_client'
puma (2.9.1) lib/puma/server.rb:254:in `block in run'
puma (2.9.1) lib/puma/thread_pool.rb:92:in `call'
puma (2.9.1) lib/puma/thread_pool.rb:92:in `block in spawn_thread'
Rendered /home/rodrigo/.rvm/gems/ruby-2.1.5/gems/web-console-2.0.0/lib/action_dispatch/templates/rescues/_trace.text.erb (0.4ms)
Rendered /home/rodrigo/.rvm/gems/ruby-2.1.5/gems/web-console-2.0.0/lib/action_dispatch/templates/rescues/routing_error.text.erb (3.0ms)
Any ideas?
Hi,
is it possible you could put a link to the binding of caller repo in the README? Primarily for promulgating the use of binding of caller into other interesting projects, and also to let interested parties know about some of the technology that underlies the webconsole featuers,
Thanks!
John
A couple of things got out of hand for 2.0 stable. README.markdown and CHANGELOG.markdown are one of them as well. Let's get them in shape again!
I'm creating this issue here so I can track the progress and give visibility to the community. If you wanna help out, you are quite welcome to :)
<% console %>
view helper.console
controller helper.Even the release notes need some love, IMO. We turned the project around during the summers. We can describe why and how we did that.
i tested this both on
gem 'web-console', '~> 2.0.0.beta3'
and
gem 'web-console', '~> 2.0.0.beta2'
I tried to input a variable which is not defined, twice, at the top of the console, before anything else
>> this_is_undefined
!! #<NameError: undefined local variable or method `this_is_undefined' for #<#<Class:0xba78886c>:0xba786a80>>
>> this_is_too
it does nothing, and ruby crashes
this is the long log, something like this: http://pastebin.com/7icd33H7
this one also crashes
>> @balloon
=> 5
>> this_is_not_defined
!! #<NameError: undefined local variable or method `this_is_not_defined' for #<#<Class:0xba6f3b90>:0xba6f1dcc>>
>> another_one
this one crashes too
>> cookies
=> #<ActionDispatch::Cookies::CookieJar:0xbb99dc00 @key_generator=#<ActiveSupport::CachingKeyGenerator:0xbbbba0c4 @key_generator=#<ActiveSupport::KeyGenerator:0xbbbba0d8 @secret="a183316a8015fa6feff7153f557902d5a3896ba7f57a95a7ee873e481234e9e2b3211c24399882cf15fd1f9a6d4158176cbbe7e0583a1c905670f6cf91b9012d", @iterations=1000>, @cache_keys=#<ThreadSafe::Cache:0xbbbba0b0 @backend={"encrypted cookie64"=>"v_\xC6\x8D\xA9j\xADf\x93\xC0\x13\v\x05t+\xD4\x85\xAB\xFD\xD9\x9B\xB1\x80`WUk\x9AK}\xE7\x80\xC2\x8A?\xE1\x8E\xAA\x95\xCB\xDC\xFC\x9B\xDE\x04\xCDR\xB5\x03\xFA\xF4\xE7\ae_#\xDA\n\x1A2\xF2\x16\x99\x03", "signed encrypted cookie64"=>"\xB9\x0F\x96\xCF%\xA5\x94\xFF\xDA1Q\xDDKZsr\xE4\by\x8E|1\xFD\xDC\xE7\xAEq\x15\xF4\x16\xCA\x84@$\x0F\xFA\xD9\x8B\xAD:b\x053\xEB\xBF^HE\x9E\xBB\x8E\x19\x92\xC2\xEC\xEC\xD0\x1D\xD1\x17\xD3\xB6~\x1E"}, @default_proc=nil>>, @set_cookies={"request_method"=>{:value=>"GET", :path=>"/"}, "_inventory_session"=>{:value=>"dnJTUG5xUWJpZENOU2J4UTBqUmhGeERqd3l5bFY3Z1lnTzVpaW9pWjYva0h4NWJYTURreTc1ODVlVDZKbjhPT0pjSnYxZFpvRUJhQ0lLVFEzT3BDUThwcGhJZ1lBYlpSRFNoay8vR2hXM2ZnV3pkN3hrNjcwcE9lQjBmUUFWbmlJRUkzZUJ2U1pRQk0rMGFVTWJoaUNRPT0tLWJ1cEJIR0lFcGFXSDc1UHFCMUVHVUE9PQ==--1bfe115c35614752c12a3a8779973e27fae8db37", :path=>"/", :domain=>nil, :expire_after=>nil, :secure=>false, :httponly=>true, :defer=>false, :renew=>false, :id=>"e8f4afaaaf562d038fcbe8e42c0dbd96"}}, @delete_cookies={}, @host="localhost", @secure=false, @options={:signed_cookie_salt=>"signed cookie", :encrypted_cookie_salt=>"encrypted cookie", :encrypted_signed_cookie_salt=>"signed encrypted cookie", :secret_token=>nil, :secret_key_base=>"a183316a8015fa6feff7153f557902d5a3896ba7f57a95a7ee873e481234e9e2b3211c24399882cf15fd1f9a6d4158176cbbe7e0583a1c905670f6cf91b9012d", :upgrade_legacy_signed_cookies=>false, :serializer=>:json, :digest=>nil}, @cookies={"_inventory_session"=>"dnJTUG5xUWJpZENOU2J4UTBqUmhGeERqd3l5bFY3Z1lnTzVpaW9pWjYva0h4NWJYTURreTc1ODVlVDZKbjhPT0pjSnYxZFpvRUJhQ0lLVFEzT3BDUThwcGhJZ1lBYlpSRFNoay8vR2hXM2ZnV3pkN3hrNjcwcE9lQjBmUUFWbmlJRUkzZUJ2U1pRQk0rMGFVTWJoaUNRPT0tLWJ1cEJIR0lFcGFXSDc1UHFCMUVHVUE9PQ==--1bfe115c35614752c12a3a8779973e27fae8db37", "request_method"=>"GET"}, @committed=false, @encrypted=#<ActionDispatch::Cookies::EncryptedCookieJar:0xbb99d7a0 @parent_jar=#<ActionDispatch::Cookies::CookieJar:0xbb99dc00 ...>, @options={:signed_cookie_salt=>"signed cookie", :encrypted_cookie_salt=>"encrypted cookie", :encrypted_signed_cookie_salt=>"signed encrypted cookie", :secret_token=>nil, :secret_key_base=>"a183316a8015fa6feff7153f557902d5a3896ba7f57a95a7ee873e481234e9e2b3211c24399882cf15fd1f9a6d4158176cbbe7e0583a1c905670f6cf91b9012d", :upgrade_legacy_signed_cookies=>false, :serializer=>:json, :digest=>nil}, @encryptor=#<ActiveSupport::MessageEncryptor:0xbb99a640 @secret="v_\xC6\x8D\xA9j\xADf\x93\xC0\x13\v\x05t+\xD4\x85\xAB\xFD\xD9\x9B\xB1\x80`WUk\x9AK}\xE7\x80\xC2\x8A?\xE1\x8E\xAA\x95\xCB\xDC\xFC\x9B\xDE\x04\xCDR\xB5\x03\xFA\xF4\xE7\ae_#\xDA\n\x1A2\xF2\x16\x99\x03", @sign_secret="\xB9\x0F\x96\xCF%\xA5\x94\xFF\xDA1Q\xDDKZsr\xE4\by\x8E|1\xFD\xDC\xE7\xAEq\x15\xF4\x16\xCA\x84@$\x0F\xFA\xD9\x8B\xAD:b\x053\xEB\xBF^HE\x9E\xBB\x8E\x19\x92\xC2\xEC\xEC\xD0\x1D\xD1\x17\xD3\xB6~\x1E", @cipher="aes-256-cbc", @verifier=#<ActiveSupport::MessageVerifier:0xbb99a5f0 @secret="\xB9\x0F\x96\xCF%\xA5\x94\xFF\xDA1Q\xDDKZsr\xE4\by\x8E|1\xFD\xDC\xE7\xAEq\x15\xF4\x16\xCA\x84@$\x0F\xFA\xD9\x8B\xAD:b\x053\xEB\xBF^HE\x9E\xBB\x8E\x19\x92\xC2\xEC\xEC\xD0\x1D\xD1\x17\xD3\xB6~\x1E", @digest="SHA1", @serializer=ActiveSupport::MessageEncryptor::NullSerializer>, @serializer=ActiveSupport::MessageEncryptor::NullSerializer>>, @signed_or_encrypted=#<ActionDispatch::Cookies::EncryptedCookieJar:0xbb99d7a0 @parent_jar=#<ActionDispatch::Cookies::CookieJar:0xbb99dc00 ...>, @options={:signed_cookie_salt=>"signed cookie", :encrypted_cookie_salt=>"encrypted cookie", :encrypted_signed_cookie_salt=>"signed encrypted cookie", :secret_token=>nil, :secret_key_base=>"a183316a8015fa6feff7153f557902d5a3896ba7f57a95a7ee873e481234e9e2b3211c24399882cf15fd1f9a6d4158176cbbe7e0583a1c905670f6cf91b9012d", :upgrade_legacy_signed_cookies=>false, :serializer=>:json, :digest=>nil}, @encryptor=#<ActiveSupport::MessageEncryptor:0xbb99a640 @secret="v_\xC6\x8D\xA9j\xADf\x93\xC0\x13\v\x05t+\xD4\x85\xAB\xFD\xD9\x9B\xB1\x80`WUk\x9AK}\xE7\x80\xC2\x8A?\xE1\x8E\xAA\x95\xCB\xDC\xFC\x9B\xDE\x04\xCDR\xB5\x03\xFA\xF4\xE7\ae_#\xDA\n\x1A2\xF2\x16\x99\x03", @sign_secret="\xB9\x0F\x96\xCF%\xA5\x94\xFF\xDA1Q\xDDKZsr\xE4\by\x8E|1\xFD\xDC\xE7\xAEq\x15\xF4\x16\xCA\x84@$\x0F\xFA\xD9\x8B\xAD:b\x053\xEB\xBF^HE\x9E\xBB\x8E\x19\x92\xC2\xEC\xEC\xD0\x1D\xD1\x17\xD3\xB6~\x1E", @cipher="aes-256-cbc", @verifier=#<ActiveSupport::MessageVerifier:0xbb99a5f0 @secret="\xB9\x0F\x96\xCF%\xA5\x94\xFF\xDA1Q\xDDKZsr\xE4\by\x8E|1\xFD\xDC\xE7\xAEq\x15\xF4\x16\xCA\x84@$\x0F\xFA\xD9\x8B\xAD:b\x053\xEB\xBF^HE\x9E\xBB\x8E\x19\x92\xC2\xEC\xEC\xD0\x1D\xD1\x17\xD3\xB6~\x1E", @digest="SHA1", @serializer=ActiveSupport::MessageEncryptor::NullSerializer>, @serializer=ActiveSupport::MessageEncryptor::NullSerializer>>>
>> unknown
!! #<NameError: undefined local variable or method `unknown' for #<#<Class:0xbb998700>:0xbb996950>>
>> another_unknown
btw, thanks before 😃
We have to support Ruby 1.9 as long as Rails does. Ruby 1.9 doesn't have Module#prepend_features
.
Currently, our CI build for 1.9.3 is failing, so we have to use a different approach in lib/web_console/exception_extension.rb
. Maybe put our backtrace extraction code in lib/action_dispatch/exception_wrapper.rb
?
Hi there. Just a quick question. As we are not able to (CMD+v) in the web console, is this feature intentionally disabled or do have plans in near future?
Thanks
From David Heinemeier Hansson:
"This looks pretty cool! My preferred usage of this would be if we could automatically dump you into a console when an exception happens. Is that possible? If so, I would like to include by default, but restrict to dev environment."
Sounds this possible? 😄
This is a feature request: add HTTP authentication. Over SSL it would make WebConsole suitable for production environment (with the proper secuirty considerations).
I'm using the following monkey patch at the moment:
# config/initializers/web_console_http_authentication.rb
require 'digest/md5'
module WebConsole
class ApplicationController < ActionController::Base
USERNAME, PASSWORD, REALM = ENV['WEB_CONSOLE_USERNAME'], ENV['WEB_CONSOLE_PASSWORD'], ENV['WEB_CONSOLE_REALM']
raise "ENV['WEB_CONSOLE_USERNAME'] is not set" if USERNAME.blank?
raise "ENV['WEB_CONSOLE_PASSWORD'] is not set" if PASSWORD.blank?
raise "ENV['WEB_CONSOLE_REALM'] is not set" if REALM.blank?
USERS = { USERNAME => Digest::MD5.hexdigest([USERNAME, REALM, PASSWORD].join(":")) }
before_action :http_digest_authentication
private
def http_digest_authentication
authenticate_or_request_with_http_digest(REALM) do |username|
USERS[username]
end
end
end
end
hi guys, I just included gem in gemfile, bundle and rails s, and the localhost:3000/console throws me this....
is this an issue, or just my fault? cannot google it, therefore its here, sry if not issue :)
Errno::ENOENT in WebConsole::ConsoleSessionsController#index
No such file or directory - /Users/Redrick/Projects/intranet_server/bin/rails console
Rails.root: /Users/Redrick/Projects/intranet_server
web-console (1.0.2) lib/web_console/slave.rb:25:in `spawn'
web-console (1.0.2) lib/web_console/slave.rb:25:in `block in initialize'
web-console (1.0.2) lib/web_console/slave.rb:124:in `block in using_term'
<internal:prelude>:10:in `synchronize'
web-console (1.0.2) lib/web_console/slave.rb:122:in `using_term'
web-console (1.0.2) lib/web_console/slave.rb:24:in `initialize'
web-console (1.0.2) app/models/web_console/console_session.rb:45:in `new'
web-console (1.0.2) app/models/web_console/console_session.rb:45:in `initialize'
web-console (1.0.2) app/models/web_console/console_session.rb:40:in `new'
web-console (1.0.2) app/models/web_console/console_session.rb:40:in `create'
web-console (1.0.2) app/controllers/web_console/console_sessions_controller.rb:14:in `index'
actionpack (4.0.0) lib/action_controller/metal/implicit_render.rb:4:in `send_action'
actionpack (4.0.0) lib/abstract_controller/base.rb:189:in `process_action'
actionpack (4.0.0) lib/action_controller/metal/rendering.rb:10:in `process_action'
actionpack (4.0.0) lib/abstract_controller/callbacks.rb:18:in `block in process_action'
activesupport (4.0.0) lib/active_support/callbacks.rb:413:in `_run__4586300339362692703__process_action__callbacks'
activesupport (4.0.0) lib/active_support/callbacks.rb:80:in `run_callbacks'
actionpack (4.0.0) lib/abstract_controller/callbacks.rb:17:in `process_action'
actionpack (4.0.0) lib/action_controller/metal/rescue.rb:29:in `process_action'
actionpack (4.0.0) lib/action_controller/metal/instrumentation.rb:31:in `block in process_action'
activesupport (4.0.0) lib/active_support/notifications.rb:159:in `block in instrument'
activesupport (4.0.0) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
activesupport (4.0.0) lib/active_support/notifications.rb:159:in `instrument'
actionpack (4.0.0) lib/action_controller/metal/instrumentation.rb:30:in `process_action'
actionpack (4.0.0) lib/action_controller/metal/params_wrapper.rb:245:in `process_action'
activerecord (4.0.0) lib/active_record/railties/controller_runtime.rb:18:in `process_action'
actionpack (4.0.0) lib/abstract_controller/base.rb:136:in `process'
actionpack (4.0.0) lib/abstract_controller/rendering.rb:44:in `process'
actionpack (4.0.0) lib/action_controller/metal.rb:195:in `dispatch'
actionpack (4.0.0) lib/action_controller/metal/rack_delegation.rb:13:in `dispatch'
actionpack (4.0.0) lib/action_controller/metal.rb:231:in `block in action'
actionpack (4.0.0) lib/action_dispatch/routing/route_set.rb:80:in `call'
actionpack (4.0.0) lib/action_dispatch/routing/route_set.rb:80:in `dispatch'
actionpack (4.0.0) lib/action_dispatch/routing/route_set.rb:48:in `call'
actionpack (4.0.0) lib/action_dispatch/journey/router.rb:71:in `block in call'
actionpack (4.0.0) lib/action_dispatch/journey/router.rb:59:in `each'
actionpack (4.0.0) lib/action_dispatch/journey/router.rb:59:in `call'
actionpack (4.0.0) lib/action_dispatch/routing/route_set.rb:655:in `call'
railties (4.0.0) lib/rails/engine.rb:511:in `call'
railties (4.0.0) lib/rails/railtie/configurable.rb:30:in `method_missing'
actionpack (4.0.0) lib/action_dispatch/journey/router.rb:71:in `block in call'
actionpack (4.0.0) lib/action_dispatch/journey/router.rb:59:in `each'
actionpack (4.0.0) lib/action_dispatch/journey/router.rb:59:in `call'
actionpack (4.0.0) lib/action_dispatch/routing/route_set.rb:655:in `call'
rack-cors (0.2.8) lib/rack/cors.rb:54:in `call'
rack (1.5.2) lib/rack/etag.rb:23:in `call'
rack (1.5.2) lib/rack/conditionalget.rb:25:in `call'
rack (1.5.2) lib/rack/head.rb:11:in `call'
actionpack (4.0.0) lib/action_dispatch/middleware/params_parser.rb:27:in `call'
activerecord (4.0.0) lib/active_record/query_cache.rb:36:in `call'
activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:626:in `call'
actionpack (4.0.0) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
activesupport (4.0.0) lib/active_support/callbacks.rb:373:in `_run__2748503733985229373__call__callbacks'
activesupport (4.0.0) lib/active_support/callbacks.rb:80:in `run_callbacks'
actionpack (4.0.0) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
actionpack (4.0.0) lib/action_dispatch/middleware/reloader.rb:64:in `call'
actionpack (4.0.0) lib/action_dispatch/middleware/remote_ip.rb:76:in `call'
actionpack (4.0.0) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
actionpack (4.0.0) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
railties (4.0.0) lib/rails/rack/logger.rb:38:in `call_app'
railties (4.0.0) lib/rails/rack/logger.rb:21:in `block in call'
activesupport (4.0.0) lib/active_support/tagged_logging.rb:67:in `block in tagged'
activesupport (4.0.0) lib/active_support/tagged_logging.rb:25:in `tagged'
activesupport (4.0.0) lib/active_support/tagged_logging.rb:67:in `tagged'
railties (4.0.0) lib/rails/rack/logger.rb:21:in `call'
actionpack (4.0.0) lib/action_dispatch/middleware/request_id.rb:21:in `call'
rack (1.5.2) lib/rack/runtime.rb:17:in `call'
activesupport (4.0.0) lib/active_support/cache/strategy/local_cache.rb:83:in `call'
rack (1.5.2) lib/rack/lock.rb:17:in `call'
actionpack (4.0.0) lib/action_dispatch/middleware/static.rb:64:in `call'
railties (4.0.0) lib/rails/engine.rb:511:in `call'
railties (4.0.0) lib/rails/application.rb:97:in `call'
rack (1.5.2) lib/rack/content_length.rb:14:in `call'
thin (1.5.1) lib/thin/connection.rb:81:in `block in pre_process'
thin (1.5.1) lib/thin/connection.rb:79:in `catch'
thin (1.5.1) lib/thin/connection.rb:79:in `pre_process'
thin (1.5.1) lib/thin/connection.rb:54:in `process'
thin (1.5.1) lib/thin/connection.rb:39:in `receive_data'
eventmachine (1.0.3) lib/eventmachine.rb:187:in `run_machine'
eventmachine (1.0.3) lib/eventmachine.rb:187:in `run'
thin (1.5.1) lib/thin/backends/base.rb:63:in `start'
thin (1.5.1) lib/thin/server.rb:159:in `start'
rack (1.5.2) lib/rack/handler/thin.rb:16:in `run'
rack (1.5.2) lib/rack/server.rb:264:in `start'
railties (4.0.0) lib/rails/commands/server.rb:84:in `start'
railties (4.0.0) lib/rails/commands.rb:78:in `block in <top (required)>'
railties (4.0.0) lib/rails/commands.rb:73:in `tap'
railties (4.0.0) lib/rails/commands.rb:73:in `<top (required)>'
script/rails:6:in `require'
script/rails:6:in `<main>'
See gsamokovarov#13
I get the following error when ever I try to use the web_console config parameters in application.rb
OR development.rb
OR in a separate initializer file.
NoMethodError: undefined method `web_console' for #<Rails::Application::Configuration:0x000000061694b8>
from /home/user1/.rvm/gems/ruby-2.0.0-p451/gems/railties-4.1.4/lib/rails/railtie/configuration.rb:95:in `method_missing'
from (irb):3
from /home/user1/.rvm/gems/ruby-2.0.0-p451/gems/railties-4.1.4/lib/rails/commands/console.rb:90:in `start'
from /home/user1/.rvm/gems/ruby-2.0.0-p451/gems/railties-4.1.4/lib/rails/commands/console.rb:9:in `start'
The web-console shows up in exception pages and if I add the <%= console %>
in views. I can't seem to access the console by going to /console
URL.
Hello, I'm one of possible students from GSoC 2015. I have submitted a proposal about browser extensions of web-console. Here is a public link of the proposal draft:
What do you think of this? Please ask if you have anything unclear, because I'm quite new to this project, and I don't quite know how it works (but it interests me).
I scroll up the history and want to copy something. Whenever I click, the console scrolls down and I can't select it.
And these known commonly from shells and irb:
We need to better test the gem across the Rails 4 minor (4-0-stable
, 4-1-stable
, latest-gratest
, etc.) versions. We would need different gemfiles for the test application and test agains them on travis. See coffee-rails, for example.
@ryandao do you have time this those days?
This is my stacktrace. For some entries I'm able to step into the stack frame by clicking its file name, and for some others I can't. Just see self.class
on each frame.
active_hash (1.4.0) lib/active_hash/base.rb:190:in `find' # Class - OK
app/models/disk.rb:23:in `size_plan=' # Disk - OK
/home/nowaker/.rvmruby (2.1.2) bundler/gems/rails-42e69c352fc5/activemodel/lib/active_model/model.rb:80:in `public_send'
/home/nowaker/.rvmruby (2.1.2) bundler/gems/rails-42e69c352fc5/activemodel/lib/active_model/model.rb:80:in `block in initialize'
/home/nowaker/.rvmruby (2.1.2) bundler/gems/rails-42e69c352fc5/activemodel/lib/active_model/model.rb:79:in `each'
/home/nowaker/.rvmruby (2.1.2) bundler/gems/rails-42e69c352fc5/activemodel/lib/active_model/model.rb:79:in `initialize'
app/models/wvm/machine.rb:27:in `new' # MachinesController - WRONG
app/models/wvm/machine.rb:27:in `create' # MachinesController - WRONG
app/models/forms/new_machine.rb:18:in `save' # MachinesController - WRONG
app/controllers/machines_controller.rb:17:in `block in create' # MachinesController - OK
app/controllers/application_controller.rb:9:in `handle_errors' # MachinesController - OK
app/controllers/machines_controller.rb:16:in `create' # MachinesController - OK
/home/nowaker/.rvmruby (2.1.2) bundler/gems/rails-42e69c352fc5/actionpack/lib/action_controller/metal/implicit_render.rb:4:in `send_action'
(other rails frames)
In frames marked as WRONG I'm not able to access the local variables. For example, after clicking machine.rb:27
, I see "extracted source" as:
machine = build_new_machine new_machine
machine.create_disk ::Disk.new \ # highlighted here
size_plan: new_machine.plan.storage,
type: new_machine.plan.storage_type
I should be able to access new_machine
or machine
. Apparently web console doesn't set an appropriate context - it switches to MachineController, which is wrong.
>> machine
!! #<NameError: undefined local variable or method `machine' for #<MachinesController:0x007fc301010ce0>>
>> new_machine
!! #<NameError: undefined local variable or method `new_machine' for #<MachinesController:0x007fc301010ce0>>
Rails 4.1.2rc2. Install the gem, embed the <%= console %>, and try to enter any line into the resulting console box (e.g "a = 1"). The server immediately crashes.
This gist: https://gist.github.com/Pugio/475117839ac8cfb58352 has both the terminal output and the full crash log. Happy to help debug.
I am using Firefox (32.0.3) under Mac OS X. Currently when I type cmd+R, the error page with console does not reload, unlike the expected behavior in Chrome. Instead a plain "r" is entered into the console.
Is there any suggestions how to use it on production? Maybe generate own controller and use it with CanCan abilities?
Thanks for this nice gem!
...and it confuses Capybara.
When I have web-console installed, and my Capybara test hits a Rails error page, I get this super confusing error message:
1) index does the thing
Failure/Error: expect(page).to have_content('a thing')
Capybara::Ambiguous:
Ambiguous match, found 2 elements matching xpath "/html"
# /Users/steampunk/.rvm/gems/ruby-2.2.1/gems/capybara-2.4.4/lib/capybara/node/finders.rb:38:in `block in find'
# /Users/steampunk/.rvm/gems/ruby-2.2.1/gems/capybara-2.4.4/lib/capybara/node/base.rb:80:in `synchronize'
# /Users/steampunk/.rvm/gems/ruby-2.2.1/gems/capybara-2.4.4/lib/capybara/node/finders.rb:30:in `find'
# /Users/steampunk/.rvm/gems/ruby-2.2.1/gems/capybara-2.4.4/lib/capybara/node/document.rb:23:in `text'
# /Users/steampunk/.rvm/gems/ruby-2.2.1/gems/capybara-2.4.4/lib/capybara/queries/text_query.rb:26:in `resolve_for'
# /Users/steampunk/.rvm/gems/ruby-2.2.1/gems/capybara-2.4.4/lib/capybara/node/matchers.rb:454:in `block in assert_text'
# /Users/steampunk/.rvm/gems/ruby-2.2.1/gems/capybara-2.4.4/lib/capybara/node/base.rb:84:in `synchronize'
# /Users/steampunk/.rvm/gems/ruby-2.2.1/gems/capybara-2.4.4/lib/capybara/node/matchers.rb:453:in `assert_text'
# /Users/steampunk/.rvm/gems/ruby-2.2.1/gems/capybara-2.4.4/lib/capybara/session.rb:676:in `block (2 levels) in <class:Session>'
# /Users/steampunk/.rvm/gems/ruby-2.2.1/gems/capybara-2.4.4/lib/capybara/rspec/matchers.rb:64:in `matches?'
# ./spec/features/index_spec.rb:6:in `block (2 levels) in <top (required)>'
This error occurs because web-console's HTML elements (including script tags) are placed at the bottom of the file, outside the </html>
. As a result, Capybara thinks there are two webpages in the file, and gives up.
Is it possible to move those elements inside the html
tag?
When running guard I get following error:
gems/railties-4.2.2/lib/rails/railtie/configuration.rb:95:in method_missing': undefined method
web_console' for #Rails::Application::Configuration:0xba8024b4 (NoMethodError)
This is with latest 2.1.3 GEM.
I saw #33 but the issue mentioned there and the resolve seems to be a newer version.
Could be related to rails/rails#17731. Leaving open for investigation.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.