Pintask — programmable task-tracker

fireworks, Habr!

According to statistics, the new task-tracker appears every 2 weeks. "But my able to brew cappuccino!" — I will tell you the developer. — "And the other trackers make tea of the same quality as conductors of the train "Moscow-Gelendzhik", or just brew Kopi Luwak". So if you could just cut the tap that was pouring the cappuccino, you would not have to write new task-tracker? "Well of course! Just the cappuccino is my favorite drink"...

About what is common between coffee makers and Optimus Prime, why do we have programmable task-tracker and how to cut faucet — read under the cut.


image In 1969, the situation with chips looked about the same as the current situation with the trackers. You want to produce a calculator? Print its chip. Want to release a calculator with the function of multiplying by 1000 (the Brazilian accountants)? Print another chip. This logic guided the Japanese ordered as many as 12 Intel chips for their calculators. Regular rock star of the company, Ted Hoff, looked experienced eye drawings and suggested refactoring. Then, as befits a rock star, he skinul the process, instructing the implementation of the ideas Federico Faggin. Management scored well on the project, as at the moment, fiercely furiously developed in a different direction, and earn at Bentley was there. This greatly accelerated the development, and in 1971-m programmer electrical finished the test and is rolled out to production launched the series. Intel trumpets complied with the order of the Japanese and under the guise of opening a new business. After a few years the market of microprocessors suddenly became so profitable that Bentley earned already there.

Fast forward to nowadays, where the world is ruled by a passion for coffee and every day there are new task-trackers. The situation itself suggests the refactoring. It seems logical to write such a tracker, in which you can "cut any tap" to loosen or to tighten each nut a little harder, replace the thermostat and put the steam regulator to the end of the day boil a drink. Such programmable task-tracker — is Pintask.

plumbers


To be HONEST, the advent of the microprocessor was theoretically possible in the early 1960s, when they began to be mass-produced integrated circuits. However, any young electrical engineering of the way was beset with technological hurdles 80 level. Federico Faggin knew about them firsthand. But a doctorate in physics he wasn't given the transition of the Moscow metro, and the University of Padua. Therefore, in 1968, the year Federico created the first field-effect transistor on a silicon basis, which worked faster than the other, bipolar, and even take up less space, cost less, saving electricity. Now it was not to turn off the light in the toilet not to worry about the optimality of circuits: calculators, microprocessors piled and multiplied faster than their predecessors just because they worked on field-effect transistors. Well, the price tag was lower that in the purchase of devices on the entire Brazilian accounting very very significantly.

For assessment consult the world expert on innovation:
— Master Ford, do you think, would be if microprocessor technology to develop further, or manufacturers of bipolar transistors will find a way to turn back the clock?
— I am convinced that innovation at a lower level is able to change an existing industry. In my opinion, we are talking about.
Thank you for the review. And now to the news from the world of science. Astronomers report an unusual space...

Pintask written in Meteor. This framework is among the most popular repositories on Github in the weight category of JavaScript — and this is even before the official release (current version: 0.8). Only one announcement on Hacker News collected 1362 voice. Excerpts from reviews: "It's like the industrial revolution", "I can't upvote this enough" — well, you understand. Even ate half a pack of skepticon, we can safely say that Meteor opens a new page in web development. And HTML code on this page "live": receiving the new data from the server will automatically update the template, you don't need to watch that. Oh yeah, and forget about the Ajax request: change data is performed using the full MongoDB API for JavaScript is available directly in the browser. As a result, 90% of the computations are performed on the client. Code on Meteor is smaller is smaller, cheaper is written faster, saves energy reduces the amount of data transmitted. Marty, have you been playing with the plutonium?
Let's see what happens. Access to the database is right there in the browser, it's time. Also the templates in the browser is two. Everything works in JS+HTML, it's three. What if you give the user the ability to connect scripts? After all, they can be used and the audience to hang, and templates to override, and the data record... and saw through the tap. And tighten the nut. And thermostat put.

All cappuccino


Pintask first task tracker, written in Meteor. And the first task-tracker to upload your extensions directly in the browser, giving them full access to the database API and templates.

This example one of these extensions:

the
if !Cards
throw "Hey, where are my Cards?"
if !Comments
throw "Look, I need those Comments, too!"

Comments.after.insert (userId, comment) ->
cardId = comment.cardId
card = Cards.findOne(cardId)
if userId not in card.memberIds
Cards.update(cardId, {$addToSet: {memberIds: userId}})


lately I've been addicted to CoffeeScript... not mainstream, but the development accelerates.

This simple automation, you can disassemble it blindfolded. In the beginning there is a pair of checks in the event of a nuclear war (if our script will call on the other site). Then comes the installation of the bombs that trigger when you insert a comment. In the case if onset is not a member of cards, he throws back the shock wave.

Do you want to see work with templates? I have. It involved jQuery, at first glance, the code resembles the Italian dish. But if to start its absorption from the lower edge, the taste reveals a harmony, and then... "the Waiter, repeat!"

We should also mention the connection of external data sources. White magic allows you to create tasks from Google Spreadsheet row. And black magic with the involvement of otherworldly API provides the possibility to call directly in the Github Issues Pintask and to arrange a session of bidirectional communication between the internal and external review of the tracker. All this happens through a MongoDB collection. In fact, such an extension is a separate application that loads the data into a Pintask with a special script.

Behind the bar


By the way, to connect your own extension using the same Github. In the simplest case it is sufficient to publish the repository to Github Pages, to get a direct link to the js file and paste in Pintask. Turns dry and comfortable (and is updated upon receipt of the commit).
And if you want to connect the whole app with your blackjack, then you can upload on free hosting from the same Meteor, and paste a link to it.

For the user it looks even easier. Just go to extensions, choose what you want, press the magic button and flick of the wrist coffee maker turns into Optimus Prime.

As human programmers are generous, then it is safe to say most apps are free. But if the toad will strangle, or will need more wood (volume the file archive, SMS gateway), it is possible to make a user application from which he can not refuse. We do and earn.

Synchronize clock


Oh! Here it is, a paid app: time tracking on autopilot. We all know how difficult programmers are given the time-tracking. After wandering through the convolutions of our mind, you can find a similar internal dialogue:

Hey, mind! Let's think about integration with Yandex.Market.
— Wait-wait... And the button "start" click remember?
— Oh, right. Here, I pressed.
— Well done. So what were you saying about Bitcoin?
— What Is Bitcoin? I was talking about Yandex.Market.
Oh, yeah... wait, did you pressed the button "start" from the previous problem?
Yeah, I think. Or not. Check it out.
— Let's check. And I'm here solitaire decomposed.

Not to go to a shrink, we decided to change the usual mechanism for taking the time and refused the "Start" button. Instead, we set the icon to "Enable time tracking" in the header of each list. Time tracking starts automatically when you log on and begin tracking the first task in the list. When a task is archived or transferred to another list, time tracking switches to the next task on the principle of the cage. As a result, the programmer does not think about the timing. He's just doing his job, and the system automatically records the time intervals.
The technical implementation uses the standard mechanisms of the Meteor and the package user-status for monitoring the activity. Already familiar to the students in the MongoDB collections allow you to define the monitored task. Your code does not use setTimeout (Holy, Holy), only events. As a result, even a restart of the server is not able to break the course of history.

Want to get accurate records? you can Come back.

dessert


How much is the underlying platform? Pintask completely free. We have no restrictions of functionality, no ads, no subscription fees. But there is open wiki, conscientious support and sheep in the background.

And finally: Pintask strives to become a complete replacement Trello (eng. "drop-in replacement"). All the basic functions of the overseas service already implemented. There are instant import from Trello. We are also going to make bi-directional synchronization to provide access to Pintask via the mobile app Trello (before do own).

In the next articles we are going to talk about the product development process and the nuances of using the internal API. Now will the curtain, and whether the encore is up to you.

Final link: Pintask programmable task tracker.

Article I published at the request of Denis Gorbachev (starfall), the entire text is fully original.
Article based on information from habrahabr.ru

Комментарии

Популярные сообщения из этого блога

The release of the new version of the module modLivestreet 0.3.0-rc

mSearch: search + filter for MODX Revolution

Emulator data from GNSS receiver NMEA