Node.js: Patterns and Opinions discusses Node.js principles and best practices. It emphasizes that Node.js is built on JavaScript and uses non-blocking I/O with callbacks to handle requests asynchronously. It recommends avoiding slowness, ignoring errors, and focusing on portability, small modular parts, and an open community approach. The future of Node.js involves continued improvements to core modules like HTTP and new versions of underlying technologies.
Ruby developers need to stop using EventMachine. It's the wrong direction.
Lost in the "Threads vs Event Driven vs Process Spawning" debate is that you can combine them! Learn how Celluloid is improving thread programming by abstracting them using a higher level framework called Celluloid, how you can use Celluloid::IO to throw a reactor pattern into a thread. Using this approach, you can take advantage of threading and use all CPU power on a machine with JRuby or Rubinius. I also discuss the future of distributed objects and computing, and where I think things are going.
Ruby developers need to stop using EventMachine. It's the wrong direction.
Lost in the "Threads vs Event Driven vs Process Spawning" debate is that you can combine them! Learn how Celluloid is improving thread programming by abstracting them using a higher level framework called Celluloid, how you can use Celluloid::IO to throw a reactor pattern into a thread. Using this approach, you can take advantage of threading and use all CPU power on a machine with JRuby or Rubinius. I also discuss the future of distributed objects and computing, and where I think things are going.
La idea de la charla es dar un comparación entre los diversos features de ambos lenguajes como:
* Lambdas/Closures
* Method references
* Default Methods / Traits
* Soporte de APIs de Java 8 en Groovy
How to bake reactive behavior into your Java EE applicationsOndrej Mihályi
You will witness that Java EE is a modern and evolving framework and you’ll learn how it supports reactive concepts by many examples and live demonstration. The latest version of Java EE together with Java 8 add even more asynchronous API to write fully reactive applications. Several Java EE implementations, like Payara Micro, go even further and provide extensions to scale your applications in a natural way.
Source code in github: https://github.com/OndrejM-demonstrations/Reactive-CargoTracker
Elixir and Crystal are both descendants of the Ruby programming language, applying Ruby syntax and ideas to extremely different functional and OOP foundations. This talk compares all three languages and suggests appropriate cases for applying them.
How to bake reactive behavior into your Java EE applicationsOndrej Mihályi
You will witness that Java EE is a modern and evolving framework and you’ll learn how it supports reactive concepts by many examples and live demonstration. The latest version of Java EE together with Java 8 add even more asynchronous API to write fully reactive applications. Several Java EE implementations, like Payara Micro, go even further and provide extensions to scale your applications in a natural way.
As presented at GeeCON Prague 2016. Almost the same slides used at JDD Krakow 2016 and CZJUG Hradec Kralove.
Steelcon 2015 - 0wning the internet of trashinfodox
My presentation slides from Steelcon 2015 on "Owning the Internet of Trash", a presentation on exploitation of endemic vulnerabilities in the so called "internet of things", with a focus on finding vulnerabilities in, exploiting, and gaining persistent access to, routers and other such embedded devices.
This talk was recorded, a video will be linked soonish, and went over some basics of analysing firmware, hardware, and suchlike to find bugs in things and hack the planet!
This is the slides accompanying the talk I gave at BSides Hannover 2015, discussing the reverse engineering and exploitation of numerous vulnerabilities in Icomera Moovmanage products along with the post exploitation of such, including the potential creation of a firmware rootkit
The Transparent Web: Bridging the Chasm in Web Developmenttwopoint718
I discuss the problems of modern web development: too many languages, poor security, and a significant sysadmin load. I introduce "Opa" and "Ur/Web" two next-generation web frameworks that allow you to write a single, safe, functional, and easy to deploy application.
Introduction to node.js by Ran Mizrahi @ Reversim SummitRan Mizrahi
Node.js is a platform built on Chrome V8 javascript runtime engine for building fast and scalable, non-blocking, real-time and network applications. In this session I'll introduce you to node.js and developing large code bases using it. We'll cover the following aspects:
* What is node.js?
* Apache vs. Nginx performance (One thread per connection vs. event loop) and what it has to do with node.js.
* Why node was written in Javascript?
* Main tools and frameworks (Express, socket.io, mongoose etc.)
* TDD/BDD with node.js using mocha and Expect.js
La idea de la charla es dar un comparación entre los diversos features de ambos lenguajes como:
* Lambdas/Closures
* Method references
* Default Methods / Traits
* Soporte de APIs de Java 8 en Groovy
How to bake reactive behavior into your Java EE applicationsOndrej Mihályi
You will witness that Java EE is a modern and evolving framework and you’ll learn how it supports reactive concepts by many examples and live demonstration. The latest version of Java EE together with Java 8 add even more asynchronous API to write fully reactive applications. Several Java EE implementations, like Payara Micro, go even further and provide extensions to scale your applications in a natural way.
Source code in github: https://github.com/OndrejM-demonstrations/Reactive-CargoTracker
Elixir and Crystal are both descendants of the Ruby programming language, applying Ruby syntax and ideas to extremely different functional and OOP foundations. This talk compares all three languages and suggests appropriate cases for applying them.
How to bake reactive behavior into your Java EE applicationsOndrej Mihályi
You will witness that Java EE is a modern and evolving framework and you’ll learn how it supports reactive concepts by many examples and live demonstration. The latest version of Java EE together with Java 8 add even more asynchronous API to write fully reactive applications. Several Java EE implementations, like Payara Micro, go even further and provide extensions to scale your applications in a natural way.
As presented at GeeCON Prague 2016. Almost the same slides used at JDD Krakow 2016 and CZJUG Hradec Kralove.
Steelcon 2015 - 0wning the internet of trashinfodox
My presentation slides from Steelcon 2015 on "Owning the Internet of Trash", a presentation on exploitation of endemic vulnerabilities in the so called "internet of things", with a focus on finding vulnerabilities in, exploiting, and gaining persistent access to, routers and other such embedded devices.
This talk was recorded, a video will be linked soonish, and went over some basics of analysing firmware, hardware, and suchlike to find bugs in things and hack the planet!
This is the slides accompanying the talk I gave at BSides Hannover 2015, discussing the reverse engineering and exploitation of numerous vulnerabilities in Icomera Moovmanage products along with the post exploitation of such, including the potential creation of a firmware rootkit
The Transparent Web: Bridging the Chasm in Web Developmenttwopoint718
I discuss the problems of modern web development: too many languages, poor security, and a significant sysadmin load. I introduce "Opa" and "Ur/Web" two next-generation web frameworks that allow you to write a single, safe, functional, and easy to deploy application.
Introduction to node.js by Ran Mizrahi @ Reversim SummitRan Mizrahi
Node.js is a platform built on Chrome V8 javascript runtime engine for building fast and scalable, non-blocking, real-time and network applications. In this session I'll introduce you to node.js and developing large code bases using it. We'll cover the following aspects:
* What is node.js?
* Apache vs. Nginx performance (One thread per connection vs. event loop) and what it has to do with node.js.
* Why node was written in Javascript?
* Main tools and frameworks (Express, socket.io, mongoose etc.)
* TDD/BDD with node.js using mocha and Expect.js
Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/2PeX3wC.
Steve Klabnik gives an overview of Rust’s history, diving into the technical details of how the design has changed, and talks about the difficulties of adding a major new feature to a programming language. Filmed at qconnewyork.com.
Steve Klabnik is on the core team of Rust, leads the documentation team, and is an author of "The Rust Programming Language”. He is a frequent speaker at conferences and is a prolific open source contributor, previously working on projects such as Ruby and Ruby on Rails.
Load testing, Lessons learnt and Loadzen - Martin Buhr at DevTank - 31st Janu...Loadzen
Talk by Martin Buhr, Founder of Loadzen.com at Devtank on the 31st of January about the importance of load testing your site as a startup, how http://loadzen.com was built and the lessons learned.
Offensive (Web, etc) Testing Framework: My gift for the community - BerlinSid...Abraham Aranguren
Introduction to the Offensive (Web, etc) Testing Framework
Demos: http://www.youtube.com/playlist?list=PL1E7A97C1BCCDEEBB&feature=plcp
Download as PDF if fonts look funny.
When your code is nearly old enough to votedreamwidth
As time marches on, more and more FLOSS projects are reaching ages that qualify them as 'venerable'. On the one hand, that rich history of constant improvement provides a robust framework upon which to build. On the other hand, that can lead to sections of the code marked "here be dragons" that haven't been touched in this millennium, and the ever-accelerating speed of technology's march can leave you with a balance-sheet of technical debt that would make anyone quail.
This talk is a case study of Dreamwidth Studios, forked in 2008 from LiveJournal.com, a project that began in 1999. With a quarter-million lines of legacy Perl, it's been hard to decide what to modernize and what to leave alone. Come hear our successes, our failures, and a few horror stories of disasters we've stumbled into along the way.
How to Lose Functional Programming at WorkRobert Pearce
This is a collection of tips on how to unsuccessfully introduce and keep functional programming styles and principles in your workplace, told by someone who has done all of them.
Thursday night is fine with us know what time we should go and if you are approached to make sure you get the best for the wonderful and soon they were going on the top management across
Web Motion: Motion Detection on the Webfisherwebdev
Slides from a talk originally given on April 1, 2013 at the HTML5 Developer Conference in San Francisco
Outline:
1. Overview of competitive landscape.
2. Up close with the LeapJS API
3. How will this fit into web standards?
In the ever-evolving landscape of technology, enterprise software development is undergoing a significant transformation. Traditional coding methods are being challenged by innovative no-code solutions, which promise to streamline and democratize the software development process.
This shift is particularly impactful for enterprises, which require robust, scalable, and efficient software to manage their operations. In this article, we will explore the various facets of enterprise software development with no-code solutions, examining their benefits, challenges, and the future potential they hold.
Graspan: A Big Data System for Big Code AnalysisAftab Hussain
We built a disk-based parallel graph system, Graspan, that uses a novel edge-pair centric computation model to compute dynamic transitive closures on very large program graphs.
We implement context-sensitive pointer/alias and dataflow analyses on Graspan. An evaluation of these analyses on large codebases such as Linux shows that their Graspan implementations scale to millions of lines of code and are much simpler than their original implementations.
These analyses were used to augment the existing checkers; these augmented checkers found 132 new NULL pointer bugs and 1308 unnecessary NULL tests in Linux 4.4.0-rc5, PostgreSQL 8.3.9, and Apache httpd 2.2.18.
- Accepted in ASPLOS ‘17, Xi’an, China.
- Featured in the tutorial, Systemized Program Analyses: A Big Data Perspective on Static Analysis Scalability, ASPLOS ‘17.
- Invited for presentation at SoCal PLS ‘16.
- Invited for poster presentation at PLDI SRC ‘16.
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus
As part of the DOE Integrated Research Infrastructure (IRI) program, NERSC at Lawrence Berkeley National Lab and ALCF at Argonne National Lab are working closely with General Atomics on accelerating the computing requirements of the DIII-D experiment. As part of the work the team is investigating ways to speedup the time to solution for many different parts of the DIII-D workflow including how they run jobs on HPC systems. One of these routes is looking at Globus Compute as a way to replace the current method for managing tasks and we describe a brief proof of concept showing how Globus Compute could help to schedule jobs and be a tool to connect compute at different facilities.
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Crescat
Crescat is industry-trusted event management software, built by event professionals for event professionals. Founded in 2017, we have three key products tailored for the live event industry.
Crescat Event for concert promoters and event agencies. Crescat Venue for music venues, conference centers, wedding venues, concert halls and more. And Crescat Festival for festivals, conferences and complex events.
With a wide range of popular features such as event scheduling, shift management, volunteer and crew coordination, artist booking and much more, Crescat is designed for customisation and ease-of-use.
Over 125,000 events have been planned in Crescat and with hundreds of customers of all shapes and sizes, from boutique event agencies through to international concert promoters, Crescat is rigged for success. What's more, we highly value feedback from our users and we are constantly improving our software with updates, new features and improvements.
If you plan events, run a venue or produce festivals and you're looking for ways to make your life easier, then we have a solution for you. Try our software for free or schedule a no-obligation demo with one of our product specialists today at crescat.io
AI Genie Review: World’s First Open AI WordPress Website CreatorGoogle
AI Genie Review: World’s First Open AI WordPress Website Creator
👉👉 Click Here To Get More Info 👇👇
https://sumonreview.com/ai-genie-review
AI Genie Review: Key Features
✅Creates Limitless Real-Time Unique Content, auto-publishing Posts, Pages & Images directly from Chat GPT & Open AI on WordPress in any Niche
✅First & Only Google Bard Approved Software That Publishes 100% Original, SEO Friendly Content using Open AI
✅Publish Automated Posts and Pages using AI Genie directly on Your website
✅50 DFY Websites Included Without Adding Any Images, Content Or Doing Anything Yourself
✅Integrated Chat GPT Bot gives Instant Answers on Your Website to Visitors
✅Just Enter the title, and your Content for Pages and Posts will be ready on your website
✅Automatically insert visually appealing images into posts based on keywords and titles.
✅Choose the temperature of the content and control its randomness.
✅Control the length of the content to be generated.
✅Never Worry About Paying Huge Money Monthly To Top Content Creation Platforms
✅100% Easy-to-Use, Newbie-Friendly Technology
✅30-Days Money-Back Guarantee
See My Other Reviews Article:
(1) TubeTrivia AI Review: https://sumonreview.com/tubetrivia-ai-review
(2) SocioWave Review: https://sumonreview.com/sociowave-review
(3) AI Partner & Profit Review: https://sumonreview.com/ai-partner-profit-review
(4) AI Ebook Suite Review: https://sumonreview.com/ai-ebook-suite-review
#AIGenieApp #AIGenieBonus #AIGenieBonuses #AIGenieDemo #AIGenieDownload #AIGenieLegit #AIGenieLiveDemo #AIGenieOTO #AIGeniePreview #AIGenieReview #AIGenieReviewandBonus #AIGenieScamorLegit #AIGenieSoftware #AIGenieUpgrades #AIGenieUpsells #HowDoesAlGenie #HowtoBuyAIGenie #HowtoMakeMoneywithAIGenie #MakeMoneyOnline #MakeMoneywithAIGenie
Understanding Nidhi Software Pricing: A Quick Guide 🌟
Choosing the right software is vital for Nidhi companies to streamline operations. Our latest presentation covers Nidhi software pricing, key factors, costs, and negotiation tips.
📊 What You’ll Learn:
Key factors influencing Nidhi software price
Understanding the true cost beyond the initial price
Tips for negotiating the best deal
Affordable and customizable pricing options with Vector Nidhi Software
🔗 Learn more at: www.vectornidhisoftware.com/software-for-nidhi-company/
#NidhiSoftwarePrice #NidhiSoftware #VectorNidhi
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.
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeAftab Hussain
Understanding variable roles in code has been found to be helpful by students
in learning programming -- could variable roles help deep neural models in
performing coding tasks? We do an exploratory study.
- These are slides of the talk given at InteNSE'23: The 1st International Workshop on Interpretability and Robustness in Neural Software Engineering, co-located with the 45th International Conference on Software Engineering, ICSE 2023, Melbourne Australia
Globus Connect Server Deep Dive - GlobusWorld 2024Globus
We explore the Globus Connect Server (GCS) architecture and experiment with advanced configuration options and use cases. This content is targeted at system administrators who are familiar with GCS and currently operate—or are planning to operate—broader deployments at their institution.
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...Juraj Vysvader
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I didn't get rich from it but it did have 63K downloads (powered possible tens of thousands of websites).
Do you want Software for your Business? Visit Deuglo
Deuglo has top Software Developers in India. They are experts in software development and help design and create custom Software solutions.
Deuglo follows seven steps methods for delivering their services to their customers. They called it the Software development life cycle process (SDLC).
Requirement — Collecting the Requirements is the first Phase in the SSLC process.
Feasibility Study — after completing the requirement process they move to the design phase.
Design — in this phase, they start designing the software.
Coding — when designing is completed, the developers start coding for the software.
Testing — in this phase when the coding of the software is done the testing team will start testing.
Installation — after completion of testing, the application opens to the live server and launches!
Maintenance — after completing the software development, customers start using the software.
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Globus
Large Language Models (LLMs) are currently the center of attention in the tech world, particularly for their potential to advance research. In this presentation, we'll explore a straightforward and effective method for quickly initiating inference runs on supercomputers using the vLLM tool with Globus Compute, specifically on the Polaris system at ALCF. We'll begin by briefly discussing the popularity and applications of LLMs in various fields. Following this, we will introduce the vLLM tool, and explain how it integrates with Globus Compute to efficiently manage LLM operations on Polaris. Attendees will learn the practical aspects of setting up and remotely triggering LLMs from local machines, focusing on ease of use and efficiency. This talk is ideal for researchers and practitioners looking to leverage the power of LLMs in their work, offering a clear guide to harnessing supercomputing resources for quick and effective LLM inference.
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
Utilocate offers a comprehensive solution for locate ticket management by automating and streamlining the entire process. By integrating with Geospatial Information Systems (GIS), it provides accurate mapping and visualization of utility locations, enhancing decision-making and reducing the risk of errors. The system's advanced data analytics tools help identify trends, predict potential issues, and optimize resource allocation, making the locate ticket management process smarter and more efficient. Additionally, automated ticket management ensures consistency and reduces human error, while real-time notifications keep all relevant personnel informed and ready to respond promptly.
The system's ability to streamline workflows and automate ticket routing significantly reduces the time taken to process each ticket, making the process faster and more efficient. Mobile access allows field technicians to update ticket information on the go, ensuring that the latest information is always available and accelerating the locate process. Overall, Utilocate not only enhances the efficiency and accuracy of locate ticket management but also improves safety by minimizing the risk of utility damage through precise and timely locates.
OpenMetadata Community Meeting - 5th June 2024OpenMetadata
The OpenMetadata Community Meeting was held on June 5th, 2024. In this meeting, we discussed about the data quality capabilities that are integrated with the Incident Manager, providing a complete solution to handle your data observability needs. Watch the end-to-end demo of the data quality features.
* How to run your own data quality framework
* What is the performance impact of running data quality frameworks
* How to run the test cases in your own ETL pipelines
* How the Incident Manager is integrated
* Get notified with alerts when test cases fail
Watch the meeting recording here - https://www.youtube.com/watch?v=UbNOje0kf6E
Enhancing Research Orchestration Capabilities at ORNL.pdfGlobus
Cross-facility research orchestration comes with ever-changing constraints regarding the availability and suitability of various compute and data resources. In short, a flexible data and processing fabric is needed to enable the dynamic redirection of data and compute tasks throughout the lifecycle of an experiment. In this talk, we illustrate how we easily leveraged Globus services to instrument the ACE research testbed at the Oak Ridge Leadership Computing Facility with flexible data and task orchestration capabilities.
First Steps with Globus Compute Multi-User EndpointsGlobus
In this presentation we will share our experiences around getting started with the Globus Compute multi-user endpoint. Working with the Pharmacology group at the University of Auckland, we have previously written an application using Globus Compute that can offload computationally expensive steps in the researcher's workflows, which they wish to manage from their familiar Windows environments, onto the NeSI (New Zealand eScience Infrastructure) cluster. Some of the challenges we have encountered were that each researcher had to set up and manage their own single-user globus compute endpoint and that the workloads had varying resource requirements (CPUs, memory and wall time) between different runs. We hope that the multi-user endpoint will help to address these challenges and share an update on our progress here.
3. WTF is a Node.js?
•JavaScript on the Server
(or robots, helicopters, any other not-a-web-browser thing)
•Non-blocking I/O
•Callbacks, Events, and Streams
Monday, April 15, 13
5. conventional program
printLine('Enter your name:')
// waiting for I/O to happen!
var name = getLine();
// omg soooo slllloooowwwww
var r = db.save(name);
// taking literally forever
if (r === 'ok')
printLine('it worked!');
Monday, April 15, 13
8. Non-blocking I/O is not about
making I/O faster
•It's about making I/O not prevent other I/O
•Doing things in this way adds a slight amount of overhead.
•However, we're not monopolizing the process while we wait.
•Our server can be handling other requests while we're sitting
around doing nothing.
Monday, April 15, 13
9. Callback Drawbacks
•Stack gets unwound - Error().stack doesn't tell you much
•try/catch can't wrap throws effectively
•Boilerplate is hard to look at - `function` is a lot of characters
•Lots of indentation - "Christmas Tree Code"
Monday, April 15, 13
12. Node actually has a lot of
internal threads, but...
•Only one thread is running JavaScript
•That means that your JS will not have to worry about
some other JS getting in its way
•Simplifies parallel coding model dramatically
•Safe to share data between requests
•while(true); will prevent new requests
Monday, April 15, 13
14. Coroutines
•Cooperative Multitasking with yield and await keywords
•No preemption issues, same while(true); behavior
•Stack not unwound (try/throw/catch isn't broken)
•Not how JavaScript works (today)
•Requires modifying the semantics of the language
Monday, April 15, 13
18. no, we're not jerks.
•callback: lowest Node abstraction for doing one async thing
•EventEmitter: for things that happen continuously over time
Monday, April 15, 13
19. cb vs ee
•callback: "Show me all the blueprints"
•EventEmitter: "Any time you get blueprints, show me them"
way of the future
Monday, April 15, 13
20. EventEmitter
var e = new EventEmitter();
e.on('foo', function(arg) {
console.log('baz' + arg)
});
e.emit('foo', 'bar');
// prints 'bazbar'
Monday, April 15, 13
21. hello, EventEmitter
var s = new http.Server()
s.on('request', function(req, res){
res.end('hello, txjs!')
})
s.listen(80)
Monday, April 15, 13
22. Streams
•When managing data flows, control throughput or ENOMEM
•Streams are a special EventEmitter that takes care of this
•inputGoober.pipe(outputThingie)
•When you grok this, you grok Node.
•(see also: Marco Rogers talk)
Monday, April 15, 13
26. Node is JavaScript
•Node is not a language - JavaScript is the language
•Portability, Events, Run to completion:The JavaScript way
•Not developing a language removes a huge burden.
Let TC-39 andV8 fight those battles for us!
•Node.js endeavors to embody the spirit of JavaScript,
not to change it.
Monday, April 15, 13
28. Do not ignore errors
•Callbacks all get an error object as their first argument
•EventEmitter 'error' event is magical... MAGICALLY DEADLY!
•Domains and process.on('uncaughtException') to clean up, but
continuing in error is almost always terrible!
•Exactly how to "not ignore" errors is a question of some
debate. Liberal (never crash) vs Conservative (crash asap)
Monday, April 15, 13
32. Increase Portability
•libuv: Evented nonblocking I/O for Computers
•If you write JavaScript, it'll run on every OS Node runs on
•Safety and portability are default.
•Sometimes portability is compromised for "When in Rome"
eg path strings: on Windows, / on Unix
•If you write C++ addons, of course, all bets are off
Monday, April 15, 13
34. Slowness is a Bug
•Latency is far and away the most important metric
(Some would say, the only important metric!)
•Unnecessary slowness is a bug, a sign of incorrect behavior
•Necessary slowness must be isolated, reduced in scope
•A slow thing should not ever make other things slow
•This is what that nonblocking callback stuff is all about
node's http client breaks this rule badly right now. will be fixed in 0.12!
Monday, April 15, 13
36. Unix Philosophy
•Interfaces should be obvious, simple, composible, consistent
•Callback => EventEmitter => Stream
•Portability, backwards compatibility
•"Every program is a proxy" - Ryan Dahl
•"Don't build big apps" - Substack
Monday, April 15, 13
38. Assemble rather than invent
•JavaScript is old
•Nonblocking I/O is ancient
•Unix is paleolithic
•Put proven things together in simple ways
•Unix philosophy applied to ideas
Monday, April 15, 13
40. Small Core, Small Parts
•The scope of node's core API is much smaller than
comparable server runtimes
•No glob, no xml, etc. This is on purpose.
•Small core => active userland
•"The Standard Library is where modules go to die" - Python
•Most npm modules are tiny, single-purpose, composible
Monday, April 15, 13
42. Node is a Community
•Everyone is an npm publisher. Everyone is a collaborator.
•Minimum Necessary Process: Governance mostly laissez-faire
•Small core team, BDFL model; Expansive prolific community
•Alternatives are cherished! No "one true" anything
•Work together to explore the solution space.
Monday, April 15, 13
47. JIFASNIF
•JavaScript is fun, and so Node is fun.
•When making a decision, always choose the funner option
•"Fun" is a very non-trivial concept! Not "easy" or "simple" or
"complicated" or "featureful" or "hard"
•A feeling of efficacy, rising to challenges, moving fast
•It's fun to create, share, put parts together, help each other
•Reduce obstacles to having fun!
Monday, April 15, 13
50. v1.0.0
•The next stable release after 0.12 (probably)
•Incremental improvements, uv/npm/V8 upgrades
•Not much in the way of new features
•Node-core's boundary is pretty much set
•The Node community's future is boundless
Monday, April 15, 13
51. See you on
the Internet!
http://j.mp/node-patterns-pdf
Monday, April 15, 13