GithubHelp home page GithubHelp logo

smashing / smashing Goto Github PK

View Code? Open in Web Editor NEW
3.2K 115.0 323.0 2.84 MB

The exceptionally handsome dashboard framework in Ruby and Coffeescript.

Home Page: https://smashing.github.io/

License: MIT License

Ruby 4.80% JavaScript 78.37% CoffeeScript 1.84% CSS 11.78% HTML 1.30% SCSS 1.92%
dashboard dashboards dashboard-widget dashboard-widgets monitoring dashboard-application hacktoberfest

smashing's Introduction

Build Gitter chat

Smashing, the spiritual successor to Dashing, is a Sinatra based framework that lets you build excellent dashboards. It looks especially great on TVs.

Smashing logo

Community

Feel free to submit issues for bugs, new features, and enhancements in GitHub. For more general questions, or help with widgets, please use the gitter chatroom.

Installation

# Install bundler
$ gem install bundler
# Install smashing
$ gem install smashing
# Create a new project
$ smashing new my-project
# Change Directory into the project
$ cd my-project
# Install the bundle of project specific gems
$ bundle
# Start the example dashboard!
$ smashing start

Check out our wiki.

Note: This is a fork of the Dashing project, which is no longer being maintained. Read about that here.

License

Distributed under the MIT license.

smashing's People

Contributors

adambyrtek avatar apeckham avatar boxiong avatar byroot avatar cjolly avatar clemens avatar coosh avatar davefp avatar dependabot[bot] avatar dylanahsmith avatar frvi avatar ineffyble avatar kinow avatar mcritchlow avatar olleolleolle avatar orenmazor avatar prayagverma avatar pseudomuto avatar pushmatrix avatar pvande avatar qbrossard avatar reiz avatar rompic avatar ryanseys avatar svendahlstrand avatar tahnok avatar toy avatar vstone avatar ytvwld avatar zazcallabah avatar

Stargazers

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

Watchers

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

smashing's Issues

Investigate use of WebSockets

In the past, WebSockets were ignored in favour of SSEs. However, it seems that today WebSockets have better support in the Browser, Server and general Developer realms.

Specifically:

  • IE11 and Edge would be a lot easier to make work with WebSockets (no SSE polyfill)
  • Sinatra / Rack / Puma should play together more nicely with WebSockets
  • The common perception is that WebSockets are cool and SSEs are crusty old who cares tech -- going with the flow on this is beneficial in terms of ecosystem popularity
  • WebSockets may be easier to scale because:
    • They're more popular, so Load Balancers and other tools have been written with them in mind
    • Since it's a bi-directional link, the socket can be opened on page load and once the widgets are parsed the data subscriptions can be requested specifically for what's being rendered. With an SSE you are required to know what subscriptions you need before opening the socket

Given the above benefits, WebSockets should be investigated.

token, etc based Auth

I am currently using the HTTP basic auth method for securing my dashboard, but I want to deploy it using this: https://github.com/guysoft/FullPageOS and HTTP auth isnt supported.

I'm hoping to be able to pass a parameter in the URL that if its not there, the dashboard is not displayed.

Any tips on this?

Jenkins Smashing Dashboard

Hey thanks for reading!

I am looking to integrate smashing with data from jenkins.. has anyone done this before and have any advice on how this can be done?

Thnanks!
Josh

SystemD in Centos 7

Hello,

i'm trying to start smashing as a service on Centos 7.3 which is using systemd. I need to use Centos 7 at work for this project.

First idea was to use a common init script which is working perfectly if i use it manually:

#!/bin/bash
### BEGIN INIT INFO
# Provides: dashing
# Required-Start: $local_fs $network $remote_fs
# Required-Stop: $local_fs $network $remote_fs
# Default-Start:  2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: start and stop service dashing
# Description: Dashing
### END INIT INFO

# Must be a valid filename
NAME=smashing
DASHING_DIR=/home/dashing/untertitel
ESEC_DIR=/home/dashing/.rbenv/versions/2.2.7/bin
PID_DIR=$DASHING_DIR/tmp/pids
GEM_HOME=/usr/local/share/gems/gems
PIDFILE=$PID_DIR/thin.pid

