Fishao Sibir

22 Sep, 2017 14:45
People attend a ceremony to float out the nuclear-powered icebreaker 'Sibir' (Siberia) at the Baltic Shipyard in St. Petersburg, Russia September 22, 2017 © Anton Vaganov © Reuters
The first serially-produced Sibir nuclear-powered icebreaker, designed to reinforce Russia’s leadership in the Arctic, was commissioned on Friday at the Baltic Shipyard in St. Petersburg.

Mar 25, 2017 How to create a 3D Terrain with Google Maps and height maps in Photoshop - 3D Map Generator Terrain - Duration: 20:32. Orange Box Ceo Recommended for you.

It is one of the three vessels part of Project 22220 which are to become the world’s largest and most powerful nuclear icebreakers.

The lead ship of the project, the Arktika, was commissioned last year.

Designed for transporting cargo via the Northern Sea Route, the Sibir was ordered in May 2015 and is due to be delivered in 2020. The third icebreaker, the Ural, is planned to be delivered in 2021.

Sibir has a displacement of 33,500 tons and is 173.3 meters long with a beam of 34 meters, and has a crew of 75.

The double-draft design allows for operations in both deep Arctic waters and estuaries of polar rivers. The vessel is powered by two nuclear reactors with an output of 175 MW.

The nuclear-powered Sibir will be capable of breaking ice fields up to three meters thick, making way for LNG carriers delivering Russian gas to Asian customers. It will also carry out rescue work in ice conditions and ice-free waters.

“Sibir has its predecessor - the icebreaker [50 Let Pobedy – Ed.] which was commissioned in 1977 and has already seen long service. Its absolute record was set in May when it reached the North Pole. I wish today’s Sibir to also break the record,' said Rosatom’s Director General Alexei Likhachev.

Arctic Prospecting: Russia plans to build 1st-ever civilian use nuclear-powered sub https://t.co/dJGXJ2r3n9

— RT (@RT_com) March 29, 2017

All three ships will be commissioned by Rosatomflot, a subsidiary of Russia’s state atomic energy corporation Rosatom.

With its 30 diesel and four nuclear icebreakers, Russia has become the primary operator in the Arctic. It plans to build another nuclear icebreaker, the Leader, designed to keep the Northern Sea Route, along with the country's Arctic coast, open all year round.

Sibir

The craft will have a working capacity of 110 MW and will be capable of cutting through ice up to 4.5 meters deep.

According to Russian President Vladimir Putin, the Leader will be by delivered by 2025.

Bidirectional routing using datastructures for Clojure and ClojureScript.

Motivation

The] to your dependencies and make sure you have Clojars as one of your repositories. This library requires Clojure(Script) 1.8 or higher.

Defining routes

A routes structure is a collection of sequences, with three or four elements.The request-method, a clout-like path, a handler (or any object really), and optionally a tag.Note that the paths are not fully clout compatible, see limitations section.For example:

NOTE: In clout paths, a * can be used to define a catch-all path. In sibiro, this can also be :*. Inline regular expressions after the route parameter keywords are also supported.

The order in which the routes are specified does not matter.Paths with more parts take precedence over shorter paths, exact URI parts take precedence over route parameters, catch-all parameter (*) is tried last, and specific request methods take precedence over :any.

To use the routes with the other API functions, they need to be 'compiled' using compile-routes.This transforms above datastructure into faster structures and functions.For example:

Matching an URI

Given compiled routes, an URI and a request-method, the function match-uri returns a map with :route-handler, :route-params and a lazy :alternatives, or nil if no match was found.Note that for a route to match, its inline regular expressions for route parameters need to match as well.For example:

The values in :route-params are URL decoded for you.The value of :alternatives is lazy, so it won't search for alternatives if not requested.Note that the URI parameter should not contain a query string.

Generating an URI

Fishao

Given compiled routes, a handler (or tag), and optionally parameters, the function uri-for returns a map with :uri and :query-string, or nil if the route could not be found.For example.

An exception is thrown if parameters for the URI are missing in the data map, or are not matching the inline regular expressions.The values in the data map are URL encoded for you.

NOTE: There is also a convenience function called path-for that concatenates the :uri and :query-string from uri-for.

That's all there is to the core of this library. Read on for some provided extras and possibilities.

Provided extras for basic defaults

The sibiro.extras namespace contains some extra functions that can be used to get you up to speed quickly.Note that these extras are Clojure only for now. Below are some of them.

wrap-routes

This middleware takes compiled and uncompiled routes as an argument.On an incoming request, it merges the result of match-uri of the request with the request, and calls the wrapped handler.This way, the wrapped handler receives both :route-handler and :route-params, if a match was found.

wrap-try-alts

This wraps the handler by merging in each entry from the :alternatives in the request one by one, until a non-nil response is given from the handler.The first time the request is passed as is to the handler.

route-handler

A basic handler that uses the information from above wrap-routes.It assumes the :route-handler value is a request handler, and calls that with the request.If no :route-handler is available, a 404 response is returned.

make-handler

If all you need is the above basic route-handler, you can call make-handler with the (compiled or uncompiled) routes, and you get the route-handler wrapped with wrap-try-alts and wrap-routes back.A voila, a basic request handler using sibiro.

Fishao Sibir Fish

As always, have fun!

Limitations

As explained above, sibiro has the feature that the order of the routes does not matter.This does imply two limitations on the clout-like paths of the routes:

Fishao Sibiri City

  1. Only one route parameter can be used between slashes

  2. Dispatching on a route parameter regular expression does not work for route parameters that are in the 'same position', i.e. prefixed by the same path.

For example, the following two routes structures do not work:

Fishao Sibiri City

Contributing

Patches and ideas welcome.

Master branch:

Fishao Sibir Snow

License

Fishao Sibir Generator

Copyright © 2016 Functional Bytes

Distributed under the Eclipse Public License either version 1.0 or (atyour option) any later version.