When we had a reliable integration of Jenkins and the release of the product was established, a thought arose: why not adopt
best practices and put your
information radiator in the office: a big beautiful screen that automatically displays what is happening with project processes?

A good idea, but because it costs money and time, that is, something that is never there. Especially now. Especially for small companies without budgets for all kinds of auxiliary purposes. Everything had to be done for “five kopecks” and for “five minutes” - and this is how I dealt with this [partially].
Why do you need it
Of course, then, to increase productivity.
')
First of all, to facilitate the tracking of the "health" of continuous assembly Jenkins. The fact that the problem with fixing the assembly / unit tests is solved the easier, the earlier they begin to solve it, we have long been convinced by our own experience. While all the details of what you just did are fresh in your memory, it is easier to fix the “broken” as a result of your actions. And a large “traffic light” hanging in the room, having switched from a green signal to a red one, notifies about the “collapsed” assembly of everyone at once, this is the fastest and most noticeable way of notification. This has long been stated in the unit testing and continuous integration manuals, and this is undoubtedly true.
Secondly, the information screen should be part of a set of measures to establish communications in the project. In an expanded project, many tasks are performed in parallel, and a person completely immersed in one isolated task often gets no information about what developers in the next room and remotely from other cities are working on (and we have those and others). All the details are explained at the seminars and in the newsletters, but even before them, seeing the keywords flashing in the tasks of the change request control system and comments to the commits to the version control system is undoubtedly useful to all project participants.
Further, it improves the quality of work. The realization that the comment to the commit to the version control system, which you are doing now, will be visible to everyone on the big screen in a second, involuntarily makes you write these few words more carefully.
And last but not least - it looks cool!
Software part
So, with the minimum financial and time budget, there was no way to invest in developing something unique, and even draw a design. I needed something almost ready. The search led me to the
Dashing Ruby framework, which was designed to construct information boards on large screens.
Architecturally, the idea is very simple: a “live”, automatically updated Web page is being formed, a web browser opens on the monitor in full screen — and that’s it. Dashing had the following advantages:
- ready-made example with a layout optimized for 1080p TV,
- the ability to use the mouse to position widgets (aka informers aka tiles with information) on the screen,
- many standard widgets
- even more extra widgets
- the ease with which you can develop your own widgets (you can read about the Dashing technology on Habré ).
In April 2016, the main developers of Dashing announced that they would no longer develop it, but I think this is not a problem for the popular OpenSource project.
Up to this point, I have never worked with Ruby. However, it turned out to be easy to figure out how to install and configure everything. A bit of unnecessary gestures are needed to install everything on Windows (with Linux, as far as I understand, everything is elementary),
Here is a list of actions that worked for me:- Install node.js.
- Install Ruby with rubyinstaller.org .
- Install RubyDevKit from there.
ruby dk.rb init ruby dk.rb review ruby dk.rb install
gem update system :: , gem install htmlentities gem install bundle gem install nokogiri gem install dashing
I decided to place on widgets the following information:
- Jenkins build status informers,
- headers of fresh posts to the google mailing group,
- comments to the latest commits in the SVN repository with source codes,
- information on changing ticket statuses in Trac.

