SlideShare ist ein Scribd-Unternehmen logo
1 von 72
Downloaden Sie, um offline zu lesen
Confessions
of a Traitor
How Objective C Made Me a Better
JavaScript Programmer



@szafranek
Game developer
at Wooga


Front-end architect
at Nokia


Front-end developer,
manager at Roche
github.com/wooga/Pocket-Island




The last HTML5 project I was a part of is now available as open source.
In May 2012, after 7 years of professional front-end development, I started to work on native
iOS game.
[self
   learn:@"Objective C"
];
We make our tools,
our tools make us
• C with class-based OOP
• [syntax awkward:YES];
• Compiled
• No garbage collection!
[Disclaimer]

I will not try to convince you that JavaScript should be more like other languages.
Yet we can be more effective JS developers by learning something from others.
JavaScript
 AD 2004
-----------------------------------------------------------------
 Language       files          blank        comment           code
 -----------------------------------------------------------------
 Javascript       100           3764           1858          22258
 HTML               9             73             23            690
 Ruby               4             90             15            237
 Bourne Shell       2             13              0             27
 -----------------------------------------------------------------
 SUM:             115           3940           1896          23212
 -----------------------------------------------------------------




Codebase size of Pocket Island. The project didn’t use external libraries.
-----------------------------------------------------------------
Language       files          blank        comment           code
-----------------------------------------------------------------
Javascript       717          79132         184499         425289
HTML             452          84159           4819         198471
XML              133           2155           1391         122219
Java             527          10215           6633          42287
CSS               94           3067           2101          23727
Ruby              33            599            146           1794
XSLT               1             57             29           1453
Bourne Shell      47            285            293            865
Python             5            244            256            828
XSD                2              0              2            244
JSP                4              7              0             92
DTD                1             37             32             92
Perl               2             26              0             55
DOS Batch          4              4              1             18
-----------------------------------------------------------------
SUM:            2022         179987         200202         817434
-----------------------------------------------------------------



Codebase size of my previous JavaScript project. That one included several external libraries.
JavaScript
 AD 2004
JavaScript
 AD 2012
Building
• minification
    • linting
    • unit testing
    • deployment
    • template processing
    • much more
Currently Grunt offers over 200 plugins.
Automate




* Let machines do what they're best at:

    * catching silly mistakes

    * optimization

    * boring but necessary tasks
Unit tests
Everybody has heard about unit tests, but have you actually seen or wrote them?
Cr Buste
                                                                                                                                                         oss r.J
                                                                                                                                                            c S
                                                                                                                                                    En DOH heck
                                                                                                                                                      h
                                                                                                                                                    Fir ance
                                                                                                                                                   J3U eUnit JS
                                                                                                                                                JSN nit
                                                                                                                                                JSS Uni




writing tests?
                                                                                                                                              JST pec t
                                                                                                                                          JST e
                                                                                                                                             est st
                                                                                                                                            JSU .NE
                                                                                                                                          JSp nit T
                                                                                                                                       Jas ec
                                                                                                                                          U
                                                                                                                               Js- Jasm nit
                                                                                                                             Js- test ine
                                                                                                                                tes -dr
                                                                                                                               Mo t-run iver
                                                                                                                            No ch ne
                                                                                                                               de a r
                                                                                                                            QU u n i
                                                                                                                          Rh nit t
                                                                                                                       Rh Un
                                                                                                                         ino it
                                                                                                                      S OA Uni
                                                                                                                     Sin tes t
                                                                                                                   Su on.js t
                                                                                                                 Te ite
                                                                                                               Te st.M st
                                                                                                               st.S or
                                                                                                            Te im e
                                                                                                              stC pl
                                                                                                            Te ase e
                                                                                                      Un   T stI
                                                                                                           yrt t
                                                                                                        itT le
                                                                                                           est
                                                                                                       Vo in
                                                                                                     YU ws g
                                                                                                  jsU I T
                                                                                                     nit est
                                                                                                  jsU Te
                                                                                              scr ni st
                                                                                                 ew ty
Is the number of JS unit testing frameworks higher than the number of JavaScript developers




                                                                                               wr -u n i
                                                                                                   u t