#store dashing pid in $PID, else empty string
if [ -f $PIDFILE ]; then
   PID=$(<"$PIDFILE")
   else echo ""
fi

case "$1" in
   start)
        echo "Starting Dashing..."
        cd $DASHING_DIR; $ESEC_DIR/smashing start -d -p 3030 && sleep 2s
        echo "Success!"
   ;;
   stop)
        echo "" && echo "Killing Dashing..." && sleep 3s
        if [ -f $PIDFILE ]; then
           kill $PID && sleep 2s && echo "RIP Dashing"
           else echo "Stop beating the dead horse (it's already dead!)"
        fi
   ;;
   logs)
        echo "See the logs of the Dashing."
        tail -f $DASHING_DIR/log/thin.log
   ;;
   status)
        # Check to see if the process is running
        ps aux|grep -i smashing
   ;;

   *)
        echo "Dashing"
        echo $"Usage: $0 {start|stop|restart|status|logs}"
        exit 1
        esac
exit 0

systemd service file:

[Unit]
Description=Dashing
Before=syslog.target network.targe dashing.service

[Service]
TimeoutStartSec=0
Type=oneshot
RemainAfterExit=yes
ExecStart=/home/dashing/dashing-start.sh start
ExecStop=/home/dashing/dashing-start.sh stop

[Install]
WantedBy=multi-user.target

journalctl says that:

Jun 07 11:39:27 srv-sub-dash dashing-start.sh[14549]: Starting Dashing...
Jun 07 11:39:27 srv-sub-dash dashing-start.sh[14549]: bundler: failed to load command: thin (/usr/local/bin/thin)
Jun 07 11:39:27 srv-sub-dash dashing-start.sh[14549]: Bundler::GemNotFound: Could not find smashing-1.0.0 in any of the sources
Jun 07 11:39:27 srv-sub-dash dashing-start.sh[14549]: /usr/local/share/gems/gems/bundler-1.14.6/lib/bundler/spec_set.rb:87:in `block in materialize'
Jun 07 11:39:27 srv-sub-dash dashing-start.sh[14549]: /usr/local/share/gems/gems/bundler-1.14.6/lib/bundler/spec_set.rb:80:in `map!'
Jun 07 11:39:27 srv-sub-dash dashing-start.sh[14549]: /usr/local/share/gems/gems/bundler-1.14.6/lib/bundler/spec_set.rb:80:in `materialize'
Jun 07 11:39:27 srv-sub-dash dashing-start.sh[14549]: /usr/local/share/gems/gems/bundler-1.14.6/lib/bundler/definition.rb:176:in `specs'
Jun 07 11:39:27 srv-sub-dash dashing-start.sh[14549]: /usr/local/share/gems/gems/bundler-1.14.6/lib/bundler/definition.rb:235:in `specs_for'
Jun 07 11:39:27 srv-sub-dash dashing-start.sh[14549]: /usr/local/share/gems/gems/bundler-1.14.6/lib/bundler/definition.rb:224:in `requested_specs'
Jun 07 11:39:27 srv-sub-dash dashing-start.sh[14549]: /usr/local/share/gems/gems/bundler-1.14.6/lib/bundler/runtime.rb:118:in `block in definition_method'
Jun 07 11:39:27 srv-sub-dash dashing-start.sh[14549]: /usr/local/share/gems/gems/bundler-1.14.6/lib/bundler/runtime.rb:19:in `setup'
Jun 07 11:39:27 srv-sub-dash dashing-start.sh[14549]: /usr/local/share/gems/gems/bundler-1.14.6/lib/bundler.rb:100:in `setup'
Jun 07 11:39:27 srv-sub-dash dashing-start.sh[14549]: /usr/local/share/gems/gems/bundler-1.14.6/lib/bundler/setup.rb:20:in `<top (required)>'
Jun 07 11:39:27 srv-sub-dash dashing-start.sh[14549]: /usr/local/share/ruby/site_ruby/rubygems/core_ext/kernel_require.rb:55:in `require'
Jun 07 11:39:27 srv-sub-dash dashing-start.sh[14549]: /usr/local/share/ruby/site_ruby/rubygems/core_ext/kernel_require.rb:55:in `require'
Jun 07 11:39:29 srv-sub-dash dashing-start.sh[14549]: Success!
Jun 07 11:39:29 srv-sub-dash polkitd[4794]: Unregistered Authentication Agent for unix-process:14543:6993938 (system bus name :1.123, object path /org/freedesktop/Policy
Jun 07 11:39:29 srv-sub-dash systemd[1]: Started Dashing.
-- Subject: Unit dashing.service has finished start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit dashing.service has finished starting up.
--
-- The start-up result is done.

systemd thinks that starting was ok. I know that the thin server isn't started and no other process of smashing is running.

Any idea how to get this running?

Ubuntu 16 installation failure.

Still learning the basics for dealing with Ruby. This might not be an application issue, but an ignorance issue.
I cannot install per your install instructions due to errors on "(sudo) gem install smashing"
The error in the logs states:
package configuration for openssl is not found
openssl is the latest version, and I installed libssl-dev as well from searching google.

Is this an issue, or am I missing something basic?
Fresh install of Ubuntu 16, completely up to date on all packages.

Document how to log to a file appender

Would be nice to give an overall guide to users on how they could log - specially from jobs - to external files. This way it would be easier to manage smashing service, rotate logs, etc.

A sysadmin just asked me that, and I noticed all my jobs have always logged to stdout.

Simple tutorial for basic use

After reading the site of dashing and smashing, it appears it is not simple to learn the tool for a basic need :

  • I write a job erb which calls one authenticated API
  • I extract some data
  • I put it in the dashboard using a widget

After some time today on the tool, I still cannot manage to do this simple need, event with the help of the wiki.
A little tutorial for basics use cases would be nice.

Thanks!

Gem name

I am just wondering, is it necessary to give the product a new name to get a new gem entry?

Or is it possible to silently ship updates of the old product from a new organization? Should that be done or should the user make an explicit decision about that?

Given that the original authors authorized the use of the name "dashing", maybe everything should be named dashing2 or something like this.

Trying to create a login page and session authentication

Hello, firstly - great project, I have found this incredibly useful and thanks to all that have contributed!

I have got basic authentication working but it's fiddly having to enter the password... and parsing the credentials in the URL is insecure on public wifi connections.

I have tried using the wiki and the piece on auth_token to create a login page that then allows you to view the dashboard after login.

I would like to get a login form that is presented before the dashboard so that I can use auto-fill on my iOS browser to authorise and proceed from the login form. It only needs to be a simple 1 username and password - no DB, etc required.

Has anyone successfully done this with a login form that they can share?

Many thanks in advance!

Why is bundler not a dependency of smashing?

I installed smashing via gem install smashing. Now I created a project and ran smashing start (This succeeds with return code 0, which is a bug IMO), which does nothing because I did not install the Gems of my project's Gemfile.

In oder to install the project's dependencies I need bundler and I wonder why this was not installed automatically when installing the smashing gem. Is there a use case where we can use smashing without bundler?

Demo dashboard(s)

Currently the Demo runs at http://dashingdemo.herokuapp.com -- I'd like to start a new demo.

We could use this opportunity to showcase some common use cases for Smashing as well. In other words, show more than just the Sample dashboard -- maybe a few "real life" dashboards.

Moving to this repo

I started my project using dashing. Is there an easy way to update my codebase to this one?

Ubuntu errors on Smashing exit

Hello,

Everything works perfectly, however, when I quit the smashing server in the console I get a bunch of errors. Not sure what it all means or how to solve it.

^C/home/administrator/.rvm/rubies/ruby-2.1.0/lib/ruby/gems/2.1.0/gems/smashing-1.0.0/lib/dashing/cli.rb:89:in system': Interrupt
from /home/administrator/.rvm/rubies/ruby-2.1.0/lib/ruby/gems/2.1.0/gems/smashing-1.0.0/lib/dashing/cli.rb:89:in run_command' from /home/administrator/.rvm/rubies/ruby-2.1.0/lib/ruby/gems/2.1.0/gems/smashing-1.0.0/lib/dashing/cli.rb:64:in start'
from /home/administrator/.rvm/gems/ruby-2.1.0@global/gems/thor-0.19.1/lib/thor/command.rb:27:in run' from /home/administrator/.rvm/gems/ruby-2.1.0@global/gems/thor-0.19.1/lib/thor/invocation.rb:126:in invoke_command'
from /home/administrator/.rvm/gems/ruby-2.1.0@global/gems/thor-0.19.1/lib/thor.rb:359:in dispatch' from /home/administrator/.rvm/gems/ruby-2.1.0@global/gems/thor-0.19.1/lib/thor/base.rb:440:in start'
from /home/administrator/.rvm/gems/ruby-2.1.0@global/gems/smashing-1.0.0/bin/smashing:9:in <top (required)>' from /home/administrator/.rvm/rubies/ruby-2.1.0/bin/smashing:23:in load'
from /home/administrator/.rvm/rubies/ruby-2.1.0/bin/smashing:23:in <main>' from /home/administrator/.rvm/gems/ruby-2.1.0@global/bin/ruby_executable_hooks:15:in eval'
from /home/administrator/.rvm/gems/ruby-2.1.0@global/bin/ruby_executable_hooks:15:in <main>'

Use websockets for events (Client limit)

We're having the issue that we want to run 8 dashboards at the same time. Due to the HTTP client limit, we have to open 2 different browsers to make this work.

Switching to websockets seems like a good idea, first of all it's better for the use case and websockets don't have a client limit.

Several Widgets Not Rendered (?)

Hello,

After fresh install I'm unable to get display for a few widgets. Among those tested :

  • IFrame (provided out of the box)
  • dashing-map (additional widget)
  • dashing-trafficmap (additional widget)

For them I do not get anything on screen, just background.

On the other hand all widgets from dashboards examples (sample and sampletv) are working fine...

I searched during hours and I tested many things without result. Initially I was thinking that Google Maps API calls were the culprits but I finally discovered that IFrame has same issue.

The only success I had was with a NodeJS fork of Dashing which allowed me to get a map displayed, but I'd like to use the Ruby version.

I can see some demos on the web so I guess it should work.

Does anyone has same issue ?
Any clue on how to fix this ?

I'm using :

$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 8.6 (jessie)
Release:    8.6
Codename:   jessie

and :

$ ruby -v
ruby 2.1.5p273 (2014-11-13) [x86_64-linux-gnu]

Thanks
Tom

Widget padding issue

After installing using the instructions provided, I'm seeing some extra padding on the widgets when compared to the Dashing sample page, it's affecting all the widgets but it's more noticeable in the convergence graph.

Expected Result (Dashing demo):

screen shot 2017-03-09 at 12 44 55 pm

Actual Result (Fresh Smashing install):

screen shot 2017-03-09 at 12 44 39 pm

As you can see, the graph doesn't go all the way to the border of the widget, you can also see that the buzzwords are closer to the border than in Dashing.

I'm using Mac OS X 10.11.6 with Chrome 56, the result is the same in Firefox.
Ruby 2.4.0, Smashing is 1.0.0.

Custom Project Templates

Currently, running smashing new creates a project from a system-wide gem folder. For various organizational use cases, it would be nice to be able to template a project from a custom location and have the scaffolding done interactively.

Would be cool if we added:

  • Ability to pass a parameter specifying a file path or Git URL to get the template
  • If URL contains a scaffold input config, interactively prompt user for specified inputs and use as variables in the template

How do I start using this fork?

Hello,

How do I switch my current dashing install over to this fork? Sorry that's such a noob question I know. So glad to see this project staying alive.

tx

Provide a way to log to system logs

This is a current request I got from a co-worker (system administrator). At the moment some of the jobs in our dashboard are - as I've normally done - using puts to log a few debug messages.

Recently we had a problem with some dataset, and I told him how I found the issue running it locally and looking at the logs. He asked me to output these messages to the system (Red Hat Linux 6) logs.

This issue is to provide users with similar problems, a way to choose on how to output to stdout, stderr, system log, etc.

Best way to contribute

I'm new to dashing and it's already deprecated!

Was wondering if there's a current state of the union for the fork, as well as if there's any guidelines on the best way to get involved and keep this thing going.

Cannot create custom actions

Hi,

For authentication, I'd like to serve users a separate page, but I seem unable to define a custom action. Instead, it tries to load a dasboard with the name of my custom action (and returns an error because it can't find it). This is an example of a simpe config.ru file for reproduction purposes:

require 'dashing'

configure do
  set :auth_token, 'YOUR_AUTH_TOKEN'

  helpers do
    def protected!
      # Put any authentication code you want in here.
      # This method is run before accessing any resource.
    end
  end

  get '/bla' do
    'bla'
  end
end

map Sinatra::Application.assets_prefix do
  run Sinatra::Application.sprockets
end

run Sinatra::Application

What am I missing?

smashing start failing

Hey!

Thanks for taking the time to read this!

I receive this error when running smashing start, following the quick start guide on the home page

smashing start
Unable to load the EventMachine C extension; To use the pure-ruby reactor, require 'em/pure_ruby'
bundler: failed to load command: thin (/usr/local/bin/thin)
LoadError: cannot load such file -- rubyeventmachine
/usr/local/share/gems/gems/eventmachine-1.2.1/lib/eventmachine.rb:8:in require' /usr/local/share/gems/gems/eventmachine-1.2.1/lib/eventmachine.rb:8:in <top (required)>'
/usr/local/share/gems/gems/thin-1.6.4/lib/thin.rb:7:in require' /usr/local/share/gems/gems/thin-1.6.4/lib/thin.rb:7:in <top (required)>'
/usr/local/share/gems/gems/thin-1.6.4/bin/thin:5:in require' /usr/local/share/gems/gems/thin-1.6.4/bin/thin:5:in <top (required)>'
/usr/local/bin/thin:23:in load' /usr/local/bin/thin:23:in <top (required)>'

