The document is a presentation about getting started with the Go programming language. It covers Abiola Ibrahim's experience with Go, introduces core Go concepts like types, functions, concurrency, and building a sample attendance tracking application. It also discusses using Go on Google App Engine and examples of companies adopting Go in production.
Docker Introduction at GDG DevFest 2015 Lagos Abiola Ibrahim
Docker is an open platform for building and running distributed applications across various environments. It allows applications to run in lightweight virtual containers that boot faster than traditional virtual machines and allow multiple containers to run on a single host. Docker provides benefits like easy distribution of applications, portability between development and production environments, and isolation that prevents applications from interfering with one another. The document then provides hands-on examples of using Docker to pull images, run containers, mount volumes, expose ports, build images, and set up automated builds.
Go is a compiled, concurrent, garbage-collected programming language developed at Google. It aims to combine the performance and low-level access of compiled languages with the ease of use of scripting languages. Some key features of Go include its simple syntax, static and strong typing, concurrency support through goroutines and channels, and automatic memory management through garbage collection. Go is used by many companies and has a large standard library, though it lacks some common features like inheritance.
greach 2014 marco vermeulen bdd using cucumber jvm and groovyJessie Evangelista
Using examples at multiple levels, Behavior Driven Development (BDD) creates a shared understanding to deliver software that matters. Cucumber allows writing executable specifications in a simple markup language called Gherkin and parsing them into tests. The Cucumber anatomy includes Gherkin features, step definitions that parse and execute the steps, and hooks to run code before and after scenarios. The Grails Cucumber plugin makes BDD easy in Grails through conventions, and was demonstrated in an example using GORM, Geb pages, and Spock specifications.
The document discusses using Golang for mobile application development. It provides an example of building a pure Golang Android app without Java by compiling Golang code to a shared object library and using the NativeActivity. It also provides an example of using Golang as a library in a Java Android app by generating bindings between Golang and Java code. Additionally, it proposes an approach for running a standalone Golang process on Android by cross-compiling Golang code to ARM/Linux and executing it from an Android app.
This document summarizes different approaches for using the Go programming language to build Android applications. It discusses building a pure Go app using the NativeActivity class, integrating Go as a library using bindings, and spawning separate Go processes from an Android app using inter-process communication. Code examples are provided for each approach. While Go support for Android is still unstable, these techniques allow Go to be used for simple Android projects as an alternative to Java.
Greach es el evento sobre tecnologías basadas en lenguaje Groovy referente en España.
Dentro de este evento, la charla 'Use Groovy & Grails in your Spring Boot projects' se presenta como una propuesta de ejemplos y posibilidades de introducir este lenguaje y algunos módulos del framework Grails (basado también en Groovy) en proyectos implementados con la reciente solución lanzada por Spring llama Spring Boot.
More info:
http://buff.ly/1DXXQWU
Mobile Apps by Pure Go with Reverse BindingTakuya Ueda
This document discusses developing Android apps in Go using the gomobile tool. It covers cross-compiling Go code for Android, using cgo to access Android platform APIs, and developing both SDK and native Android apps in Go. It then describes how gomobile bind can generate bindings between Go and Java to allow accessing Android platform APIs from Go code through reverse bindings. This allows writing fully native Android apps directly in Go.
Docker Introduction at GDG DevFest 2015 Lagos Abiola Ibrahim
Docker is an open platform for building and running distributed applications across various environments. It allows applications to run in lightweight virtual containers that boot faster than traditional virtual machines and allow multiple containers to run on a single host. Docker provides benefits like easy distribution of applications, portability between development and production environments, and isolation that prevents applications from interfering with one another. The document then provides hands-on examples of using Docker to pull images, run containers, mount volumes, expose ports, build images, and set up automated builds.
Go is a compiled, concurrent, garbage-collected programming language developed at Google. It aims to combine the performance and low-level access of compiled languages with the ease of use of scripting languages. Some key features of Go include its simple syntax, static and strong typing, concurrency support through goroutines and channels, and automatic memory management through garbage collection. Go is used by many companies and has a large standard library, though it lacks some common features like inheritance.
greach 2014 marco vermeulen bdd using cucumber jvm and groovyJessie Evangelista
Using examples at multiple levels, Behavior Driven Development (BDD) creates a shared understanding to deliver software that matters. Cucumber allows writing executable specifications in a simple markup language called Gherkin and parsing them into tests. The Cucumber anatomy includes Gherkin features, step definitions that parse and execute the steps, and hooks to run code before and after scenarios. The Grails Cucumber plugin makes BDD easy in Grails through conventions, and was demonstrated in an example using GORM, Geb pages, and Spock specifications.
The document discusses using Golang for mobile application development. It provides an example of building a pure Golang Android app without Java by compiling Golang code to a shared object library and using the NativeActivity. It also provides an example of using Golang as a library in a Java Android app by generating bindings between Golang and Java code. Additionally, it proposes an approach for running a standalone Golang process on Android by cross-compiling Golang code to ARM/Linux and executing it from an Android app.
This document summarizes different approaches for using the Go programming language to build Android applications. It discusses building a pure Go app using the NativeActivity class, integrating Go as a library using bindings, and spawning separate Go processes from an Android app using inter-process communication. Code examples are provided for each approach. While Go support for Android is still unstable, these techniques allow Go to be used for simple Android projects as an alternative to Java.
Greach es el evento sobre tecnologías basadas en lenguaje Groovy referente en España.
Dentro de este evento, la charla 'Use Groovy & Grails in your Spring Boot projects' se presenta como una propuesta de ejemplos y posibilidades de introducir este lenguaje y algunos módulos del framework Grails (basado también en Groovy) en proyectos implementados con la reciente solución lanzada por Spring llama Spring Boot.
More info:
http://buff.ly/1DXXQWU
Mobile Apps by Pure Go with Reverse BindingTakuya Ueda
This document discusses developing Android apps in Go using the gomobile tool. It covers cross-compiling Go code for Android, using cgo to access Android platform APIs, and developing both SDK and native Android apps in Go. It then describes how gomobile bind can generate bindings between Go and Java to allow accessing Android platform APIs from Go code through reverse bindings. This allows writing fully native Android apps directly in Go.
An Introduction to Groovy for Java DevelopersKostas Saidis
An introduction to Groovy for Java developers with real-life examples that present how Groovy helped us win the 2nd prize in the Open Public Data Hackathon 2014 (http://www.ydmed.gov.gr/hackathon/)
I talked this presentation in GopherCon 2016.
Go Mobile (golang.org/x/mobile) is a project which shows new possibilities for mobile apps development.
Especially, for mobile games which requires high performance processing, Go can be expected to be an alternative to C and C++.
This session explains how to develop game apps using some packages such as app, event and sprite provided by Go Mobile project.
Furthermore the session introduces a way to call Android API from Go codes, and solutions for some problems which occurs when we distribute apps on Google Play.
I would like to show current capabilities and future potentials of Go Mobile.
Go is a programming language designed by Google to help solve Google's problems of developing large, complex software systems involving huge amounts of code and running on many machines. It was created to be compiled, concurrent using lightweight threads (goroutines) and communicate through channels, garbage collected, and have a simple syntax. Some key features include being statically typed, having good standard libraries, and being cross-platform while also eliminating issues like slowness and clumsiness in large codebases. It began as an internal project at Google in 2007 and became publicly available as open source in 2009.
New language from Google, static safe compiler, with GC and as fast as C++ or Java, syntax simpler then Python - 2 hour-long tutorial and you can start code.
In this talk Serhii will talk about Go, also known as Golang – an open source language developed at Google and used in production by companies such as Docker, Dropbox, Facebook and Google itself. Go is now heavily used as a general-purpose programming language that’s a pleasure to use and maintain. This introductory talk contains many live demos of basic language concepts, concurrency model, simple HTTP-based endpoint implementation and, of course, tests using build-in framework. This presentation will be interesting for backend engineers and DevOps to understand why Go had become so popular and how it might help to build robust and maintanable services.
Agenda of the presentation:
1. Go is not C, not Java, not anything
2. Rob Pike argument
3. Main ideas and basics
4. Concurrency model
5. Tools
6. Issues
Groovy is a dynamic language for the Java Virtual Machine that aims to provide features similar to languages like Python and Ruby. Some key differences from Java include fewer imports needed, truthiness, new operators like Elvis and spread-dot, and features like closures and duck typing. Best practices for Groovy include using its idioms like closures, experimenting, and using explicit types where appropriate.
JLPDevs - Optimization Tooling for Modern Web App DevelopmentJLP Community
The document discusses optimization techniques for modern web app development. It recommends optimizing code development, operations, and production sites through techniques like image optimization, code minification, file concatenation, compression, and leveraging caching. It outlines a process of testing, measuring, optimizing, and repeating optimizations. The document also discusses preprocessing tools, automation tools, and global optimization services that can help with performance optimization.
This document provides an overview of the presentation "The Buzz About Groovy and Grails" given by Eric Weimer to the Chicago Groovy User Group on March 10, 2009. The presentation introduces Groovy and Grails, explains their benefits for Java developers and IT managers, demonstrates key Groovy features like closures and syntactic sugar, and argues that Groovy and Grails are production ready and improve developer productivity. The document concludes by recommending books for further reading on Groovy and Grails.
Getting started with go - Florin Patan - Codemotion Milan 2016Codemotion
This talk focuses on people which are interested the Go programming language and want to learn it. In it I will present the various resources new gophers have to learn Go, what are the usual pitfalls and how to get help when they are stuck.
My first presentation at Perl conference, where I introduced myself to wider Perl community and talked about Google@Home project ( https://github.com/IntelliHome/Google-at-Home ).
This is an inspirational lightning talk on how developers can take on the future with Google Cloud and other non-Cloud Google tools. It presents various application ideas that are meant to both inspire what's possible as well as show what some of those tools could be.
The document summarizes the key features of Groovy and how to get started using Groovy in Eclipse. It begins with an introduction to Groovy and its benefits compared to Java. It then walks through converting a simple "Hello World" Java program to Groovy. The remaining sections outline important Groovy features like closures and iterators, and how to install the Groovy Eclipse plugin.
Influx/Days 2017 San Francisco | Dan VanderkamInfluxData
THE DYGRAPHS CHARTING LIBRARY
dygraphs is an open source JavaScript charting library which has been in development since 2006. Its combination of performance and interactivity make it an appealing visualization for dashboards. This talk will walk through how to add dygraphs to your project and how it can be used to facilitate interactive data exploration. Along the way, we’ll touch on some of the trials and tribulations of maintaining open source projects over long periods of time.
Go is a programming language created at Google to address issues with slowness, clumsiness, and lack of scalability in other languages like C++ used at Google. Key goals in developing Go were to eliminate slowness in development, improve effectiveness, and maintain or improve scale. Go provides features like built-in concurrency and goroutines to help solve problems at Google involving large, distributed systems.
Pear Deck elevates slide-based presentations to a new level of interaction and engagement. For creative content services, please visit our website: https://www.artmiker.com
Recommender Systems with Ruby (adding machine learning, statistics, etc)Marcel Caraciolo
This document discusses the use of Ruby for recommendation systems and related tasks like data analysis and visualization. It provides examples of how Ruby libraries and tools like Recommendable, NMatrix, BioRuby, and RubyDoop can be used for tasks like collaborative filtering, content-based recommendations, machine learning, scientific computing, and processing large datasets. The document also discusses some common challenges for recommendation systems and how different approaches like content-based and collaborative filtering attempt to address them.
This document provides an overview of Groovy, including:
- Groovy is a dynamic language for the Java platform that adds features like closures and operator overloading.
- It started in 2003 and the latest version is 2.4.
- Groovy allows for dynamic typing, closure support, easier setup than Java, and integration with existing Java code and libraries.
- Key Groovy features covered include closures, operator overloading, GString, dynamic vs static typing, and working with files.
The document provides an introduction to the Go programming language. It discusses the history and creators of Go, versions of Go released, key words used in Go, types of operators, and provides examples of basic Go programs for Hello World, values, variables, for loops, if/else statements, switch statements, arrays, slices, functions, multiple return values, pointers, and conclusions. It also includes references at the end.
This document compares Go and Python programming languages. It notes that while they share some similarities like being able to be imperative or object-oriented, having multiple return values from functions, and package management, they also have key differences. Go is compiled, strongly typed, and has concurrency built into its runtime via goroutines and channels, while Python uses threads and has a Global Interpreter Lock. The document provides examples of using goroutines, defer, wait groups, and channels for concurrency in Go.
The document provides an introduction and overview of the Groovy programming language. It begins with information about the speaker and agenda. It then discusses what Groovy is, how it builds upon Java, and its key features. The rest of the document demonstrates transforming a simple "Hello World" Java program into Groovy through incremental steps. It highlights various Groovy features like closures, operators, and metaprogramming. It concludes with information on the Eclipse Groovy plugin.
Hand Rolled Applicative User ValidationCode KataPhilip Schwarz
Could you use a simple piece of Scala validation code (granted, a very simplistic one too!) that you can rewrite, now and again, to refresh your basic understanding of Applicative operators <*>, <*, *>?
The goal is not to write perfect code showcasing validation, but rather, to provide a small, rough-and ready exercise to reinforce your muscle-memory.
Despite its grandiose-sounding title, this deck consists of just three slides showing the Scala 3 code to be rewritten whenever the details of the operators begin to fade away.
The code is my rough and ready translation of a Haskell user-validation program found in a book called Finding Success (and Failure) in Haskell - Fall in love with applicative functors.
An Introduction to Groovy for Java DevelopersKostas Saidis
An introduction to Groovy for Java developers with real-life examples that present how Groovy helped us win the 2nd prize in the Open Public Data Hackathon 2014 (http://www.ydmed.gov.gr/hackathon/)
I talked this presentation in GopherCon 2016.
Go Mobile (golang.org/x/mobile) is a project which shows new possibilities for mobile apps development.
Especially, for mobile games which requires high performance processing, Go can be expected to be an alternative to C and C++.
This session explains how to develop game apps using some packages such as app, event and sprite provided by Go Mobile project.
Furthermore the session introduces a way to call Android API from Go codes, and solutions for some problems which occurs when we distribute apps on Google Play.
I would like to show current capabilities and future potentials of Go Mobile.
Go is a programming language designed by Google to help solve Google's problems of developing large, complex software systems involving huge amounts of code and running on many machines. It was created to be compiled, concurrent using lightweight threads (goroutines) and communicate through channels, garbage collected, and have a simple syntax. Some key features include being statically typed, having good standard libraries, and being cross-platform while also eliminating issues like slowness and clumsiness in large codebases. It began as an internal project at Google in 2007 and became publicly available as open source in 2009.
New language from Google, static safe compiler, with GC and as fast as C++ or Java, syntax simpler then Python - 2 hour-long tutorial and you can start code.
In this talk Serhii will talk about Go, also known as Golang – an open source language developed at Google and used in production by companies such as Docker, Dropbox, Facebook and Google itself. Go is now heavily used as a general-purpose programming language that’s a pleasure to use and maintain. This introductory talk contains many live demos of basic language concepts, concurrency model, simple HTTP-based endpoint implementation and, of course, tests using build-in framework. This presentation will be interesting for backend engineers and DevOps to understand why Go had become so popular and how it might help to build robust and maintanable services.
Agenda of the presentation:
1. Go is not C, not Java, not anything
2. Rob Pike argument
3. Main ideas and basics
4. Concurrency model
5. Tools
6. Issues
Groovy is a dynamic language for the Java Virtual Machine that aims to provide features similar to languages like Python and Ruby. Some key differences from Java include fewer imports needed, truthiness, new operators like Elvis and spread-dot, and features like closures and duck typing. Best practices for Groovy include using its idioms like closures, experimenting, and using explicit types where appropriate.
JLPDevs - Optimization Tooling for Modern Web App DevelopmentJLP Community
The document discusses optimization techniques for modern web app development. It recommends optimizing code development, operations, and production sites through techniques like image optimization, code minification, file concatenation, compression, and leveraging caching. It outlines a process of testing, measuring, optimizing, and repeating optimizations. The document also discusses preprocessing tools, automation tools, and global optimization services that can help with performance optimization.
This document provides an overview of the presentation "The Buzz About Groovy and Grails" given by Eric Weimer to the Chicago Groovy User Group on March 10, 2009. The presentation introduces Groovy and Grails, explains their benefits for Java developers and IT managers, demonstrates key Groovy features like closures and syntactic sugar, and argues that Groovy and Grails are production ready and improve developer productivity. The document concludes by recommending books for further reading on Groovy and Grails.
Getting started with go - Florin Patan - Codemotion Milan 2016Codemotion
This talk focuses on people which are interested the Go programming language and want to learn it. In it I will present the various resources new gophers have to learn Go, what are the usual pitfalls and how to get help when they are stuck.
My first presentation at Perl conference, where I introduced myself to wider Perl community and talked about Google@Home project ( https://github.com/IntelliHome/Google-at-Home ).
This is an inspirational lightning talk on how developers can take on the future with Google Cloud and other non-Cloud Google tools. It presents various application ideas that are meant to both inspire what's possible as well as show what some of those tools could be.
The document summarizes the key features of Groovy and how to get started using Groovy in Eclipse. It begins with an introduction to Groovy and its benefits compared to Java. It then walks through converting a simple "Hello World" Java program to Groovy. The remaining sections outline important Groovy features like closures and iterators, and how to install the Groovy Eclipse plugin.
Influx/Days 2017 San Francisco | Dan VanderkamInfluxData
THE DYGRAPHS CHARTING LIBRARY
dygraphs is an open source JavaScript charting library which has been in development since 2006. Its combination of performance and interactivity make it an appealing visualization for dashboards. This talk will walk through how to add dygraphs to your project and how it can be used to facilitate interactive data exploration. Along the way, we’ll touch on some of the trials and tribulations of maintaining open source projects over long periods of time.
Go is a programming language created at Google to address issues with slowness, clumsiness, and lack of scalability in other languages like C++ used at Google. Key goals in developing Go were to eliminate slowness in development, improve effectiveness, and maintain or improve scale. Go provides features like built-in concurrency and goroutines to help solve problems at Google involving large, distributed systems.
Pear Deck elevates slide-based presentations to a new level of interaction and engagement. For creative content services, please visit our website: https://www.artmiker.com
Recommender Systems with Ruby (adding machine learning, statistics, etc)Marcel Caraciolo
This document discusses the use of Ruby for recommendation systems and related tasks like data analysis and visualization. It provides examples of how Ruby libraries and tools like Recommendable, NMatrix, BioRuby, and RubyDoop can be used for tasks like collaborative filtering, content-based recommendations, machine learning, scientific computing, and processing large datasets. The document also discusses some common challenges for recommendation systems and how different approaches like content-based and collaborative filtering attempt to address them.
This document provides an overview of Groovy, including:
- Groovy is a dynamic language for the Java platform that adds features like closures and operator overloading.
- It started in 2003 and the latest version is 2.4.
- Groovy allows for dynamic typing, closure support, easier setup than Java, and integration with existing Java code and libraries.
- Key Groovy features covered include closures, operator overloading, GString, dynamic vs static typing, and working with files.
The document provides an introduction to the Go programming language. It discusses the history and creators of Go, versions of Go released, key words used in Go, types of operators, and provides examples of basic Go programs for Hello World, values, variables, for loops, if/else statements, switch statements, arrays, slices, functions, multiple return values, pointers, and conclusions. It also includes references at the end.
This document compares Go and Python programming languages. It notes that while they share some similarities like being able to be imperative or object-oriented, having multiple return values from functions, and package management, they also have key differences. Go is compiled, strongly typed, and has concurrency built into its runtime via goroutines and channels, while Python uses threads and has a Global Interpreter Lock. The document provides examples of using goroutines, defer, wait groups, and channels for concurrency in Go.
The document provides an introduction and overview of the Groovy programming language. It begins with information about the speaker and agenda. It then discusses what Groovy is, how it builds upon Java, and its key features. The rest of the document demonstrates transforming a simple "Hello World" Java program into Groovy through incremental steps. It highlights various Groovy features like closures, operators, and metaprogramming. It concludes with information on the Eclipse Groovy plugin.
Semelhante a Getting started with Go at GDays Nigeria 2014 (20)
Hand Rolled Applicative User ValidationCode KataPhilip Schwarz
Could you use a simple piece of Scala validation code (granted, a very simplistic one too!) that you can rewrite, now and again, to refresh your basic understanding of Applicative operators <*>, <*, *>?
The goal is not to write perfect code showcasing validation, but rather, to provide a small, rough-and ready exercise to reinforce your muscle-memory.
Despite its grandiose-sounding title, this deck consists of just three slides showing the Scala 3 code to be rewritten whenever the details of the operators begin to fade away.
The code is my rough and ready translation of a Haskell user-validation program found in a book called Finding Success (and Failure) in Haskell - Fall in love with applicative functors.
Artificia Intellicence and XPath Extension FunctionsOctavian Nadolu
The purpose of this presentation is to provide an overview of how you can use AI from XSLT, XQuery, Schematron, or XML Refactoring operations, the potential benefits of using AI, and some of the challenges we face.
Top 9 Trends in Cybersecurity for 2024.pptxdevvsandy
Security and risk management (SRM) leaders face disruptions on technological, organizational, and human fronts. Preparation and pragmatic execution are key for dealing with these disruptions and providing the right cybersecurity program.
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfVALiNTRY360
Salesforce Healthcare CRM, implemented by VALiNTRY360, revolutionizes patient management by enhancing patient engagement, streamlining administrative processes, and improving care coordination. Its advanced analytics, robust security, and seamless integration with telehealth services ensure that healthcare providers can deliver personalized, efficient, and secure patient care. By automating routine tasks and providing actionable insights, Salesforce Healthcare CRM enables healthcare providers to focus on delivering high-quality care, leading to better patient outcomes and higher satisfaction. VALiNTRY360's expertise ensures a tailored solution that meets the unique needs of any healthcare practice, from small clinics to large hospital systems.
For more info visit us https://valintry360.com/solutions/health-life-sciences
When it is all about ERP solutions, companies typically meet their needs with common ERP solutions like SAP, Oracle, and Microsoft Dynamics. These big players have demonstrated that ERP systems can be either simple or highly comprehensive. This remains true today, but there are new factors to consider, including a promising new contender in the market that’s Odoo. This blog compares Odoo ERP with traditional ERP systems and explains why many companies now see Odoo ERP as the best choice.
What are ERP Systems?
An ERP, or Enterprise Resource Planning, system provides your company with valuable information to help you make better decisions and boost your ROI. You should choose an ERP system based on your company’s specific needs. For instance, if you run a manufacturing or retail business, you will need an ERP system that efficiently manages inventory. A consulting firm, on the other hand, would benefit from an ERP system that enhances daily operations. Similarly, eCommerce stores would select an ERP system tailored to their needs.
Because different businesses have different requirements, ERP system functionalities can vary. Among the various ERP systems available, Odoo ERP is considered one of the best in the ERp market with more than 12 million global users today.
Odoo is an open-source ERP system initially designed for small to medium-sized businesses but now suitable for a wide range of companies. Odoo offers a scalable and configurable point-of-sale management solution and allows you to create customised modules for specific industries. Odoo is gaining more popularity because it is built in a way that allows easy customisation, has a user-friendly interface, and is affordable. Here, you will cover the main differences and get to know why Odoo is gaining attention despite the many other ERP systems available in the market.
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemPeter Muessig
Learn about the latest innovations in and around OpenUI5/SAPUI5: UI5 Tooling, UI5 linter, UI5 Web Components, Web Components Integration, UI5 2.x, UI5 GenAI.
Recording:
https://www.youtube.com/live/MSdGLG2zLy8?si=INxBHTqkwHhxV5Ta&t=0
What to do when you have a perfect model for your software but you are constrained by an imperfect business model?
This talk explores the challenges of bringing modelling rigour to the business and strategy levels, and talking to your non-technical counterparts in the process.
Unveiling the Advantages of Agile Software Development.pdfbrainerhub1
Learn about Agile Software Development's advantages. Simplify your workflow to spur quicker innovation. Jump right in! We have also discussed the advantages.
Most important New features of Oracle 23c for DBAs and Developers. You can get more idea from my youtube channel video from https://youtu.be/XvL5WtaC20A
Flutter is a popular open source, cross-platform framework developed by Google. In this webinar we'll explore Flutter and its architecture, delve into the Flutter Embedder and Flutter’s Dart language, discover how to leverage Flutter for embedded device development, learn about Automotive Grade Linux (AGL) and its consortium and understand the rationale behind AGL's choice of Flutter for next-gen IVI systems. Don’t miss this opportunity to discover whether Flutter is right for your project.
Mobile App Development Company In Noida | Drona InfotechDrona Infotech
Drona Infotech is a premier mobile app development company in Noida, providing cutting-edge solutions for businesses.
Visit Us For : https://www.dronainfotech.com/mobile-application-development/
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Łukasz Chruściel
No one wants their application to drag like a car stuck in the slow lane! Yet it’s all too common to encounter bumpy, pothole-filled solutions that slow the speed of any application. Symfony apps are not an exception.
In this talk, I will take you for a spin around the performance racetrack. We’ll explore common pitfalls - those hidden potholes on your application that can cause unexpected slowdowns. Learn how to spot these performance bumps early, and more importantly, how to navigate around them to keep your application running at top speed.
We will focus in particular on tuning your engine at the application level, making the right adjustments to ensure that your system responds like a well-oiled, high-performance race car.
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Getting started with Go at GDays Nigeria 2014
1. 13
December
2014
getting started with
Ge.ng
Started
with
Go
|
Abiola
Ibrahim
Go
Programming
Language
Abiola
Ibrahim
@abiosoB
2. 13
December
2014
AGENDA
Ge.ng
Started
with
Go
|
Abiola
Ibrahim
• My
Go
Story
• IntroducGon
to
Go
• Build
our
applicaGon
• Go
on
App
Engine
• AdopGon
of
Go
• Useful
Links
3. 13
December
2014
My
Go
Story
Ge.ng
Started
with
Go
|
Abiola
Ibrahim
• Interpreted
Languages
have
slower
runGmes
and
no
compile
Gme
error
checks.
• I
like
Java
but
not
the
JVM
overhead.
• Building
C++
is
not
as
fun
as
desired.
• Go
is
compiled,
single
binary
(no
dependencies)
and
builds
very
fast.
4. Real
World
Go
talk
-‐
Andrew
Gerrand,
2011.
13
December
2014
Why
Go
?
“
“Speed,
reliability,
or
simplicity:
pick
two.”
(some9mes
just
one).
Can’t
we
do
be@er?
”
Ge.ng
Started
with
Go
|
Abiola
Ibrahim
5. 13
December
2014
Scope
of
Talk
Ge.ng
Started
with
Go
|
Abiola
Ibrahim
• Things
this
talk
cannot
help
you
do
– Build
Drones
– Create
Google.com
killer
– Replicate
Facebook
• Things
this
talk
can
help
you
do
– Understand
the
core
of
Go
– Start
wriGng
Go
apps
6. INTRODUCTION
TO
GO
13
December
2014
Ge.ng
Started
with
Go
|
Abiola
Ibrahim
7. Go
is
staGcally
typed,
but
type
inference
saves
repeGGon.
13
December
2014
Simple
Type
System
Ge.ng
Started
with
Go
|
Abiola
Ibrahim
Java/C/C++:
int i = 1;
Go:
i := 1 // type int
pi := 3.142 // type float64
hello := "Hello, GDays!" // type string
add := func(x, y int) int { return x + y }
//type func (x, y int)
8. Statements
are
terminated
with
semicolons
but
you
don’t
need
to
include
it.
var a int = 1 // valid line
var b string = “GDays”; // also valid line
13
December
2014
Syntax
and
Structure
Ge.ng
Started
with
Go
|
Abiola
Ibrahim
9. iota
can
come
handy
in
constants
const EVENT = “GDays” //value cannot change
const (
ANDROID_SESSION = iota // 0
GOLANG_SESSION // 1
GIT_SESSION // 2
13
December
2014
Ge.ng
Started
with
Go
|
Abiola
Ibrahim
)
10. 13
December
2014
Ge.ng
Started
with
Go
|
Abiola
Ibrahim
No
brackets,
just
braces.
if a < 0 {
fmt.Printf(“%d is negative”, a)
}
for i := 0; i< 10; i++ {
fmt.Println(“GDays is awesome”)
}
11. No
while,
no
do
while,
just
for.
for i < 10 { ... } //while loop in other languages
for { ... } //infinite loop
// range over arrays, slices and maps
nums := [4]int{0, 1, 2, 3}
for i, value := range nums {
fmt.Println(“value at %d is %d”, i, value)
}
gdays := map[string]string{ “loc” : “Chams City”, ... }
for key, value := range gdays {
fmt.Println(“value at %s is %s”, key, value)
13
December
2014
Ge.ng
Started
with
Go
|
Abiola
Ibrahim
}
12. If
statement
supports
iniGalizaGon.
file, err := os.Open(“sample.txt”)
if err == nil {
fmt.Println(file.Name())
}
This
can
be
shortened
to
if file, err := os.Open(“sample.txt”); err == nil {
fmt.Println(file.Name())
13
December
2014
Ge.ng
Started
with
Go
|
Abiola
Ibrahim
}
13. 13
December
2014
Ge.ng
Started
with
Go
|
Abiola
Ibrahim
MulGple
return
values.
func Sqrt(float64 n) (float64, err) {
if (n < 0){
return 0, errors.New(“Negative number”)
}
return math.Sqrt(n), nil
}
14. 13
December
2014
Ge.ng
Started
with
Go
|
Abiola
Ibrahim
MulGple
assignments.
a, b, c := 1, 2, 3
func Reverse(str string) string {
b := []byte(str)
for i, j := 0, len(b)-1; i != j; i, j = i+1, j-1 {
b[i], b[j] = b[j], b[i]
}
return string(b)
}
15. var nums [4]int //array declaration
nums := [4]int{0, 1, 2, 3} //declare and initialize
n := nums[0:2] // slice of nums from index 0 to 1
n := nums[:2] // same as above
n := nums[2:] // from index 2 to max index
n := nums[:] // slice of entire array
nums[0] = 1 // assignment
n[0] = 2 // assignment
var copyOfNum = make([]int, 4) //slice allocation
copy(copyOfNum, nums[:]) //copy nums into it
13
December
2014
Arrays
and
Slices
Ge.ng
Started
with
Go
|
Abiola
Ibrahim
16. var gdays map[string]string //declaration
gdays = make(map[string]string) //allocation
//shorter declaration with allocation
var gdays = make(map[string]string)
gdays := make(map[string]string)
gdays[“location”] = “Chams City” //assignment
//declaration with values
gdays := map[string]string {
“location” : “Chams City”
13
December
2014
Maps
Ge.ng
Started
with
Go
|
Abiola
Ibrahim
}
17. 13
December
2014
Structs
Ge.ng
Started
with
Go
|
Abiola
Ibrahim
type Point struct {
X int,
Y int,
Z int,
}
var p = &Point{0, 1, 3}
//partial initialization
var p = &Point{
X: 1,
Z: 2,
}
18. //void function without return value
func SayHelloToMe(name string){
fmt.Printf(”Hello, %s”, name)
}
//function with return value
func Multiply(x, y int) int {
13
December
2014
FuncGons
Ge.ng
Started
with
Go
|
Abiola
Ibrahim
return x * y
}
19. 13
December
2014
Methods
Ge.ng
Started
with
Go
|
Abiola
Ibrahim
type Rectangle struct {
X, Y int
}
func (r Rectangle) Area() int {
return r.X * r.Y
}
r := Rectangle{4, 3} // type Rectangle
r.Area() // == 12
20. Types
and
Methods
You
can
define
methods
on
any
type.
type MyInt int
func (m MyInt) Square() int {
i := int(m)
return i * i
}
num := MyInt(4)
num.Square() // == 16
13
December
2014
Ge.ng
Started
with
Go
|
Abiola
Ibrahim
21. 13
December
2014
Scoping
Ge.ng
Started
with
Go
|
Abiola
Ibrahim
• Package
level
scope
• No
classes
• A
package
can
have
mulGple
source
files
• Package
source
files
reside
in
same
directory
package main // sample package declaration
22. 13
December
2014
Visibility
Ge.ng
Started
with
Go
|
Abiola
Ibrahim
• No
use
of
private
or
public
keywords.
• Visibility
is
defined
by
case
//visible to other packages
var Name string = “”
func Hello(name string) string {
return fmt.Printf(“Hello %s”, name)
}
//not visible to other packages
var name string = “”
func hello(name string) string {
return fmt.Printf(“Hello %s”, name)
}
23. 13
December
2014
Concurrency
Ge.ng
Started
with
Go
|
Abiola
Ibrahim
• GorouGnes
are
like
threads
but
cheaper.
MulGple
per
threads.
• CommunicaGons
between
gorouGnes
are
done
with
channels
done := make(chan bool) //create channel
doSort := func(s []int) {
sort(s)
done <- true //inform channel goroutine is done
}i
:= pivot(s)
go doSort(s[:i])
go doSort(s[i:])
<-done //wait for message on channel
<-done //wait for message on channel
25. Download
Go
installer
for
your
pladorm
at
hep://golang.org/doc/install
13
December
2014
InstallaGon
Ge.ng
Started
with
Go
|
Abiola
Ibrahim
26. 13
December
2014
Code
Session
Ge.ng
Started
with
Go
|
Abiola
Ibrahim
• Let
us
build
a
GDays
Aeendance
app.
• Displays
total
number
of
aeendees
• Ability
to
mark
yourself
as
present
Source
code
will
be
available
aBer
session
at
hep://github.com/abiosoB/gdays-‐ae
27. GO
ON
APP
ENGINE
13
December
2014
Ge.ng
Started
with
Go
|
Abiola
Ibrahim
28. 13
December
2014
Code
Session
Ge.ng
Started
with
Go
|
Abiola
Ibrahim
• Let
us
modify
our
app
to
suit
App
Engine
– Use
User
service
to
uniquely
idenGfy
user
– Use
Data
Store
to
persist
number
of
aeendees
Source
code
will
be
available
aBer
session
at
hep://github.com/abiosoB/gdays-‐ae-‐appengine
29. ADOPTION
OF
GO
13
December
2014
Ge.ng
Started
with
Go
|
Abiola
Ibrahim
30. 13
December
2014
Go
in
ProducGon
Ge.ng
Started
with
Go
|
Abiola
Ibrahim
• Google
• Canonical
• DropBox
• SoundCloud
• Heroku
• Digital
Ocean
• Docker
And
many
more
at
hep://golang.org/wiki/GoUsers
31. 13
December
2014
Ge.ng
Started
with
Go
|
Abiola
Ibrahim
USEFUL
LINKS
32. 13
December
2014
Ge.ng
Started
with
Go
|
Abiola
Ibrahim
• hep://golang.org/doc
-‐
official
documentaGon
• hep://tour.golang.org
-‐
interacGve
tutorials
• hep://gobyexample.com
-‐
tutorials
• hep://gophercasts.io
-‐
screencasts
• hep://golang.org/wiki/ArGcles
-‐
lots
of
helpful
arGcles
33. 13
December
2014
Community
Ge.ng
Started
with
Go
|
Abiola
Ibrahim
• Blog
– hep://blog.golang.org
• Google
Group
– heps://groups.google.com/d/forum/golang-‐nuts
• Gopher
Academy
– hep://gopheracademy.com
• Me
– hep://twieer.com/abiosoB
– abiola89@gmail.com
34. 13
December
2014
THANK
YOU
Ge.ng
Started
with
Go
|
Abiola
Ibrahim