In Objective C world unit testing is supported out of the box.
“No one pays you
      for testing”


The above quote comes from a PHP talk I listened to recently.

* Don’t ask your boss or client if you can write tests – tests are part of the code, not
something extra
* The point of writing tests is to make you faster at delivering quality product, not slower.
* Tests enforce better coding style.
Getting started
1) Pick any framework


buster.js, js-test-driver, QUnit, Jasmine are all good places to start.
2) Start writing tests
Unit test is a function
       that tests
 another function
implementation
function factorial(n) {
    if (n == 1) {
        return 1;
    }
    return n * factorial(n-1);
}




test
function testFactorial() {
    assert.equals(120, factorial(5));
}
3) Automate with test
      runner


If you haven’t already picked a framework with integrated runner, like buster.js or js-test-
driver, use testem to run your tests.

You will NOT keep writing tests if you don’t automate running them with Continous
Integration tool like Jenkins.
Test runner
     vs.
Unit testing
framework
Modern test runners can execute your tests in a variety of JS environments.
buster.js
      Framework and runner
      ... that doesn’t run on
      Windows. Yet.
Authors are working on it. Version 1.0 will run on Windows.
testem
Cross-platform test runner
Needs test framework
QUnit
Test framowork used by jQuery
http://szafranek.net/works/articles/javascript-unit-testing/
http://bit.ly/writing-testable-javascript




Presentation contains practical example of making typical jQuery-based code testable.
Static
analysis
Early warning system in an editor.
jslint
         jshint
Your sadly
      pathetic
      bleatings are
      harshing my
      mellow.


Douglas Crockford commenting on complaints about jslint being too restrictive.
This quote was one of the reasons to create jshint.
1) Make your intent
obvious
Anything that isn’t
                                          crystal clear to a
                                        static analysis tool
                                       probably isn’t clear
                                             to your fellow
                                            programmers,
                                                     either.

Highly recommended article on the value of static analysis, by John Carmack:
http://www.altdevblogaday.com/2011/12/24/static-code-analysis/
2) Catch mistakes early
Integrate jslint or jshint with your editor.
Automate




Use continuous integration to run static analysis checks on your code.
Refactoring
Improving
the design of code
without changing
its external behavior
Improving
the design of code
without changing
its external behavior
Goals

Before starting refactoring, think for a moment what you want to achieve.
Remove duplication


Extract method, extract variable
if (player.coins < budget.getMin()) {
    offerCredit();
}
if (friend.coins < budget.getMin()) {
    offerFriendCredit();
}


var min = budget.getMin();
if (player.coins < min) {
    offerCredit();
}
if (friend.coins < min) {
    offerFriendCredit();
}
Make your intent
clear obvious
[taskShortcut
         performSelector:selector
         withObject:param
      ];


Named parameters in Objective C encourage explicit naming.
data, t, manager
are not good names

formData, timeLeft,
urlRouter are better
Explanatory variables
button.setPosition(0,
     parseInt(parentDiv.height, 10) / 2
     - parseInt(border.size, 10) / 2
  );



  var verticalCenter =
     parseInt(parentDiv.height, 10) / 2
     - parseInt(border.size, 10) / 2;

  button.setPosition(0, verticalCenter);


It’s worth to introduce a variable to communicate intention clearly, even if it doesn’t reduce
duplication.
Design patterns


Design patterns make the intent of the design easy to see.
If you are using a pattern, make sure it’s communicated through naming.
Clean code first,
optimization second
Premature
optimization
is the root of
all evil.
Improving
the design of code
without changing
its external behavior
Tests!

How do you verify that behavior didn’t change?
Tests?
Refactoring without tests (aka “happy development”) is all too common.
It’s not a very responsible thing to do.
IDE

The problem with refactoring JavaScript:
poor tool support -> makes refactoring require courage -> makes refactoring less likely to
happen.

Search and replace doesn’t constitute “tool support” for refactoring – it’s only text-based and
doesn’t guarantee that the semantics of your program will be preserved.
My reaction to the word “IDE”...
... was deeply rooted.
WebStorm IDE has good support for essential refactorings.
•Web Storm
      •...
      •...
      •...
      •Cloud9
      •...?
