The document discusses using mRuby and lightweight APIs for microservices. It introduces mRuby as a lightweight Ruby implementation that can be embedded into applications. It then demonstrates using mRuby with Nginx through the ngx_mruby module to build a simple microservice for handling API requests. Benchmark tests show the mRuby implementation serving requests faster than a standard Rack implementation in Ruby. However, some downsides of mRuby are also noted, such as needing to recompile when adding dependencies and lack of features like require that make code less dry.
Overcommit is a tool that runs pre-commit hooks to check code quality and enforce best practices before code is committed to a repository. It can be installed on a new project by running "gem install overcommit" then "overcommit --install" which will configure pre-commit hooks for linting, formatting and other checks using tools like RuboCop. The hooks that can be run include CommitMsg, PostCheckout, PostCommit, PostMerge, PreCommit and others to check code at different stages of the development workflow.
Building Web-API without Rails, Registration or SMSPivorak MeetUp
The document discusses problems with Rails and other frameworks like Sinatra, and proposes using Rack to build a simple yet high-performing API framework. It demonstrates how to build responders as Rack applications with classes that encapsulate response codes, headers and bodies. The responder framework is faster and more maintainable than alternatives like Rails or Sinatra. It achieves performance gains through a minimalistic approach while still supporting features like status codes, parameters and metadata.
Rails is optimised for the first weeks of development. At the later phases it's no longer the speed of adding new views and data that matters. It's often more about the different (and changing!) ways of using the data. The business logic gets more complicated.
DDD has answers to those problems. Detecting the bounded contexts is the crucial skill. Choose which parts of the app leave as CRUD and which could go into more of the tactical DDD.
"Ruby meets Event Sourcing" by Anton PaisovPivorak MeetUp
Talk about Event Sourcing in Ruby by Anton Paisov, given during 14th #pivorak Lviv Ruby MeetUp, Ukraine.
Details:
"That's an introduction into Event Sourcing with examples written in Ruby + why UD (from CRUD) are often bad for business".
UDD: building polyglot anti-framework by Marek PiaseckiPivorak MeetUp
Marek Piasecki advocates for an anti-framework approach to web development called UDD (Understanding Driven Development). UDD is against using frameworks and other methodologies that dictate application structure. It promotes choosing your own abstractions and tools based on what is needed rather than following a predefined framework. The document provides a case study example of how UDD allows flexibility in choosing abstractions like migrations, models, controllers, and views without constraints of a framework. It emphasizes determining your own optimal structure for a project rather than conforming to prescribed framework conventions.
Slides from @apotonick's talk during 14th #pivorak Lviv Ruby Meetup, Ukraine.
Nick is a Trailblazer creator and it gives developers structure and architectural guidance and finally answers the question of "Where do I put this kind of code?" in Rails.
What's Trailblazer?
“To a better code structure with more abstraction layers. Trailblazer introduces desperately needed new objects into web architectures like Rails. Form objects, operations, policies, view models, and more, help engineering teams to step-wise introduce the Trailblazer architecture into messy Rails apps.”
The talk will be about solving CSS issues in big projects by adopting Functional CSS methodology.
You will learn how to take best ideas from Functional Programming, and apply them to your CSS codebase. This means side-effects are limited or nonexistent, already created classes can't be overridden because they are immutable and they are trying to be as "pure" as it's possible to achieve in CSS.
The Silver Bullet Syndrome by Alexey VasilievPivorak MeetUp
This document discusses various technology trends and challenges related to software development. It cautions against blindly following trends or buzzwords and emphasizes the importance of understanding user needs and making choices based on project context rather than social pressures. While new technologies can enable improvements, there is no single "silver bullet" solution and all code comes with costs that must be weighed against the goals of building useful software.
This document introduces ESpec, an Elixir testing framework that provides a behavior-driven development (BDD) style similar to RSpec. It discusses how ESpec was created to bring a familiar RSpec-like testing experience to Elixir developers from Ruby. The document outlines key features of ESpec like describe/context/it blocks, matchers, expectation syntax, before/after hooks, mocking, and output formats. It also briefly introduces ESpec Phoenix for integrating ESpec with Phoenix web apps.
"5 skills to master" by Alexander SkakunovPivorak MeetUp
"5 skills a Ukrainian developer has to master to work in Europe" - Lightning Talk by blogger and lead php developer Alex Skakunov, given during #pivorak Lviv Ruby MeetUp, Ukraine.
Building component based rails applications. part 1.Pivorak MeetUp
The document discusses the results of a study on the impact of climate change on coffee production. Researchers found that suitable land for coffee production could decline by up to 50% by 2050 due to rising temperatures and changing rain patterns associated with climate change. Arabica coffee was found to be most at risk, as its growing regions would shrink significantly according to the study's climate models. The study concludes that climate change poses a serious threat to the coffee industry worldwide if action is not taken to mitigate future warming.
(1) Clojure is a functional programming language that uses parentheses syntax and runs on the JVM; (2) It has features like immutability, concurrency constructs like atoms and agents, and support for functional programming patterns; (3) Clojure can be used for both functional programming and object-oriented programming with records, and has tools for metaprogramming, async programming with core.async, and compiling to JavaScript with ClojureScript.
The document discusses some limitations of object-oriented programming in Ruby including breaking encapsulation, lack of inheritance, and forcing immutability. It then presents mixins, patterns, and composition as alternatives to inheritance for code reuse in Ruby. Finally, it briefly mentions typed Ruby and the potential for adding contracts and interfaces to help address some of the limitations of Ruby's object model.
Pivorak How to write better sentences in EnglishPivorak MeetUp
Iryna Zayats, RoR Dev with freelance experience tells you about perfect mails in English:
- how to start writing it properly;
- how to make mails/memos/instructions really work;
- how not to sound weird :)
The document provides an overview of Elasticsearch and how it can be used to make software smarter. It discusses how Elasticsearch works and its advantages over other search technologies like SQL and Sphinx. The document also includes case studies of four projects that used Elasticsearch for tasks like search, recommendations, and parsing classified ads. It covers how to install and configure Elasticsearch, as well as how to query an Elasticsearch index through its RESTful API.
Broker: adventure through architecture patternPivorak MeetUp
This document discusses the benefits of using a broker architecture for distributed systems. It explains that a broker introduces reliability, availability, maintainability, and scalability by decoupling clients and services. The broker has three main parts - the client-side broker, broker core, and server-side broker. The client-side broker handles service lookup and request handling for clients. The broker core routes requests between clients and servers using middleware. The server-side broker manages service lookup and invocation on the server side.
The document discusses using Ramda, a functional programming library, to write declarative JavaScript code. It promotes approaches like describing what to do instead of how, avoiding duplication, composing functions, and less code leading to fewer bugs. Specific Ramda functions and techniques are explained, like currying, point-free style, and function composition, with examples given for filtering arrays of objects in a declarative way. Alternatives to Ramda like PureScript and lodash are also mentioned.
Flowex - Railway Flow-Based Programming with Elixir GenStage.Anton Mishchuk
Flowex is a set of abstractions build on top Elixir GenStage which allows writing program with Flow-Based Programming paradigm.
I would say it is a mix of FBP and so-called Railway Oriented Programming (ROP) approach.
Flowex DSL allows you to easily create "pipelines" of Elixir GenStages.
Linux Tracing Superpowers by Eugene PirogovPivorak MeetUp
This document discusses Linux tracing tools and the evolution from DTrace on BSD to eBPF on Linux. It begins with an overview of DTrace and its capabilities on BSD, then discusses the limitations of early Linux tracing tools. It introduces eBPF and the BCC compiler collection, which make it easier to write and use eBPF programs. Examples are given showing how BCC can be used to trace system calls, file opens, and command executions. The document argues that BCC and eBPF help address the problems of early Linux tracing by making the tools more approachable and powerful for production use.
Lisp(Lots of Irritating Superfluous Parentheses)Pivorak MeetUp
My presentation is about Lisp, and its influences on ruby language.
Also speak about Lambda calculus and Turing machine. This is crucial for Lisp origins understanding.
Show major Lisp dialects. And speak a little about Emacs and Emacs Lisp.
Also I going to show project management in Common Lisp and describe CLOS (Common Lisp Object System).
Slides from @apotonick's talk during 14th #pivorak Lviv Ruby Meetup, Ukraine.
Nick is a Trailblazer creator and it gives developers structure and architectural guidance and finally answers the question of "Where do I put this kind of code?" in Rails.
What's Trailblazer?
“To a better code structure with more abstraction layers. Trailblazer introduces desperately needed new objects into web architectures like Rails. Form objects, operations, policies, view models, and more, help engineering teams to step-wise introduce the Trailblazer architecture into messy Rails apps.”
The talk will be about solving CSS issues in big projects by adopting Functional CSS methodology.
You will learn how to take best ideas from Functional Programming, and apply them to your CSS codebase. This means side-effects are limited or nonexistent, already created classes can't be overridden because they are immutable and they are trying to be as "pure" as it's possible to achieve in CSS.
The Silver Bullet Syndrome by Alexey VasilievPivorak MeetUp
This document discusses various technology trends and challenges related to software development. It cautions against blindly following trends or buzzwords and emphasizes the importance of understanding user needs and making choices based on project context rather than social pressures. While new technologies can enable improvements, there is no single "silver bullet" solution and all code comes with costs that must be weighed against the goals of building useful software.
This document introduces ESpec, an Elixir testing framework that provides a behavior-driven development (BDD) style similar to RSpec. It discusses how ESpec was created to bring a familiar RSpec-like testing experience to Elixir developers from Ruby. The document outlines key features of ESpec like describe/context/it blocks, matchers, expectation syntax, before/after hooks, mocking, and output formats. It also briefly introduces ESpec Phoenix for integrating ESpec with Phoenix web apps.
"5 skills to master" by Alexander SkakunovPivorak MeetUp
"5 skills a Ukrainian developer has to master to work in Europe" - Lightning Talk by blogger and lead php developer Alex Skakunov, given during #pivorak Lviv Ruby MeetUp, Ukraine.
Building component based rails applications. part 1.Pivorak MeetUp
The document discusses the results of a study on the impact of climate change on coffee production. Researchers found that suitable land for coffee production could decline by up to 50% by 2050 due to rising temperatures and changing rain patterns associated with climate change. Arabica coffee was found to be most at risk, as its growing regions would shrink significantly according to the study's climate models. The study concludes that climate change poses a serious threat to the coffee industry worldwide if action is not taken to mitigate future warming.
(1) Clojure is a functional programming language that uses parentheses syntax and runs on the JVM; (2) It has features like immutability, concurrency constructs like atoms and agents, and support for functional programming patterns; (3) Clojure can be used for both functional programming and object-oriented programming with records, and has tools for metaprogramming, async programming with core.async, and compiling to JavaScript with ClojureScript.
The document discusses some limitations of object-oriented programming in Ruby including breaking encapsulation, lack of inheritance, and forcing immutability. It then presents mixins, patterns, and composition as alternatives to inheritance for code reuse in Ruby. Finally, it briefly mentions typed Ruby and the potential for adding contracts and interfaces to help address some of the limitations of Ruby's object model.
Pivorak How to write better sentences in EnglishPivorak MeetUp
Iryna Zayats, RoR Dev with freelance experience tells you about perfect mails in English:
- how to start writing it properly;
- how to make mails/memos/instructions really work;
- how not to sound weird :)
The document provides an overview of Elasticsearch and how it can be used to make software smarter. It discusses how Elasticsearch works and its advantages over other search technologies like SQL and Sphinx. The document also includes case studies of four projects that used Elasticsearch for tasks like search, recommendations, and parsing classified ads. It covers how to install and configure Elasticsearch, as well as how to query an Elasticsearch index through its RESTful API.
Broker: adventure through architecture patternPivorak MeetUp
This document discusses the benefits of using a broker architecture for distributed systems. It explains that a broker introduces reliability, availability, maintainability, and scalability by decoupling clients and services. The broker has three main parts - the client-side broker, broker core, and server-side broker. The client-side broker handles service lookup and request handling for clients. The broker core routes requests between clients and servers using middleware. The server-side broker manages service lookup and invocation on the server side.
The document discusses using Ramda, a functional programming library, to write declarative JavaScript code. It promotes approaches like describing what to do instead of how, avoiding duplication, composing functions, and less code leading to fewer bugs. Specific Ramda functions and techniques are explained, like currying, point-free style, and function composition, with examples given for filtering arrays of objects in a declarative way. Alternatives to Ramda like PureScript and lodash are also mentioned.
Flowex - Railway Flow-Based Programming with Elixir GenStage.Anton Mishchuk
Flowex is a set of abstractions build on top Elixir GenStage which allows writing program with Flow-Based Programming paradigm.
I would say it is a mix of FBP and so-called Railway Oriented Programming (ROP) approach.
Flowex DSL allows you to easily create "pipelines" of Elixir GenStages.
Linux Tracing Superpowers by Eugene PirogovPivorak MeetUp
This document discusses Linux tracing tools and the evolution from DTrace on BSD to eBPF on Linux. It begins with an overview of DTrace and its capabilities on BSD, then discusses the limitations of early Linux tracing tools. It introduces eBPF and the BCC compiler collection, which make it easier to write and use eBPF programs. Examples are given showing how BCC can be used to trace system calls, file opens, and command executions. The document argues that BCC and eBPF help address the problems of early Linux tracing by making the tools more approachable and powerful for production use.
Lisp(Lots of Irritating Superfluous Parentheses)Pivorak MeetUp
My presentation is about Lisp, and its influences on ruby language.
Also speak about Lambda calculus and Turing machine. This is crucial for Lisp origins understanding.
Show major Lisp dialects. And speak a little about Emacs and Emacs Lisp.
Also I going to show project management in Common Lisp and describe CLOS (Common Lisp Object System).
Business-friendly library for inter-service communicationPivorak MeetUp
I’m going to share the experience of creating a platform-level client library for communication between internal services.
The talk partially covers topology and protocols related decisions we made.
But the main focus is the Ruby library that defines the inter-service communication framework using business-related abstractions.
Sergiy Kukunin has 9 years of Web Development career and 4 of them - with Ruby. Now he is freelancing and owns a tattoo studio. But the story he is gonna share with us this time is about being a Team Leader - all from a personal experience.
Ever wanted to lead a team?
Hear his sincere story, practical advice and tips how not to screw up.
The document discusses Rails MVC architecture and its key components. It describes how the MVC pattern separates an application into the model, view, and controller components. It then provides examples of how routing, controllers, models, views, and layouts work in Rails applications to implement the MVC pattern.
Ruby on Rails is a full-stack web application framework written in Ruby. It allows developers to build database-backed web applications rapidly using conventions like MVC pattern and follows "convention over configuration" principle. Rails includes features like Active Record (ORM), validations, migrations, scaffolding, routing and helpers to help develop web applications quickly. Testing is an important part of Rails development using tools like RSpec, Factory Girl, Cucumber and Capybara.
Ruby Summer Course by #pivorak & OnApp - OOP Basics in RubyPivorak MeetUp
The document provides a list of resources for learning Ruby including books, podcasts, and websites. It recommends the books "The Well-Grounded Rubyist" by David A. Black, "Clean Code" by Robert C. Martin, and "POODR" by Sandi Metz. It also recommends the Ruby Rogues podcast available at https://devchat.tv/ruby-rogues as a podcast resource for learning Ruby.
The Saga Pattern: 2 years later by Robert PankoweckiPivorak MeetUp
When you split your application into multiple module how do you make them talk to each other? How do you make them react to changes happening in other parts of the system? How do you make them tell each other that something needs to be done? When should it happen? We will have a look what we can squeeze out of domain events being published in various parts of our application and how we can use them to orchestrate a bigger business process.
Data and Bounded Contexts by Volodymyr BynoPivorak MeetUp
Just a small talk about data segregation/modularity from the DDD perspective. It might be interesting for engineers that have to deal with the huge projects. Especially ones that are looking forward to visiting DDD workshop.
Successful Remote Development by Alex RozumiiPivorak MeetUp
More about his talk :
"You've most likely already heard something about remote work. While the concept is not that old, it's a trend that many well-known brands are implementing.
In this presentation, you'll learn the essentials and seldom thought of pitfalls about remote work. These are based on the speaker's experience working remotely for more than two years. Many of these lessons were gained while working at Toptal, a company whose whole business model is built around remote work."
Eugene Pirogov talks about “Origins of Elixir” during #pivorak Lviv Ruby MeetUp 2016
Details:
“For the past 6 years I've been programming in Ruby. Began shifting from Ruby to Elixir during a sabbatical. Started doing programming exercises in Elixir as well as contributing to Elixir language and variety of small libraries in the ecosystem. I'm a strong believer that Elixir, being backed by immensely powerful, robust and battle-tested Erlang VM will take over the world of web development.” - that’s what Eugene says.
Multi language FBP with Flowex by Anton Mishchuk Pivorak MeetUp
The talk is about Flow-Based programming (FBP) using Flowex library built on top of Elixir GenStage feature.
You will find out about Flowex Railway-FBP design approach, about its abstractions, and the way to easily create pipelines of independent components.
Our speaker Anton also demonstrates how one can use Ruby, Python, and, in general, any other programming language inside Flowex pipes and therefore create reusable components with language-specific functionality.
About the speaker:
Anton Mishchuk is an experienced Ruby developer with more than 6 years in business). Now he’s working with Matic Insurance.
For the last 3 years his main addiction has been Elixir: “I’m happy with actors model of concurrency and functional programming. I have a couple of open-source projects written in Elixir - BDD testing library - ESpec and Flowex.”
Watch video of Anton's talk given at #pivorak here - https://www.youtube.com/watch?v=RY9THv-yosI
CryptoParty: Introduction by Olexii MarkovetsPivorak MeetUp
This document outlines the topics that will be covered at an upcoming CryptoParty event. The event will introduce participants to basic cryptography tools to help spread knowledge and privacy in a fun, public setting. It will cover tools like PGP/GPG for encrypting email, Tor for anonymity online, and Tails for secure operating systems. The goal is to educate people about digital privacy and security as mass government surveillance increases. Participants will learn practical skills over complex theory and have opportunities to network with others.
How to make first million by 30 (or not, but tryin') - by Marek PiaseckiPivorak MeetUp
This time Marek won’t be talking about what’s wrong with frameworks, because you can read it in his blog - http://bit.ly/2jSN0z4.
But about progressing career - strategy, negotiations, self development. And it will be his own story.
It should be interesting for anyone who cares about career/money - not only Ruby Devs.
Marek is from Poland, but now he works as a contractor in Rome for International Fund for Agricultural Development (IFAD) - which is United Nations agency. I’m using Rails of course :)” - he says.
Marek was our Lightning Talker last April about anti-frameworks. Please, check out his talk here emoji unicode: 1f3a5emoji unicode: 1f449 https://youtu.be/QsAArlQnktI
This document discusses integrating geospatial data and functionality into a Ruby on Rails application using the OpenGeo Suite. It provides an overview of key concepts like raster vs vector data, and describes how to store geospatial data from shapefiles in PostGIS, serve it with GeoServer, and display it in maps using OpenLayers. It also outlines the typical steps to publish a geospatial layer and introduces various APIs for GeoServer configuration. Finally, it lists requirements and describes a process for importing shapefiles into PostGIS through a background job to create layers in GeoServer.
Unikernels - Keep It Simple to the Bare MetalPivorak MeetUp
In this presentation Tomek Kalinowski introduces the Audience to the idea of “Library Operating System” and its modern extension - The Unikernel.
In short unikernel is another way of packaging and deploying code in which everything, including operating system, is tailored to serve your code’s single purpose (like displaying random cat pictures).
We'll try to answer the questions:
- Why and when it can be useful?
- Is this reusable? Interoperable?
- How we can leverage virtualization?
And last, but not least, is this the answer for inevitable coming of our Lord and Savior FPGA?
4. Datum WGS 84
Датум (лат. Datum) — набір параметрів, які
використовуються для зміщення і
трансформації референц-еліпсоїду в
локальні географічні координати.
29. Напрямок має значення
Маємо вибрати тільки ті маршрути які йдуть від
точки старт до точки фініш
float ST_LineLocatePoint(geometry a_linestring,
geometry a_point);
Повертає значення між 0 та 1 яке визначає
положення найближчої точки на лінії до заданої
точки
30. Напрямок має значення
SELECT
ST_LineLocatePoint(route, ?) as pickup_float,
ST_LineLocatePoint(route, ?) as drop_float,
ST_ClosestPoint(route, ?) as pickup_location,
ST_ClosestPoint(route, ?) as drop_location,
FROM routes
WHERE
ST_DWithin(routes.route, ?, 500 )
AND
ST_DWithin(routes.route, ?, 500 )