Debug Mode for Data coming to Widgets

I have set the debug mode in application.coffee as well as in the widget and still cannot see the data coming into my widgets via the console. Any ideas?

Add a sidebar to Wiki

At the moment whenever I want to find something I always have to skim through the Wiki pages to find the one I am after.

What others think about adding some categories in a Sidebar?

I was playing with Wiki sidebars, but not sure if we want that many sub-levels: https://github.com/kinow/dashing/wiki

Thoughts?

Project Folder

Hey all,

Sorry if this has been asked before, but i cant seem to get my head around something,,,

I see that the projects are created by 'basically copying' what is in the templates/project folder (for the most part anyway!), yet, if i add stuff to that like a new widget, or updated javascript (that i want to apply/appear on each of my new projects) my new additions to the templates/project folder don't seem to appear in the new projects.

Why is that?; or better put... What am I missing?

Thank you.

Build a Job class

Currently, jobs are a ruby file that invoke Rufus scheduler directly and then call send_event. It would be much better for many reasons if there was a superclass which users could subclass. The subclass would be responsible for providing the implementation for a 'run' method which would return a value to the caller.

Benefits:

  • Abstracts the use of Rufus, making it easier to update or replace it in the future
  • Enhanced testability of Job logic -- simply mock job dependencies and assert the output
  • Less confusion for beginners about what is happening when (dashboard start time vs. job runtime)

Make the the github origanization public.

The current Dashing-io organisation on github has no public members.

I strongly believe that if this project is to exist and thrive outside of the organisation it was forked from then it must be opened up and have public members.

Install dashing gem on centos

Hello,

When I try to install dashing gem on Centos or Amazon Linux using gem install dashing. I get the following error:-

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

    /usr/bin/ruby1.9 extconf.rb
   mkmf.rb can't find header files for ruby at /usr/share/ruby/include/ruby.h


 Gem files will remain installed in /usr/local/share/gems1.9/gems/eventmachine-1.2.0.1 for inspection.
 Results logged to /usr/local/share/gems1.9/gems/eventmachine-1.2.0.1/ext/gem_make.out
 [root@ip-10-0-107-75 chef]# gem install dashing -v 1.3.4
 Building native extensions.  This could take a while...
 ERROR:  Error installing dashing:
ERROR: Failed to build gem native extension.

    /usr/bin/ruby1.9 extconf.rb
 mkmf.rb can't find header files for ruby at /usr/share/ruby/include/ruby.h


 Gem files will remain installed in /usr/local/share/gems1.9/gems/eventmachine-1.2.0.1 for inspection.

I've tried installing yum install gcc gcc-c++ make openssl-devel (which is the equivalent of installing build-essential on Ubuntu) and sudo yum install -y libxml2 libxml2-devel libxslt libxslt-devel (which installs the equivalent of libssldev-install on Ubuntu) before attempting to install the dashing gem (version 1.3.4 or 1.3.7) without success.

Can dashing run on other linux distro besides Ubuntu? If so how can I make dashing install?

Thanks

Tiles Switching

Using this 'tweak' from the dashing days ...

https://github.com/QubitProducts/dashing-contrib/wiki/Widget:-Switcher

When i add the property to my tile (in my erb file) the tile does not 'switch' more so, it just puts the 2 in the same 'tile area' like so...

000029

Here is my code...

<script type='text/javascript'>
 $(function() {
// These settings override the defaults set in application.coffee. You can do this on a per dashboardbasis.
//	Dashing.cycleDashboards({stagger: false});
});
</script>

...
...
...

<li data-switcher-interval="3000" data-row="1" data-col="1" data-sizex="1" data-sizey="1">
	<div data-id="onboardingnow" data-view="Hotness" data-title="Agent's Onboarding" data-cool="0" data-warm="15" data-moreinfo="currently"></div>
	<div data-id="srvroffcount" data-view="Hotness" data-title="Servers Offline" data-cool="0" data-warm="1"></div>
	<i class="fa fa-random icon-background"></i>
</li>

I believe it has something to do with the absence of dashing-conrtib gem, but cannot be 100% sure on that. To see all my code, then my project is here: https://github.com/LabTechGeek/rmm_hud

Thanks,.


Self-troubleshooting log:

  1. Rolled jquery.gridster.min.js to v0.5.1 (from 0.7.0) - did not fix.

Can An Upgrade Adapter Be Built For Batman.js Components?

Batman.js is deprecated, it should be replaced. However, there are a ton of excellent Dashing widgets that are written in Batman.js and would be deprecated. This would be a huge hit to the ecosystem, so it has been avoided.

With the fork of the project and new energy I feel building behind it, I think it would be prudent to tackle this question as a stepping stone to talking about how and when to replace Batman.js.

I can think of three approaches to this migration:

  1. Build, test, and support both Batman.js and <cool new framework> components, including dependencies for both libraries. This will be easy up front, but a maintenance hassle forever and ever.
  2. Completely drop support for old components. As I said above, I feel this would be a big hit to the ecosystem overall.
  3. Build an upgrade adapter that makes legacy components work in the cool new way. Maybe we can slowly deprecate features via this adapter and provide guidance on how to rewrite.

IMHO, the best choice is 3 - if it's possible. Supporting both old and new components will be a real hassle in the long term, though there may be ways to minimize that pain. If we don't support legacy Widgets directly in Dashing, they almost certainly will be hacked back in by someone anyway. If a breaking change is found to be necessary, we're basically re-writing the whole project and should almost certainly rename the project ( #8 ).

So, this issue is to explore whether it's possible to create an adapter and what would be involved in doing that.

Smashing Docker Container

There are several Docker containers for Dashing, we should investigate them and take the best bits to make an official Smashing container.

Dashing Fork

Evening!

Went to check the network graph to see what other peeps have done to the smashing fork SINCE Shopify announced that project would be discontinued (from a support PoV), but i cannot as there are 'Too Many forks to show' - given the popularity Dashing had (and what Smashing will have!).

Is there an intent at all to 're-submit this project' as a new project (not forked from anything) so that we can track each others edits/pulls/forks from the project as we know as 'Smashing' from this point forward??

