Enviar búsqueda
Cargar
Contributing to StrongLoop LoopBack (and other open source projects)
•
4 recomendaciones
•
868 vistas
Supasate Choochaisri
Seguir
Share my experience on how to contribute to the open source world
Leer menos
Leer más
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 96
Descargar ahora
Descargar para leer sin conexión
Recomendados
Drupal Performance
Drupal Performance
Pantheon
Git Standards
Git Standards
Juan Wellington Moreno
Continuous Integration
Continuous Integration
Liyao Chen
Surgeons guide plugin development
Surgeons guide plugin development
afragen
DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...
DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...
DevOpsDays Riga
Cross Platform Native Development with Appcelerator Titanium (2015 DevNexus)
Cross Platform Native Development with Appcelerator Titanium (2015 DevNexus)
Stephen Feather
Speed up your Titanium app development with automated tests - TiConf EU 2014
Speed up your Titanium app development with automated tests - TiConf EU 2014
Emanuele Rampichini
Tdd
Tdd
dasdom
Recomendados
Drupal Performance
Drupal Performance
Pantheon
Git Standards
Git Standards
Juan Wellington Moreno
Continuous Integration
Continuous Integration
Liyao Chen
Surgeons guide plugin development
Surgeons guide plugin development
afragen
DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...
DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...
DevOpsDays Riga
Cross Platform Native Development with Appcelerator Titanium (2015 DevNexus)
Cross Platform Native Development with Appcelerator Titanium (2015 DevNexus)
Stephen Feather
Speed up your Titanium app development with automated tests - TiConf EU 2014
Speed up your Titanium app development with automated tests - TiConf EU 2014
Emanuele Rampichini
Tdd
Tdd
dasdom
Trunk-Based Development and Toggling
Trunk-Based Development and Toggling
Bryan Liu
Comparing Agile QA Approaches to End-to-End Testing
Comparing Agile QA Approaches to End-to-End Testing
Katie Chin
Scrum Gathering Portugal 2016 - Containerizing Tests with Docker
Scrum Gathering Portugal 2016 - Containerizing Tests with Docker
Stefan Teixeira
Coding Dojo: Adding Tests to Legacy Code (2014)
Coding Dojo: Adding Tests to Legacy Code (2014)
Peter Kofler
Continuous Delivery for Mobile platforms (iOS and a bit of Android)
Continuous Delivery for Mobile platforms (iOS and a bit of Android)
Rami Rantala
Software development terminology
Software development terminology
jstack
Modern Web 2016: Using Golang to build a smart IM Bot
Modern Web 2016: Using Golang to build a smart IM Bot
Evan Lin
COSCUP 2016: Project 52 每週一個小專案來學習 Golang
COSCUP 2016: Project 52 每週一個小專案來學習 Golang
Evan Lin
Test Driven Development on Android (Kotlin Kenya)
Test Driven Development on Android (Kotlin Kenya)
Danny Preussler
Patterns and antipatterns in Docker image lifecycle as was presented at DC Do...
Patterns and antipatterns in Docker image lifecycle as was presented at DC Do...
Baruch Sadogursky
Trying Out Tomorrow’s WordPress Today
Trying Out Tomorrow’s WordPress Today
DrewAPicture
TDC 2016 SP - Continuous Delivery para aplicações Java com ferramentas open-s...
TDC 2016 SP - Continuous Delivery para aplicações Java com ferramentas open-s...
Stefan Teixeira
Robot Framework
Robot Framework
Onur Baskirt
Git workflow in agile development
Git workflow in agile development
Zack Siri
London Atlassian User Group - February 2014
London Atlassian User Group - February 2014
Steve Smith
Collaborative Package Development in R
Collaborative Package Development in R
egoodwintx
Calabash - Karl and Jonas
Calabash - Karl and Jonas
Xamarin
So You Just Inherited a $Legacy Application… NomadPHP July 2016
So You Just Inherited a $Legacy Application… NomadPHP July 2016
Joe Ferguson
Is your API misbehaving?(Keith-Casey)
Is your API misbehaving?(Keith-Casey)
Future Insights
Come si applica l'OCP
Come si applica l'OCP
Andrea Francia
The Hitchhiker's Guide to Servo Contributor [COSCUP 2020]
The Hitchhiker's Guide to Servo Contributor [COSCUP 2020]
Cheng You Bai
How HipChat Ships and Recovers Fast with DevOps Practices
How HipChat Ships and Recovers Fast with DevOps Practices
Atlassian
Más contenido relacionado
La actualidad más candente
Trunk-Based Development and Toggling
Trunk-Based Development and Toggling
Bryan Liu
Comparing Agile QA Approaches to End-to-End Testing
Comparing Agile QA Approaches to End-to-End Testing
Katie Chin
Scrum Gathering Portugal 2016 - Containerizing Tests with Docker
Scrum Gathering Portugal 2016 - Containerizing Tests with Docker
Stefan Teixeira
Coding Dojo: Adding Tests to Legacy Code (2014)
Coding Dojo: Adding Tests to Legacy Code (2014)
Peter Kofler
Continuous Delivery for Mobile platforms (iOS and a bit of Android)
Continuous Delivery for Mobile platforms (iOS and a bit of Android)
Rami Rantala
Software development terminology
Software development terminology
jstack
Modern Web 2016: Using Golang to build a smart IM Bot
Modern Web 2016: Using Golang to build a smart IM Bot
Evan Lin
COSCUP 2016: Project 52 每週一個小專案來學習 Golang
COSCUP 2016: Project 52 每週一個小專案來學習 Golang
Evan Lin
Test Driven Development on Android (Kotlin Kenya)
Test Driven Development on Android (Kotlin Kenya)
Danny Preussler
Patterns and antipatterns in Docker image lifecycle as was presented at DC Do...
Patterns and antipatterns in Docker image lifecycle as was presented at DC Do...
Baruch Sadogursky
Trying Out Tomorrow’s WordPress Today
Trying Out Tomorrow’s WordPress Today
DrewAPicture
TDC 2016 SP - Continuous Delivery para aplicações Java com ferramentas open-s...
TDC 2016 SP - Continuous Delivery para aplicações Java com ferramentas open-s...
Stefan Teixeira
Robot Framework
Robot Framework
Onur Baskirt
Git workflow in agile development
Git workflow in agile development
Zack Siri
London Atlassian User Group - February 2014
London Atlassian User Group - February 2014
Steve Smith
Collaborative Package Development in R
Collaborative Package Development in R
egoodwintx
Calabash - Karl and Jonas
Calabash - Karl and Jonas
Xamarin
So You Just Inherited a $Legacy Application… NomadPHP July 2016
So You Just Inherited a $Legacy Application… NomadPHP July 2016
Joe Ferguson
Is your API misbehaving?(Keith-Casey)
Is your API misbehaving?(Keith-Casey)
Future Insights
Come si applica l'OCP
Come si applica l'OCP
Andrea Francia
La actualidad más candente
(20)
Trunk-Based Development and Toggling
Trunk-Based Development and Toggling
Comparing Agile QA Approaches to End-to-End Testing
Comparing Agile QA Approaches to End-to-End Testing
Scrum Gathering Portugal 2016 - Containerizing Tests with Docker
Scrum Gathering Portugal 2016 - Containerizing Tests with Docker
Coding Dojo: Adding Tests to Legacy Code (2014)
Coding Dojo: Adding Tests to Legacy Code (2014)
Continuous Delivery for Mobile platforms (iOS and a bit of Android)
Continuous Delivery for Mobile platforms (iOS and a bit of Android)
Software development terminology
Software development terminology
Modern Web 2016: Using Golang to build a smart IM Bot
Modern Web 2016: Using Golang to build a smart IM Bot
COSCUP 2016: Project 52 每週一個小專案來學習 Golang
COSCUP 2016: Project 52 每週一個小專案來學習 Golang
Test Driven Development on Android (Kotlin Kenya)
Test Driven Development on Android (Kotlin Kenya)
Patterns and antipatterns in Docker image lifecycle as was presented at DC Do...
Patterns and antipatterns in Docker image lifecycle as was presented at DC Do...
Trying Out Tomorrow’s WordPress Today
Trying Out Tomorrow’s WordPress Today
TDC 2016 SP - Continuous Delivery para aplicações Java com ferramentas open-s...
TDC 2016 SP - Continuous Delivery para aplicações Java com ferramentas open-s...
Robot Framework
Robot Framework
Git workflow in agile development
Git workflow in agile development
London Atlassian User Group - February 2014
London Atlassian User Group - February 2014
Collaborative Package Development in R
Collaborative Package Development in R
Calabash - Karl and Jonas
Calabash - Karl and Jonas
So You Just Inherited a $Legacy Application… NomadPHP July 2016
So You Just Inherited a $Legacy Application… NomadPHP July 2016
Is your API misbehaving?(Keith-Casey)
Is your API misbehaving?(Keith-Casey)
Come si applica l'OCP
Come si applica l'OCP
Similar a Contributing to StrongLoop LoopBack (and other open source projects)
The Hitchhiker's Guide to Servo Contributor [COSCUP 2020]
The Hitchhiker's Guide to Servo Contributor [COSCUP 2020]
Cheng You Bai
How HipChat Ships and Recovers Fast with DevOps Practices
How HipChat Ships and Recovers Fast with DevOps Practices
Atlassian
Strategie di testing: Spring Boot loves Kotlin
Strategie di testing: Spring Boot loves Kotlin
Marco Fracassi
Testing API's: Tools & Tips & Tricks (Oh My!)
Testing API's: Tools & Tips & Tricks (Oh My!)
Ford Prior
Github github-github
Github github-github
fusion2011
Don't hate, automate. lessons learned from implementing continuous delivery
Don't hate, automate. lessons learned from implementing continuous delivery
Solano Labs
RapidDev - Develop Titanium apps at the speed of the web!
RapidDev - Develop Titanium apps at the speed of the web!
Matt Apperson
Cqrs api
Cqrs api
Brandon Mueller
Chris Mathias Presents Advanced API Design Considerations at LA CTO Forum
Chris Mathias Presents Advanced API Design Considerations at LA CTO Forum
Chris Mathias
Mobile Development integration tests
Mobile Development integration tests
Kenneth Poon
Make your own Pokédex with the Pokéapi & Node/Express!
Make your own Pokédex with the Pokéapi & Node/Express!
Autodesk
OpenShift with Eclipse Tooling - EclipseCon 2012
OpenShift with Eclipse Tooling - EclipseCon 2012
Steven Pousty
Always up to date, testable and maintainable documentation with OpenAPI
Always up to date, testable and maintainable documentation with OpenAPI
GOG.com dev team
That worked before
That worked before
Christian Güdemann
DevDay 2013 - Building Startups and Minimum Viable Products
DevDay 2013 - Building Startups and Minimum Viable Products
Ben Hall
Space Camp June 2022 - API First.pdf
Space Camp June 2022 - API First.pdf
Postman
Mongodb and Totsy - E-commerce Case Study
Mongodb and Totsy - E-commerce Case Study
Mitch Pirtle
How to write bad code using C#
How to write bad code using C#
Wekoslav Stefanovski
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
Lucas Jellema
SV.CO’s iterative product development
SV.CO’s iterative product development
hari
Similar a Contributing to StrongLoop LoopBack (and other open source projects)
(20)
The Hitchhiker's Guide to Servo Contributor [COSCUP 2020]
The Hitchhiker's Guide to Servo Contributor [COSCUP 2020]
How HipChat Ships and Recovers Fast with DevOps Practices
How HipChat Ships and Recovers Fast with DevOps Practices
Strategie di testing: Spring Boot loves Kotlin
Strategie di testing: Spring Boot loves Kotlin
Testing API's: Tools & Tips & Tricks (Oh My!)
Testing API's: Tools & Tips & Tricks (Oh My!)
Github github-github
Github github-github
Don't hate, automate. lessons learned from implementing continuous delivery
Don't hate, automate. lessons learned from implementing continuous delivery
RapidDev - Develop Titanium apps at the speed of the web!
RapidDev - Develop Titanium apps at the speed of the web!
Cqrs api
Cqrs api
Chris Mathias Presents Advanced API Design Considerations at LA CTO Forum
Chris Mathias Presents Advanced API Design Considerations at LA CTO Forum
Mobile Development integration tests
Mobile Development integration tests
Make your own Pokédex with the Pokéapi & Node/Express!
Make your own Pokédex with the Pokéapi & Node/Express!
OpenShift with Eclipse Tooling - EclipseCon 2012
OpenShift with Eclipse Tooling - EclipseCon 2012
Always up to date, testable and maintainable documentation with OpenAPI
Always up to date, testable and maintainable documentation with OpenAPI
That worked before
That worked before
DevDay 2013 - Building Startups and Minimum Viable Products
DevDay 2013 - Building Startups and Minimum Viable Products
Space Camp June 2022 - API First.pdf
Space Camp June 2022 - API First.pdf
Mongodb and Totsy - E-commerce Case Study
Mongodb and Totsy - E-commerce Case Study
How to write bad code using C#
How to write bad code using C#
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
SV.CO’s iterative product development
SV.CO’s iterative product development
Último
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
The Digital Insurer
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
Antenna Manufacturer Coco
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Maria Levchenko
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
Pixlogix Infotech
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Miguel Araújo
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
Enterprise Knowledge
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
Enterprise Knowledge
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
wesley chun
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
Results
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
wesley chun
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
ThousandEyes
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
Puma Security, LLC
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
Delhi Call girls
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
Gabriella Davis
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Delhi Call girls
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Katpro Technologies
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Safe Software
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
apidays
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
The Digital Insurer
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
debabhi2
Último
(20)
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
Contributing to StrongLoop LoopBack (and other open source projects)
1.
CONTRIBUTING TO STRONGLOOP LOOPBACK Supasate Choochaisri @
Code Chill Chill 15 July 2016 (and other open source projects)
2.
ABOUT ME Supasate Choochaisri
(Ping) Larngear Technology & Streaming Co., Ltd. Thai Programmer Association IBM Inventor: LoopBack Developer Level II supasate.c@gmail.com github.com/supasate @kaizerwing
3.
JUST STARTED CONTRIBUTING
4.
WHAT IS STRONGLOOP LOOPBACK? •github.com/strongloop/loopback •A
popular open source Node.js framework •For composing scalable APIs
5.
Define Model
6.
Model Auto Creation
7.
http://localhost:3000/explorer
8.
9.
10.
11.
12.
MORE INFO • loopback.io •
strongloop.com/node-js/loopback- framework • www- 03.ibm.com/software/products/en/ api-connect
13.
HOW DID I
START CONTRIBUTING TO LOOPBACK?
14.
Myth Only good developers contribute
to open source
15.
Fact Contribute to open
source to become a good or better developer
16.
START LIKE A
BEGINNER
17.
18.
19.
20.
21.
No one responds
to my PR
22.
23.
24.
Forgot to follow
up
25.
26.
Tried installing and
failed
27.
Submitted a PR
28.
Yeah!!! My first
merged PR
29.
Run test and
failed at eslint and landed my second PR
30.
WANT TO TRY
ON LARGER PROJECT
31.
32.
Find issues
33.
Filter by beginner-friendly
label
34.
Filter by beginner-friendly
label
35.
36.
Fix it and
submit PRs (Pull Request)
37.
38.
Released
39.
Released
40.
CONTRIBUTION PROCESS (can be applied
to several projects)
41.
README
42.
Docker docs
43.
DOCS.DOCKER.COM/OPENSOURCE/WORKFLOW/MAKE-A-CONTRIBUTION/
44.
LoopBack similar process https://github.com/strongloop/loopback/wiki/Contributing-code#submitting-a-pull-request
45.
https://github.com/strongloop/loopback/wiki/Contributing-code#submitting-a-pull-request LoopBack similar process
46.
https://github.com/strongloop/loopback/wiki/Contributing-code#signing-patches SIGNING PATCHES
47.
https://github.com/strongloop/loopback/wiki/Contributing- code#contributor-license-agreement CONTRIBUTOR LICENSE AGREEMENT
48.
STEP BY STEP IN
REAL ACTION
49.
A FEW DAYS
AGO I SAW AN ISSUE THAT MIGHT BE ABLE TO BE SOLVED BEFORE THIS TALK
50.
51.
52.
1) FORK REPO
53.
1) FORK REPO
54.
2) CLONE FORKED
REPO
55.
2) CLONE FORKED
REPO
56.
3) ADD UPSTREAM
REPO
57.
3) ADD UPSTREAM
REPO
58.
4) PREPARE ENVIRONMENT
59.
5) FEEL THE
RUNNING PROJECT (COMPILE / RUN / TEST)
60.
5) FEEL THE
RUNNING PROJECT (COMPILE / RUN / TEST)
61.
6) CREATE NEW
BRANCH
62.
7) THE HARDEST
PART: FIND, UNDERSTAND, FIX • Ask project owner where to start • Search with keyword • Method call tracing • Debugging tool • etc.
63.
7.1) MODIFY CODE (I
found in code that the issue was actually solved so I just added a test to cover)
64.
7.2) RUN TEST
(BEFORE COMMIT)
65.
FIX ERROR UNTIL
THERE IS NO ERROR
66.
8) ADD &
COMMIT & SIGN-OFF
67.
8) ADD &
COMMIT & SIGN-OFF
68.
9) REBASE WITH
UPSTREAM (UPSTREAM MIGHT CONTAIN NEW CHANGES WHILE WE WERE FIXING)
69.
10) PUSH TO
YOUR FORKED REPO local branch remote branch
70.
11) OPEN A
PULL REQUEST (PR)
71.
Short title Description
72.
12) CHECK STATUS Bot
73.
12) CHECK STATUS one
time per repo
74.
13) AGREE CONTRIBUTOR
LICENSE AGREEMENT (ONE TIME PER REPO)
75.
13) AGREE CONTRIBUTOR
LICENSE AGREEMENT (ONE TIME PER REPO)
76.
14) CHECK CONTINUOUS
INTEGRATION STATUS
77.
15) NOTIFY A
VERIFIER TO TAKE A LOOK
78.
15) NOTIFY A
VERIFIER TO TAKE A LOOK
79.
16) READ COMMENTS
80.
16) READ COMMENTS
81.
17) FIX Fix it,
then, npm run test
82.
17) FIX
83.
GIT LOG
84.
18) SQUASH INTO
ONE COMMIT Interactive mode 2 commits from HEAD
85.
18) SQUASH INTO
ONE COMMIT
86.
18) SQUASH INTO
ONE COMMIT
87.
18.1) CHOOSE COMMIT
MESSAGE
88.
18.1) CHOOSE COMMIT
MESSAGE
89.
19) FORCE PUSH (WARNING:
HISTORY WILL BE RE-WRITTEN)
90.
20) CHECK STATUS (THIS
CASE REBASE NEEDED)
91.
21) REBASE AND
PUSH AGAIN
92.
93.
(OPTIONAL) LOOK CI
STATUS
94.
PR IS MERGED!
95.
DOCS.DOCKER.COM/OPENSOURCE/WORKFLOW/MAKE-A-CONTRIBUTION/
96.
ENJOY CONTRIBUTING!!! Supasate Choochaisri
(Ping) github.com/supasate @kaizerwing supasate.c@gmail.com
Descargar ahora