johnmckerrell / openstreetview Goto Github PK
View Code? Open in Web Editor NEWAn open licensed repository of street level photography, with metadata.
Home Page: http://www.openstreetview.org/
An open licensed repository of street level photography, with metadata.
Home Page: http://www.openstreetview.org/
== Welcome to OpenStreetView == Welcome to Rails Rails is a web-application framework that includes everything needed to create database-backed web applications according to the Model-View-Control pattern. This pattern splits the view (also called the presentation) into "dumb" templates that are primarily responsible for inserting pre-built data in between HTML tags. The model contains the "smart" domain objects (such as Account, Product, Person, Post) that holds all the business logic and knows how to persist themselves to a database. The controller handles the incoming requests (such as Save New Account, Update Product, Show Post) by manipulating the model and directing data to the view. In Rails, the model is handled by what's called an object-relational mapping layer entitled Active Record. This layer allows you to present the data from database rows as objects and embellish these data objects with business logic methods. You can read more about Active Record in link:files/vendor/rails/activerecord/README.html. The controller and view are handled by the Action Pack, which handles both layers by its two parts: Action View and Action Controller. These two layers are bundled in a single package due to their heavy interdependence. This is unlike the relationship between the Active Record and Action Pack that is much more separate. Each of these packages can be used independently outside of Rails. You can read more about Action Pack in link:files/vendor/rails/actionpack/README.html. == Getting Started 1. At the command prompt, start a new Rails application using the <tt>rails</tt> command and your application name. Ex: rails myapp 2. Change directory into myapp and start the web server: <tt>script/server</tt> (run with --help for options) 3. Go to http://localhost:3000/ and get "Welcome aboard: You're riding the Rails!" 4. Follow the guidelines to start developing your application == Web Servers By default, Rails will try to use Mongrel if it's are installed when started with script/server, otherwise Rails will use WEBrick, the webserver that ships with Ruby. But you can also use Rails with a variety of other web servers. Mongrel is a Ruby-based webserver with a C component (which requires compilation) that is suitable for development and deployment of Rails applications. If you have Ruby Gems installed, getting up and running with mongrel is as easy as: <tt>gem install mongrel</tt>. More info at: http://mongrel.rubyforge.org Say other Ruby web servers like Thin and Ebb or regular web servers like Apache or LiteSpeed or Lighttpd or IIS. The Ruby web servers are run through Rack and the latter can either be setup to use FCGI or proxy to a pack of Mongrels/Thin/Ebb servers. == Apache .htaccess example for FCGI/CGI # General Apache options AddHandler fastcgi-script .fcgi AddHandler cgi-script .cgi Options +FollowSymLinks +ExecCGI # If you don't want Rails to look in certain directories, # use the following rewrite rules so that Apache won't rewrite certain requests # # Example: # RewriteCond %{REQUEST_URI} ^/notrails.* # RewriteRule .* - [L] # Redirect all requests not available on the filesystem to Rails # By default the cgi dispatcher is used which is very slow # # For better performance replace the dispatcher with the fastcgi one # # Example: # RewriteRule ^(.*)$ dispatch.fcgi [QSA,L] RewriteEngine On # If your Rails application is accessed via an Alias directive, # then you MUST also set the RewriteBase in this htaccess file. # # Example: # Alias /myrailsapp /path/to/myrailsapp/public # RewriteBase /myrailsapp RewriteRule ^$ index.html [QSA] RewriteRule ^([^.]+)$ $1.html [QSA] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ dispatch.cgi [QSA,L] # In case Rails experiences terminal errors # Instead of displaying this message you can supply a file here which will be rendered instead # # Example: # ErrorDocument 500 /500.html ErrorDocument 500 "<h2>Application error</h2>Rails application failed to start properly" == Debugging Rails Sometimes your application goes wrong. Fortunately there are a lot of tools that will help you debug it and get it back on the rails. First area to check is the application log files. Have "tail -f" commands running on the server.log and development.log. Rails will automatically display debugging and runtime information to these files. Debugging info will also be shown in the browser on requests from 127.0.0.1. You can also log your own messages directly into the log file from your code using the Ruby logger class from inside your controllers. Example: class WeblogController < ActionController::Base def destroy @weblog = Weblog.find(params[:id]) @weblog.destroy logger.info("#{Time.now} Destroyed Weblog ID ##{@weblog.id}!") end end The result will be a message in your log file along the lines of: Mon Oct 08 14:22:29 +1000 2007 Destroyed Weblog ID #1 More information on how to use the logger is at http://www.ruby-doc.org/core/ Also, Ruby documentation can be found at http://www.ruby-lang.org/ including: * The Learning Ruby (Pickaxe) Book: http://www.ruby-doc.org/docs/ProgrammingRuby/ * Learn to Program: http://pine.fm/LearnToProgram/ (a beginners guide) These two online (and free) books will bring you up to speed on the Ruby language and also on programming in general. == Debugger Debugger support is available through the debugger command when you start your Mongrel or Webrick server with --debugger. This means that you can break out of execution at any point in the code, investigate and change the model, AND then resume execution! You need to install ruby-debug to run the server in debugging mode. With gems, use 'gem install ruby-debug' Example: class WeblogController < ActionController::Base def index @posts = Post.find(:all) debugger end end So the controller will accept the action, run the first line, then present you with a IRB prompt in the server window. Here you can do things like: >> @posts.inspect => "[#<Post:0x14a6be8 @attributes={\"title\"=>nil, \"body\"=>nil, \"id\"=>\"1\"}>, #<Post:0x14a6620 @attributes={\"title\"=>\"Rails you know!\", \"body\"=>\"Only ten..\", \"id\"=>\"2\"}>]" >> @posts.first.title = "hello from a debugger" => "hello from a debugger" ...and even better is that you can examine how your runtime objects actually work: >> f = @posts.first => #<Post:0x13630c4 @attributes={"title"=>nil, "body"=>nil, "id"=>"1"}> >> f. Display all 152 possibilities? (y or n) Finally, when you're ready to resume execution, you enter "cont" == Console You can interact with the domain model by starting the console through <tt>script/console</tt>. Here you'll have all parts of the application configured, just like it is when the application is running. You can inspect domain models, change values, and save to the database. Starting the script without arguments will launch it in the development environment. Passing an argument will specify a different environment, like <tt>script/console production</tt>. To reload your controllers and models after launching the console run <tt>reload!</tt> == dbconsole You can go to the command line of your database directly through <tt>script/dbconsole</tt>. You would be connected to the database with the credentials defined in database.yml. Starting the script without arguments will connect you to the development database. Passing an argument will connect you to a different database, like <tt>script/dbconsole production</tt>. Currently works for mysql, postgresql and sqlite. == Description of Contents app Holds all the code that's specific to this particular application. app/controllers Holds controllers that should be named like weblogs_controller.rb for automated URL mapping. All controllers should descend from ApplicationController which itself descends from ActionController::Base. app/models Holds models that should be named like post.rb. Most models will descend from ActiveRecord::Base. app/views Holds the template files for the view that should be named like weblogs/index.html.erb for the WeblogsController#index action. All views use eRuby syntax. app/views/layouts Holds the template files for layouts to be used with views. This models the common header/footer method of wrapping views. In your views, define a layout using the <tt>layout :default</tt> and create a file named default.html.erb. Inside default.html.erb, call <% yield %> to render the view using this layout. app/helpers Holds view helpers that should be named like weblogs_helper.rb. These are generated for you automatically when using script/generate for controllers. Helpers can be used to wrap functionality for your views into methods. config Configuration files for the Rails environment, the routing map, the database, and other dependencies. db Contains the database schema in schema.rb. db/migrate contains all the sequence of Migrations for your schema. doc This directory is where your application documentation will be stored when generated using <tt>rake doc:app</tt> lib Application specific libraries. Basically, any kind of custom code that doesn't belong under controllers, models, or helpers. This directory is in the load path. public The directory available for the web server. Contains subdirectories for images, stylesheets, and javascripts. Also contains the dispatchers and the default HTML files. This should be set as the DOCUMENT_ROOT of your web server. script Helper scripts for automation and generation. test Unit and functional tests along with fixtures. When using the script/generate scripts, template test files will be generated for you and placed in this directory. vendor External libraries that the application depends on. Also includes the plugins subdirectory. If the app has frozen rails, those gems also go here, under vendor/rails/. This directory is in the load path.
It's not obvious that once you've uploaded files you still need to push them through to moderation, this would be much more obvious if it showed up at the top right of the page as "You have N images that need to be pushed to moderation" or something similar.
It would be good if the counts on the user homepage showed the overall stats, so you've got 300 available photos out of 4000 that are available. It could also be good to show how many photos you've moderated there.
OSV should provide some way easy to display full size version of the image. It is the biggest usability issue for now, I think.
It could be done by clicking on the image (maybe with some key modifier, or right clicking).
I sent a photo for test and it is as "pending" always. I can not list photos or moderate them.
Does this have something to do?
Currently when moderating you can't do anything when you click save until the save completes, it would be good if this just happened in the background.
I am getting started with OpenStreetView and installad all the requirements,, and getting errors with "rake". Rake is working otherwise but when I try it on OpenStreetView I am getting errors, as below:
yad@lenovo:~/Downloads/OpenStreetView-master$ rake
rake aborted!
uninitialized constant Rake::RDocTask
/var/lib/gems/1.9.1/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:440:in rescue in load_missing_constant' /var/lib/gems/1.9.1/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:436:in
load_missing_constant'
/var/lib/gems/1.9.1/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:80:in const_missing_with_dependencies' /var/lib/gems/1.9.1/gems/rails-2.3.8/lib/tasks/documentation.rake:3:in
block in <top (required)>'
/var/lib/gems/1.9.1/gems/rails-2.3.8/lib/tasks/documentation.rake:1:in <top (required)>' /var/lib/gems/1.9.1/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:145:in
load'
/var/lib/gems/1.9.1/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:145:in block in load_with_new_constant_marking' /var/lib/gems/1.9.1/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:521:in
new_constants_in'
/var/lib/gems/1.9.1/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:145:in load_with_new_constant_marking' /var/lib/gems/1.9.1/gems/rails-2.3.8/lib/tasks/rails.rb:4:in
block in <top (required)>'
/var/lib/gems/1.9.1/gems/rails-2.3.8/lib/tasks/rails.rb:4:in each' /var/lib/gems/1.9.1/gems/rails-2.3.8/lib/tasks/rails.rb:4:in
<top (required)>'
/home/yad/Downloads/OpenStreetView-master/Rakefile:10:in `<top (required)>'
(See full trace by running task with --trace)
There's no way to delete photos that you've uploaded. At the very least we need to make it possible to delete photos rather than pushing them to moderation for when you accidentally upload more than you intended to. It would also be useful if the owner of the photo could delete it as part of moderation in case they didn't notice earlier, perhaps simply an "owner unsafe" gets deleted.
Would probably be a good idea to put a banner on the top of the homepage map to tell users that what they can see isn't necessarily all of the photos in the database.
Sometimes files uploaded by FTP will not have the group write permission, this is required for them to be processed and moved. Looks like the chmod_enable setting should do the job.
In addition to masking/tagging potentially private information, the moderation dialog should allow you to rotate the image.
A fair amount of the images I've been moderating lately have been turned on their side. I've been marking them as unsafe because until rotation is added as a moderation feature, uploaders really need to rotate their images manually.
I this is related to (but distinct from) issue #19
I have found some CVEs in the (U.S.) National Vulnerability Database that pertain to versions of Rails up to and including version 2.3.15.
It may be sufficient to upgrade to 2.3.17.
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2013-0276
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2013-0277
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2013-0333
It would be really great to have oEmbed support. It shouldn't be hard to implement. Everything needed is supported, only the JSON endpoint needs to be implemented.
Git complains:
# modified: vendor/plugins/restful_authentication (new commits)
See "How to ignore changes in git submodules" or here.
When pictures are make available on OSV to download, they no longer contain standard GPS georeferencing tags they've had when they were uploaded. That should be fixed.
When you look at the map at specified zoomlevel, the OSV does not display all of the thumbnails, but just a limited number of them. It is quite ok, but the problem is that it currently just gets first xxx thumbnails in that area or something, which results in very uneven display.
(question: is that the work of find_in_area(bbox) function in photo.rb ?)
For example, if you zoom to Europe, you will see OSV load and display bunch of thumbnails (at approximately the same location) in England, and another bunch in Ireland (probably because there where the first inserted in the database) and none of the thumbnails in Czech or Croatia or other countries that have pictures.
That leads to quite a wrong perception of where there are pictures (and where there are not), and unless user knows where exactly (s)he has to blindly zoom to "empty space" to see pictures there, (s)he will never see them.
the thumbnail selection code should be modified so it avoids thumbnails that would render at (almost) the same location, and prefers those which are more distanced from those already selected for display.
That would not only help with displaying picture distribution more fairly and allowing people to see where the database contains pictures, but would also help with loading less thumbnails in bigger views (for example, when viewing Europe, it could get away with 10 thumbnails in mostly various countries; instead of loading hundred of thumbnails all in the exact same location).
i use digikam with linux mandriva
when i have to rotate a photo then i don't modify the photo in the file but i use the ability just to change the exif "orientation" parameter in the file
i change it from "top,left" to "left,bottom" to rotate counterclock 90 °
then digikam applies this parameter according to well display the photo
please use the "orientation" parameter to display photo
Please, add support of CORS:
http://en.wikipedia.org/wiki/Cross-origin_resource_sharing
This feature share photos on other openstreetmap-sites, such openstreetmap.ru
When you moderate a batch of images and it gives you a new set it's supposed to give you 10 photos (actually 20 right now but that's not important). It's currently doing this by selecting 20 random photos and then assigning each one to you, this doesn't always work properly though as it might try to give you some that you've moderated already, at which point you don't get a full batch. Need to fix this somehow.
I have no way to look up photos that I've uploaded and that have been approved. I understand that OSV is not a photo-hosting site, but I fear that if I don't have a record of the photos I've added, I'm liable to forget about some of them.
alexandre$ rake db:migrate RAILS_ENV="development"
Please install RDoc 2.4.2+ to generate documentation.
DEPRECATION WARNING: Rake tasks in vendor/plugins/restful_authentication/tasks are deprecated. Use lib/tasks instead. (called from /var/lib/gems/1.8/gems/rails-2.3.18/lib/tasks/rails.rb:10)
...
I recently signed up for Open Street View and verified my account via email, but I'm unable to request photos to moderate.
A quick check of the JavaScript console in Google Chrome shows me that I am getting a 401 "Authorization Required" error in response to a request for http://openstreetview.org/api/photos/request_more (presumably triggered by JS code).
It's not clear whether this is because:
Patch to use with git apply: https://gist.github.com/tetraf/5611870
There is no documentation other than this:
http://lists.openstreetmap.org/pipermail/photos/2009-September/000000.html
We should add something to the OSM wiki on the OpenStreetView page.
With Debian 7.
$ rake db:migrate RAILS_ENV="development"
== CreateUsers: migrating ====================================================
-- create_table("users", {:force=>true})
-> 0.0015s
-- add_index(:users, :login, {:unique=>true})
-> 0.0004s
== CreateUsers: migrated (0.0020s) ===========================================
rake aborted!
/var/lib/gems/1.9.1/gems/rake-10.0.4/lib/rake/trace_output.rb:16:in `block in trace_on': invalid byte sequence in US-ASCII (ArgumentError)
from /var/lib/gems/1.9.1/gems/rake-10.0.4/lib/rake/trace_output.rb:14:in `map'
from /var/lib/gems/1.9.1/gems/rake-10.0.4/lib/rake/trace_output.rb:14:in `trace_on'
from /var/lib/gems/1.9.1/gems/rake-10.0.4/lib/rake/application.rb:328:in `trace'
from /var/lib/gems/1.9.1/gems/rake-10.0.4/lib/rake/application.rb:183:in `display_error_message'
from /var/lib/gems/1.9.1/gems/rake-10.0.4/lib/rake/application.rb:169:in `rescue in standard_exception_handling'
from /var/lib/gems/1.9.1/gems/rake-10.0.4/lib/rake/application.rb:159:in `standard_exception_handling'
from /var/lib/gems/1.9.1/gems/rake-10.0.4/lib/rake/application.rb:70:in `run'
from /var/lib/gems/1.9.1/gems/rake-10.0.4/bin/rake:33:in `<top (required)>'
from /usr/local/bin/rake:23:in `load'
from /usr/local/bin/rake:23:in `<main>'
Caused by line 32 in db/migrate/20090701144013_create_licenses.rb.
fix:
sed -i "s/non-commercial, they don.*t have to license their derivative/non-commercial, they don\\\\'t have to license their derivative/" db/migrate/20090701144013_create_licenses.rb
Maybe I should just be uploading folders, but I just uploaded 44 pictures and selecting each one then processing seems it could be simplified.
Due to a typo any photo moderated by its owner gets deleted ("=" instead of "==").
alexandre$ ./script/server -e development
=> Booting WEBrick
=> Rails 2.3.18 application starting on http://0.0.0.0:3000
NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01.
Gem.source_index called from /var/lib/gems/1.8/gems/rails-2.3.18/lib/rails/gem_dependency.rb:21.
NOTE: Gem::SourceIndex#initialize is deprecated with no replacement. It will be removed on or after 2011-11-01.
Gem::SourceIndex#initialize called from /var/lib/gems/1.8/gems/rails-2.3.18/lib/rails/vendor_gem_source_index.rb:100.
NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01.
Gem.source_index called from /var/lib/gems/1.8/gems/rails-2.3.18/lib/rails/gem_dependency.rb:78.
NOTE: Gem::SourceIndex#each is deprecated with no replacement. It will be removed on or after 2011-11-01.
Gem::SourceIndex#each called from /var/lib/gems/1.8/gems/rails-2.3.18/lib/rails/vendor_gem_source_index.rb:123.
NOTE: Gem::SourceIndex#each is deprecated with no replacement. It will be removed on or after 2011-11-01.
Gem::SourceIndex#each called from /var/lib/gems/1.8/gems/rails-2.3.18/lib/rails/vendor_gem_source_index.rb:124.
NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01.
Gem.source_index called from /var/lib/gems/1.8/gems/rails-2.3.18/lib/rails/gem_dependency.rb:78.
NOTE: Gem::SourceIndex#each is deprecated with no replacement. It will be removed on or after 2011-11-01.
Gem::SourceIndex#each called from /var/lib/gems/1.8/gems/rails-2.3.18/lib/rails/vendor_gem_source_index.rb:123.
NOTE: Gem::SourceIndex#each is deprecated with no replacement. It will be removed on or after 2011-11-01.
Gem::SourceIndex#each called from /var/lib/gems/1.8/gems/rails-2.3.18/lib/rails/vendor_gem_source_index.rb:124.
NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01.
Gem.source_index called from /var/lib/gems/1.8/gems/rails-2.3.18/lib/rails/gem_dependency.rb:78.
NOTE: Gem::SourceIndex#each is deprecated with no replacement. It will be removed on or after 2011-11-01.
Gem::SourceIndex#each called from /var/lib/gems/1.8/gems/rails-2.3.18/lib/rails/vendor_gem_source_index.rb:123.
NOTE: Gem::SourceIndex#each is deprecated with no replacement. It will be removed on or after 2011-11-01.
Gem::SourceIndex#each called from /var/lib/gems/1.8/gems/rails-2.3.18/lib/rails/vendor_gem_source_index.rb:124.
NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01.
Gem.source_index called from /var/lib/gems/1.8/gems/rails-2.3.18/lib/rails/gem_dependency.rb:104.
NOTE: Gem::SourceIndex#search is deprecated with no replacement. It will be removed on or after 2011-11-01.
Gem::SourceIndex#search called from /var/lib/gems/1.8/gems/rails-2.3.18/lib/rails/vendor_gem_source_index.rb:119.
NOTE: Gem::SourceIndex#search is deprecated with no replacement. It will be removed on or after 2011-11-01.
Gem::SourceIndex#search called from /var/lib/gems/1.8/gems/rails-2.3.18/lib/rails/vendor_gem_source_index.rb:119.
.aasm_initial_state(:name) is deprecated and will be removed in version 4.0.0; please use .aasm.initial_state = :name instead!
.aasm_state is deprecated and will be removed in version 4.0.0; please use .aasm.state instead!
.aasm_state is deprecated and will be removed in version 4.0.0; please use .aasm.state instead!
.aasm_state is deprecated and will be removed in version 4.0.0; please use .aasm.state instead!
.aasm_state is deprecated and will be removed in version 4.0.0; please use .aasm.state instead!
.aasm_state is deprecated and will be removed in version 4.0.0; please use .aasm.state instead!
.aasm_event is deprecated and will be removed in version 4.0.0; please use .aasm.event instead!
.aasm_event is deprecated and will be removed in version 4.0.0; please use .aasm.event instead!
.aasm_event is deprecated and will be removed in version 4.0.0; please use .aasm.event instead!
.aasm_event is deprecated and will be removed in version 4.0.0; please use .aasm.event instead!
.aasm_event is deprecated and will be removed in version 4.0.0; please use .aasm.event instead!
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2014-03-05 12:01:21] INFO WEBrick 1.3.1
[2014-03-05 12:01:21] INFO ruby 1.8.7 (2011-06-30) [i686-linux]
[2014-03-05 12:01:26] INFO WEBrick::HTTPServer#start: pid=23924 port=3000
the web display of course must be limited as it is currently to 100 pictures (as web2.0 browser loading thousands of thumbnails on each move/zoom would be very painful), but downloading KML for external program parsing/usage should not be (or at least the limit should be two orders of magnitude higher).
Need some sort of status indicator so that people know something is happening.
"Hm. Now and then it does not work with Opera 10.0. The message "there
was an error [...]" is shown and the not processed pictures remain.
After reloading the page the changes are gone, after re-drawing the
masks the error occurred again
OSM currently has no equivalent to streetview. At the same time, default camera apps in both Android and iOS now support taking panorama images easily, which essentially puts it easily in reach in the same way that the proliferation of GPS's in phones led to an explosion in mapping data. Right now, the main limiting factor is that there is no clear, single leading place for people to upload panorama images for OpenStreetMap. OpenStreetView is the clearest candidate, but currently neither explicitly states anywhere that you accept panorama's, nor does it provide any option to view panorama images properly.
I would suggest using https://github.com/mpetroff/pannellum which is plugin free HTML5 / CSS / WebGL, works for recent versions of all major browsers, is open source, active (last commit just 7 days ago) and is only 11kb.
If a certain number of people mark an image as unsafe it should be deleted, currently it will keep being offered to everyone to moderate.
We store created_at and updated_at times for photos, we should really store deleted_at times too.
This procedure was tested with Debian 7.
You need to replace DB_USER and DB_PASS.
Feel free to add this in some README or INSTALL file.
### System dependencies
yes | apt-get install build-essentials git ruby ruby-dev libmysqlclient-dev mysql-server imagemagick
### Rails
gem install -v=2.3.18 rails
### OSV + auth
mkdir -p /srv/http
cd !$
git clone https://github.com/johnmckerrell/OpenStreetView.git openstreetview
cd !$
git clone git://github.com/technoweenie/restful-authentication.git vendor/plugins/restful_authentication
### Ruby dependencies
rake gems:install
gem install mysql
### Db creation
cat << EOF | mysql -h localhost -u root -p
CREATE DATABASE openstreetview_org_development;
GRANT ALL ON openstreetview_org_development.* TO DB_USER@localhost IDENTIFIED BY 'DB_PASS';
EOF
sed -i 's@/tmp/mysql.sock@/var/run/mysqld/mysqld.sock@' config/database.yml
sed -i 's@username: root@username: DB_USER@' config/database.yml
sed -i 's@password:@password: DB_PASS@' config/database.yml
rake db:migrate RAILS_ENV="development"
### Web start
./script/server -e development
There is (at least) an unsolved point: the user is disconnected when he wants to go in "moderate" section (http error 401 from /api/photos/request_more), I don't know if it's a bug or something is missing from the installation.
If a user forgets their password there's no mechanism to reset their password.
This causes issues if protocol is https, port is mapped or server is accessed with an other name.
Patch to use with git apply: https://gist.github.com/tetraf/5611901
place for the map in home page is not sufficient
please dedicate a whole page for the map
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.