FWIW: I learned so much coding skills from browsing peoples forks etc... I love to see what other people are doing not only with the project, but this for me is a learning tool for sure!!

I have many years experience with Dashing too - and after a re-birth of interest in this project from my employer - i'm gonna be pretty active in 'Smashing' over the coming months/year.

Consider me smashed/dashed/in the club.. whatever ya wanna call it!? ;p

and lastly... Merry Christmas, or Happy Hanukkah, to you!

Why build Ruby from source in Ubuntu installation guide

In the installation guide for Ubuntu (https://github.com/Smashing/smashing/wiki/How-to%3A-Install-Smashing-on-Ubuntu-16.04.1), Ruby is build from source. Is there any very good reason to do so?

On 16.04, we can install Ruby 2.3.x by just saying sudo apt-get install ruby. Doing so ensures that

  • All users get security updates
  • The documentation does not get outdated
  • Installation is way faster
  • We don't risk breaking the system
  • We don't need the scary list of pre-reqs but let Ubuntu do the dependency resolution

Uncaught TypeError: e.data.search is not a function

I Have create the sample dashboard using smashing new command. Everything works fine but there are lot of console error logs as below.

Uncaught TypeError: e.data.search is not a function
    at handler (application.js:1325)
handler @ application.js:1325
application.js:1325 Uncaught TypeError: e.data.search is not a function
    at handler (application.js:1325)
handler @ application.js:1325

Is it possible to create dynamically links on widgets?

Hello,

I found two ways to make a widget clickable, but for both of this ways I have to use static links (link has to be set in the

  • tag at the dashboard.erb file.
    So, I want to manipulate the link dynamically in the job file (dashboard.rb) and send it with the send_event() function to the widgets (like the color of the widget or some text). Is there any way to do so?

  • Is it possible to modify data object in onData, and have the result be rendered?

    I'm making a widget displaying deployment information for a list of servers.
    Incoming data is a list of objects containing a timestamp, and I'm trying to transform the timestamp before it is displayed. (So the user sees "2h ago" instead of "2016-11-26T13:48:01Z")

    How can this be done?

    I'm currently trying to solve it by transforming the incoming data in the overloaded onData method, but the result doesnt update past the first time the event is fired.

    Example:
    Widget coffee file

    class Dashing.Test extends Dashing.Widget
      state: 0
      onData: (data) =>
        data.test = @state++
    

    Widget html file

    <h1 class="title">Works?</h1>
    <p data-bind="test"></p>
    

    Create a channel for questions, development discussions, etc.

    There are several issues raised in GitHub that are questions on how to do certain things in the dashboards. Questions range from simple things in CoffeeScript and Ruby, to more complicated cases that involve third party widgets.

    It is possible to search for issues, trying to find past conversations, but I feel like users may give up when the search returns lots of mixed development and question issues.

    I think we need a channel for this kind of questions. My vote would be for a mailing list that can be archived, like a Google Groups. Other alternatives include point users to use a StackOverflow with certain tags (Apache Jena does that), IRC, Slack, etc.

    Don't really think IRC and Slack are the best options as not everyone uses them, and you may have long periods of inactivity from developers, besides not being very simple to archive and search/link past questions.

    Any thoughts on this?

    Dynamic OnClick URL on widgets

    I've been searching around and so far haven't found a solution for this. My widget downloads and handles json with build data. I'd like to be able to click my widget and be taken to the current build url.

    I've so far found several old issues from the dashing project, but they all seem to handle static URLs:
    Shopify/dashing#36

    What I need is a way to open the dynamic url attribute from my job.rb when the widget is clicked.

    Any help would be greatly appreciated, as I've been searching in vain for quite a while.

    smashing start silently does nothing

    I installed smashing on an OpenBSD 6.0 system with ruby 2.3.1, node JS version 4.4.5. I ran gem install smashing as per the getting started guide. However, when I run smashing start, nothing happens. The command returns immediately, with no indication that it did anything, and looking at the process list shows nothing. How can I debug this?

    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.