For the basis of the widget for Jenkins, I took one of the
widgets in the
rich library for Dashing. Since I wanted the display on the monitor to be as close as possible to what a person sees on the Jenkins page, I improved the widget by adding to it the “weather conditions” icons of the project used in Jenkins itself. At the same time, the background color of the “tile” corresponds to the status of the last build: green — the last build is successful, gray — the build is in progress, red — the build is unsuccessful. Modifying the widgets for Dashing was pretty easy and pleasant, and I decided to go further.
To display information about what appears in the Trac system and in the distribution group, you need a widget that displays an RSS feed. It had to be cloned and modified separately for Trac and for the Google group due to the local features of the RSS format. It was possible to “decorate” the ribbon of the Trac-events with the help of the Trac icons of the open and closed tickets.
Most of all, I had to tinker with the comments comment for commits from SVN. The Subversion server does not have a built-in RSS service, and there are also no ready-made solutions in the Dashing widget library. After studying the question, I realized that the only suitable method is to run the svn log command and analyze the data it outputs using regular expressions. At this point, I’ve figured out enough in both Ruby and widget creation to make a script that combines comments to different repositories and then sorts them in chronological order.
Finally, it remained to experiment with the layout of the widgets on the screen with the addition of hours and - from above - the widget that displays the user name, time and character of the last recorded action information panel.
The content was ready, and it was time to acquire and install a large screen.
Hardware part
What to choose as a monitor? I immediately realized that, on the one hand, there is such a thing as “wide-dialed professional monitors”. Their cost amounts to hundreds of thousands of rubles, and for us it was an absolutely unacceptable option for the budget. On the other hand, modern household TVs are equipped with HDMI inputs, have high resolution and are much cheaper. Therefore, I decided to take a home TV.
As it turned out later, everything, of course, is not so simple and the home TV is poorly suited for such a task (what else will be discussed). But the huge difference in price is not justified, so if you decide on something like this - you choose.
Based on the size of our room and installation site, I decided that the diagonal 46 '' is appropriate. My choice initially fell on the Samsung brand, but at the appointed hour the supplier informed me that they no longer have the Samsung model ordered and prepaid by bank transfer and they can offer a similar, and even more “advanced” LG model. So in our office was a huge flat-panel TV LG.
NB: The accountant needs to additionally inform that the TV was purchased as a monitor, i.e. the means of production, in order not to buy it from the company's profits and thereby reduce the tax.
I must say that I understand badly in “TV” type gadgets, because I don’t have my TV in the house, as unnecessary. It turns out that all of them now want to be similar in functionality to smartphones or tablets. LG got us a “webOS system”, connecting to the network via WiFi and the ability to
install applications and drive texts from the console using T9.
Amid all this abundance of opportunities, I was interested in connecting via WiFi (no wire needed) and a web browser. This made it possible to place the application server in a virtual machine in the data center, open the browser on the TV, type the server address using the remote control - and voila, the information panel appeared on the screen, it's done!
Unfortunately, I was happy too soon. Exactly 10 minutes later the picture went out and the TV began to show a “screensaver”, which disappeared only if you press any key on the remote. “Not a problem,” I decided, and began searching the menu for options for turning off the screensaver. Option not found. I turned to Google and instead of a ready-made recipe I came across a page on the official forums of the LG company, where several of the poor people like me told me that they had bought their magnificent big TV for a constant broadcast on its webpage screen, and complained about the impossibility disable screensaver. LG did not respond to its official forum. Apparently, not without reason: LG knows something about the matrices of its televisions, if they show a static image for hours on them, and does not want to spend money on their warranty replacement.
So the idea of ​​using the browser built into the TV turned out to be a failure and it was necessary to invent something else. It only remained to use the HDMI input, which means that a video signal source should be placed near the TV, i.e., no computer. The cost of the project increased.
The source of the video signal was supposed to be simple, cheap and reliable, without any special requirements for the speed of the system. I settled on the MSI WindBox DC-111 nettop, which turned up at a bargain price. I must say that this small car did not let us down: working around the clock, it has been reliably performing (and continues to perform) its task for almost a year. And during corporate parties, we run on it scrolling photos and videos.

TV continued to "show character." Using timers, it was configured to automatically turn on at 9:00 and off at 19:00 on workdays. But for some reason, three hours after the automatic morning switch-on (i.e., exactly at noon), if you do not press any buttons on the remote, it goes out. If you then turn it on manually, it works as long as it’s necessary without shutting down (of course, the entire settings menu has been carefully studied, all the “energy saving” options are disabled). This continues to this day.
Conclusion
Our emitter has been working for almost a year, and based on the results of this story I can draw the following conclusions:
- The task requires some ingenuity, but nothing impossible for professional programmers.
- The Dashing framework can be safely recommended as a system for quickly and conveniently assembling information panels.
- The idea of ​​using a home TV as an info panel has pitfalls: our LG TV struggles to work in this mode. Although for the year of work with his matrix nothing happened at all.
I don’t give here the source codes of my system, because I understand that in each specific case the requirements for filling the information panel are very individual (but I’m willing to share it with those who wish). Examples and ready-made solutions on the Dashing website are abundant.