We need better and more tools for refactoring JavaScript!
Automate




Refactoring has to be performed by a human, but good tool (like WebStorm) can make it
much safer and easier.
auto
Unit testing  mate
         auto
Static analysis
              mate
         auto
Refactoringmat
                 e
                @szafranek
Thank you!
Image credits:
eclectic echoes    Philippe Semeria
The Facey Family   Nick Treby
chrisnb20          QuakeCon
Esther Gibbons

Weitere ähnliche Inhalte

Andere mochten auch

2012_11_28_Dont think about working at other companies_BeuthHS_Anne
2012_11_28_Dont think about working at other companies_BeuthHS_Anne2012_11_28_Dont think about working at other companies_BeuthHS_Anne
2012_11_28_Dont think about working at other companies_BeuthHS_AnneWooga
 
The Wooga way to create successful games_SBGames Brazil 2012_Thiago Apella
The Wooga way to create successful games_SBGames Brazil 2012_Thiago ApellaThe Wooga way to create successful games_SBGames Brazil 2012_Thiago Apella
The Wooga way to create successful games_SBGames Brazil 2012_Thiago ApellaWooga
 
Leveling up in localization! - Susan Alma & Dario Quondamstefano
Leveling up in localization! - Susan Alma & Dario QuondamstefanoLeveling up in localization! - Susan Alma & Dario Quondamstefano
Leveling up in localization! - Susan Alma & Dario QuondamstefanoWooga
 
2013 07-24 casual-connect_needle_in_haystack_slideshare
2013 07-24 casual-connect_needle_in_haystack_slideshare2013 07-24 casual-connect_needle_in_haystack_slideshare
2013 07-24 casual-connect_needle_in_haystack_slideshareWooga
 
Two Ann(e)s and one Julia_Wooga Lady Power from Berlin_SGA2014
Two Ann(e)s and one Julia_Wooga Lady Power from Berlin_SGA2014Two Ann(e)s and one Julia_Wooga Lady Power from Berlin_SGA2014
Two Ann(e)s and one Julia_Wooga Lady Power from Berlin_SGA2014Wooga
 
2013 01-03 sgf-mobile_first_sebastian kriese
2013 01-03 sgf-mobile_first_sebastian kriese2013 01-03 sgf-mobile_first_sebastian kriese
2013 01-03 sgf-mobile_first_sebastian krieseWooga
 
How to manage a startup_Gruenderwoche RWTH Aachen_Jan Miczaika
How to manage a startup_Gruenderwoche RWTH Aachen_Jan MiczaikaHow to manage a startup_Gruenderwoche RWTH Aachen_Jan Miczaika
How to manage a startup_Gruenderwoche RWTH Aachen_Jan MiczaikaWooga
 
From Keyboards to Fingertips - Rethink Game Design_QuoVadis 2013
From Keyboards to Fingertips - Rethink Game Design_QuoVadis 2013From Keyboards to Fingertips - Rethink Game Design_QuoVadis 2013
From Keyboards to Fingertips - Rethink Game Design_QuoVadis 2013Wooga
 
Evoloution of Ideas
Evoloution of IdeasEvoloution of Ideas
Evoloution of IdeasWooga
 
Social games and their clean code_Clean Code Days_Dresden 2013
Social games and their clean code_Clean Code Days_Dresden 2013Social games and their clean code_Clean Code Days_Dresden 2013
Social games and their clean code_Clean Code Days_Dresden 2013Wooga
 
Designing for Scale
Designing for ScaleDesigning for Scale
Designing for ScaleWooga
 
NoSQL Games_NoSQL Roadshow Berlin
NoSQL Games_NoSQL Roadshow BerlinNoSQL Games_NoSQL Roadshow Berlin
NoSQL Games_NoSQL Roadshow BerlinWooga
 
When Devs Do Ops
When Devs Do OpsWhen Devs Do Ops
When Devs Do OpsWooga
 
JRubyConf2013_Tim Lossen_All your core
JRubyConf2013_Tim Lossen_All your coreJRubyConf2013_Tim Lossen_All your core
JRubyConf2013_Tim Lossen_All your coreWooga
 
Getting the Most our of your Tools_FrontEnd DevConf2013_Minsk
Getting the Most our of your Tools_FrontEnd DevConf2013_MinskGetting the Most our of your Tools_FrontEnd DevConf2013_Minsk
Getting the Most our of your Tools_FrontEnd DevConf2013_MinskWooga
 
Stateful Application Server_JRubyConf13_Lukas Rieder
Stateful Application Server_JRubyConf13_Lukas RiederStateful Application Server_JRubyConf13_Lukas Rieder
Stateful Application Server_JRubyConf13_Lukas RiederWooga
 
Architecture Evolution at Wooga (AWS Cloud Computing for Developers,)
Architecture Evolution at Wooga (AWS Cloud Computing for Developers,)Architecture Evolution at Wooga (AWS Cloud Computing for Developers,)
Architecture Evolution at Wooga (AWS Cloud Computing for Developers,)Wooga
 
Erlang as a Cloud Citizen
Erlang as a Cloud CitizenErlang as a Cloud Citizen
Erlang as a Cloud CitizenWooga
 

Andere mochten auch (18)

2012_11_28_Dont think about working at other companies_BeuthHS_Anne
2012_11_28_Dont think about working at other companies_BeuthHS_Anne2012_11_28_Dont think about working at other companies_BeuthHS_Anne
2012_11_28_Dont think about working at other companies_BeuthHS_Anne
 
The Wooga way to create successful games_SBGames Brazil 2012_Thiago Apella
The Wooga way to create successful games_SBGames Brazil 2012_Thiago ApellaThe Wooga way to create successful games_SBGames Brazil 2012_Thiago Apella
The Wooga way to create successful games_SBGames Brazil 2012_Thiago Apella
 
Leveling up in localization! - Susan Alma & Dario Quondamstefano
Leveling up in localization! - Susan Alma & Dario QuondamstefanoLeveling up in localization! - Susan Alma & Dario Quondamstefano
Leveling up in localization! - Susan Alma & Dario Quondamstefano
 
2013 07-24 casual-connect_needle_in_haystack_slideshare
2013 07-24 casual-connect_needle_in_haystack_slideshare2013 07-24 casual-connect_needle_in_haystack_slideshare
2013 07-24 casual-connect_needle_in_haystack_slideshare
 
Two Ann(e)s and one Julia_Wooga Lady Power from Berlin_SGA2014
Two Ann(e)s and one Julia_Wooga Lady Power from Berlin_SGA2014Two Ann(e)s and one Julia_Wooga Lady Power from Berlin_SGA2014
Two Ann(e)s and one Julia_Wooga Lady Power from Berlin_SGA2014
 
2013 01-03 sgf-mobile_first_sebastian kriese
2013 01-03 sgf-mobile_first_sebastian kriese2013 01-03 sgf-mobile_first_sebastian kriese
2013 01-03 sgf-mobile_first_sebastian kriese
 
How to manage a startup_Gruenderwoche RWTH Aachen_Jan Miczaika
How to manage a startup_Gruenderwoche RWTH Aachen_Jan MiczaikaHow to manage a startup_Gruenderwoche RWTH Aachen_Jan Miczaika
How to manage a startup_Gruenderwoche RWTH Aachen_Jan Miczaika
 
From Keyboards to Fingertips - Rethink Game Design_QuoVadis 2013
From Keyboards to Fingertips - Rethink Game Design_QuoVadis 2013From Keyboards to Fingertips - Rethink Game Design_QuoVadis 2013
From Keyboards to Fingertips - Rethink Game Design_QuoVadis 2013
 
Evoloution of Ideas
Evoloution of IdeasEvoloution of Ideas
Evoloution of Ideas
 
Social games and their clean code_Clean Code Days_Dresden 2013
Social games and their clean code_Clean Code Days_Dresden 2013Social games and their clean code_Clean Code Days_Dresden 2013
Social games and their clean code_Clean Code Days_Dresden 2013
 
Designing for Scale
Designing for ScaleDesigning for Scale
Designing for Scale
 
NoSQL Games_NoSQL Roadshow Berlin
NoSQL Games_NoSQL Roadshow BerlinNoSQL Games_NoSQL Roadshow Berlin
NoSQL Games_NoSQL Roadshow Berlin
 
When Devs Do Ops
When Devs Do OpsWhen Devs Do Ops
When Devs Do Ops
 
JRubyConf2013_Tim Lossen_All your core
JRubyConf2013_Tim Lossen_All your coreJRubyConf2013_Tim Lossen_All your core
JRubyConf2013_Tim Lossen_All your core
 
Getting the Most our of your Tools_FrontEnd DevConf2013_Minsk
Getting the Most our of your Tools_FrontEnd DevConf2013_MinskGetting the Most our of your Tools_FrontEnd DevConf2013_Minsk
Getting the Most our of your Tools_FrontEnd DevConf2013_Minsk
 
Stateful Application Server_JRubyConf13_Lukas Rieder
Stateful Application Server_JRubyConf13_Lukas RiederStateful Application Server_JRubyConf13_Lukas Rieder
Stateful Application Server_JRubyConf13_Lukas Rieder
 
Architecture Evolution at Wooga (AWS Cloud Computing for Developers,)
Architecture Evolution at Wooga (AWS Cloud Computing for Developers,)Architecture Evolution at Wooga (AWS Cloud Computing for Developers,)
Architecture Evolution at Wooga (AWS Cloud Computing for Developers,)
 
Erlang as a Cloud Citizen
Erlang as a Cloud CitizenErlang as a Cloud Citizen
Erlang as a Cloud Citizen
 

Mehr von Wooga

Story of Warlords: Bringing a turn-based strategy game to mobile
Story of Warlords: Bringing a turn-based strategy game to mobile Story of Warlords: Bringing a turn-based strategy game to mobile
Story of Warlords: Bringing a turn-based strategy game to mobile Wooga
 
Instagram Celebrities: are they the new cats? - Targetsummit Berlin 2015
Instagram Celebrities: are they the new cats? - Targetsummit Berlin 2015Instagram Celebrities: are they the new cats? - Targetsummit Berlin 2015
Instagram Celebrities: are they the new cats? - Targetsummit Berlin 2015Wooga
 
In it for the long haul - How Wooga boosts long-term retention
In it for the long haul - How Wooga boosts long-term retentionIn it for the long haul - How Wooga boosts long-term retention
In it for the long haul - How Wooga boosts long-term retentionWooga
 
Entitas System Architecture with Unity - Maxim Zaks and Simon Schmid
Entitas System Architecture with Unity - Maxim Zaks and Simon Schmid Entitas System Architecture with Unity - Maxim Zaks and Simon Schmid
Entitas System Architecture with Unity - Maxim Zaks and Simon Schmid Wooga
 
Saying No to the CEO: A Deep Look at Independent Teams - Adam Telfer
Saying No to the CEO: A Deep Look at Independent Teams - Adam TelferSaying No to the CEO: A Deep Look at Independent Teams - Adam Telfer
Saying No to the CEO: A Deep Look at Independent Teams - Adam TelferWooga
 
Innovation dank DevOps (DevOpsCon Berlin 2015)
Innovation dank DevOps (DevOpsCon Berlin 2015)Innovation dank DevOps (DevOpsCon Berlin 2015)
Innovation dank DevOps (DevOpsCon Berlin 2015)Wooga
 
Big Fish, small pond - strategies for surviving in a maturing market - Ed Biden
Big Fish, small pond - strategies for surviving in a maturing market - Ed BidenBig Fish, small pond - strategies for surviving in a maturing market - Ed Biden
Big Fish, small pond - strategies for surviving in a maturing market - Ed BidenWooga
 
Review mining aps2014 berlin
Review mining aps2014 berlinReview mining aps2014 berlin
Review mining aps2014 berlinWooga
 
Riak & Wooga_Geeek2Geeek Meetup2014 Berlin
Riak & Wooga_Geeek2Geeek Meetup2014 BerlinRiak & Wooga_Geeek2Geeek Meetup2014 Berlin
Riak & Wooga_Geeek2Geeek Meetup2014 BerlinWooga
 
Staying in the Game: Game localization practices for the mobile market
Staying in the Game: Game localization practices for the mobile marketStaying in the Game: Game localization practices for the mobile market
Staying in the Game: Game localization practices for the mobile marketWooga
 
Startup Weekend_Makers and Games_Philipp Stelzer
Startup Weekend_Makers and Games_Philipp StelzerStartup Weekend_Makers and Games_Philipp Stelzer
Startup Weekend_Makers and Games_Philipp StelzerWooga
 
DevOps goes Mobile (daho.am)
DevOps goes Mobile (daho.am)DevOps goes Mobile (daho.am)
DevOps goes Mobile (daho.am)Wooga
 
DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
DevOps goes Mobile - Jax 2014 - Jesper Richter-ReichhelmDevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
DevOps goes Mobile - Jax 2014 - Jesper Richter-ReichhelmWooga
 
CodeFest 2014_Mobile Game Development
CodeFest 2014_Mobile Game DevelopmentCodeFest 2014_Mobile Game Development
CodeFest 2014_Mobile Game DevelopmentWooga
 
Jelly Splash: Puzzling your way to the top of the App Stores - GDC 2014
Jelly Splash: Puzzling your way to the top of the App Stores - GDC 2014Jelly Splash: Puzzling your way to the top of the App Stores - GDC 2014
Jelly Splash: Puzzling your way to the top of the App Stores - GDC 2014Wooga
 
How to hire the best people for your startup-Gitta Blat-Head of People
How to hire the best people for your startup-Gitta Blat-Head of PeopleHow to hire the best people for your startup-Gitta Blat-Head of People
How to hire the best people for your startup-Gitta Blat-Head of PeopleWooga
 
Pocket Gamer Connects 2014_The Experience of Entering the Korean Market
Pocket Gamer Connects 2014_The Experience of Entering the Korean MarketPocket Gamer Connects 2014_The Experience of Entering the Korean Market
Pocket Gamer Connects 2014_The Experience of Entering the Korean MarketWooga
 
How to stand out in a hit driven business - Game Connection Paris 2013 - SebK...
How to stand out in a hit driven business - Game Connection Paris 2013 - SebK...How to stand out in a hit driven business - Game Connection Paris 2013 - SebK...
How to stand out in a hit driven business - Game Connection Paris 2013 - SebK...Wooga
 
DevOps the Wooga way (Webmontag Berlin)
DevOps the Wooga way (Webmontag Berlin)DevOps the Wooga way (Webmontag Berlin)
DevOps the Wooga way (Webmontag Berlin)Wooga
 
Why Having Impact Matters for Good Developers (GOTO Berlin)
Why Having Impact Matters for Good Developers (GOTO Berlin)Why Having Impact Matters for Good Developers (GOTO Berlin)
Why Having Impact Matters for Good Developers (GOTO Berlin)Wooga
 

Mehr von Wooga (20)

Story of Warlords: Bringing a turn-based strategy game to mobile
Story of Warlords: Bringing a turn-based strategy game to mobile Story of Warlords: Bringing a turn-based strategy game to mobile
Story of Warlords: Bringing a turn-based strategy game to mobile
 
Instagram Celebrities: are they the new cats? - Targetsummit Berlin 2015
Instagram Celebrities: are they the new cats? - Targetsummit Berlin 2015Instagram Celebrities: are they the new cats? - Targetsummit Berlin 2015
Instagram Celebrities: are they the new cats? - Targetsummit Berlin 2015
 
In it for the long haul - How Wooga boosts long-term retention
In it for the long haul - How Wooga boosts long-term retentionIn it for the long haul - How Wooga boosts long-term retention
In it for the long haul - How Wooga boosts long-term retention
 
Entitas System Architecture with Unity - Maxim Zaks and Simon Schmid
Entitas System Architecture with Unity - Maxim Zaks and Simon Schmid Entitas System Architecture with Unity - Maxim Zaks and Simon Schmid
Entitas System Architecture with Unity - Maxim Zaks and Simon Schmid
 
Saying No to the CEO: A Deep Look at Independent Teams - Adam Telfer
Saying No to the CEO: A Deep Look at Independent Teams - Adam TelferSaying No to the CEO: A Deep Look at Independent Teams - Adam Telfer
Saying No to the CEO: A Deep Look at Independent Teams - Adam Telfer
 
Innovation dank DevOps (DevOpsCon Berlin 2015)
Innovation dank DevOps (DevOpsCon Berlin 2015)Innovation dank DevOps (DevOpsCon Berlin 2015)
Innovation dank DevOps (DevOpsCon Berlin 2015)
 
Big Fish, small pond - strategies for surviving in a maturing market - Ed Biden
Big Fish, small pond - strategies for surviving in a maturing market - Ed BidenBig Fish, small pond - strategies for surviving in a maturing market - Ed Biden
Big Fish, small pond - strategies for surviving in a maturing market - Ed Biden
 
Review mining aps2014 berlin
Review mining aps2014 berlinReview mining aps2014 berlin
Review mining aps2014 berlin
 
Riak & Wooga_Geeek2Geeek Meetup2014 Berlin
Riak & Wooga_Geeek2Geeek Meetup2014 BerlinRiak & Wooga_Geeek2Geeek Meetup2014 Berlin
Riak & Wooga_Geeek2Geeek Meetup2014 Berlin
 
Staying in the Game: Game localization practices for the mobile market
Staying in the Game: Game localization practices for the mobile marketStaying in the Game: Game localization practices for the mobile market
Staying in the Game: Game localization practices for the mobile market
 
Startup Weekend_Makers and Games_Philipp Stelzer
Startup Weekend_Makers and Games_Philipp StelzerStartup Weekend_Makers and Games_Philipp Stelzer
Startup Weekend_Makers and Games_Philipp Stelzer
 
DevOps goes Mobile (daho.am)
DevOps goes Mobile (daho.am)DevOps goes Mobile (daho.am)
DevOps goes Mobile (daho.am)
 
DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
DevOps goes Mobile - Jax 2014 - Jesper Richter-ReichhelmDevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
 
CodeFest 2014_Mobile Game Development
CodeFest 2014_Mobile Game DevelopmentCodeFest 2014_Mobile Game Development
CodeFest 2014_Mobile Game Development
 
Jelly Splash: Puzzling your way to the top of the App Stores - GDC 2014
Jelly Splash: Puzzling your way to the top of the App Stores - GDC 2014Jelly Splash: Puzzling your way to the top of the App Stores - GDC 2014
Jelly Splash: Puzzling your way to the top of the App Stores - GDC 2014
 
How to hire the best people for your startup-Gitta Blat-Head of People
How to hire the best people for your startup-Gitta Blat-Head of PeopleHow to hire the best people for your startup-Gitta Blat-Head of People
How to hire the best people for your startup-Gitta Blat-Head of People
 
Pocket Gamer Connects 2014_The Experience of Entering the Korean Market
Pocket Gamer Connects 2014_The Experience of Entering the Korean MarketPocket Gamer Connects 2014_The Experience of Entering the Korean Market
Pocket Gamer Connects 2014_The Experience of Entering the Korean Market
 
How to stand out in a hit driven business - Game Connection Paris 2013 - SebK...
How to stand out in a hit driven business - Game Connection Paris 2013 - SebK...How to stand out in a hit driven business - Game Connection Paris 2013 - SebK...
How to stand out in a hit driven business - Game Connection Paris 2013 - SebK...
 
DevOps the Wooga way (Webmontag Berlin)
DevOps the Wooga way (Webmontag Berlin)DevOps the Wooga way (Webmontag Berlin)
DevOps the Wooga way (Webmontag Berlin)
 
Why Having Impact Matters for Good Developers (GOTO Berlin)
Why Having Impact Matters for Good Developers (GOTO Berlin)Why Having Impact Matters for Good Developers (GOTO Berlin)
Why Having Impact Matters for Good Developers (GOTO Berlin)
 

Kürzlich hochgeladen

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 

Kürzlich hochgeladen (20)

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 

WebConf_Riga_Confessions of-a-traitor_Krzsysztof Szafranek