1 of 22

Open Source Software team

Intro to

November 2nd, 3:30 PM-4:30 PM

Launch into the vast expanse of collaborative development, exploring new frontiers and innovating together!��Self link: acmcsuf.com/oss-meeting-7

🍁

🍂

🍃

🌿

Deno

2 of 22

2

LettuceMeet form

3 of 22

3

Meeting 10/26 recap

Last week’s slides: acmcsuf.com/oss-meeting-6

Last week we had a SvelteKit workshop run by Tomas and Oscar! We are really grateful they stepped up and helped out so thank you for those who stayed interested and came to support them. Feel free to reach out to @Ethan or @Karni in the ACM server (#💗just-chatting or DMs) to get a re-reminder!

REVIEW SYNC NOTES!!! (acmcsuf.com/oss-sync)

4 of 22

4

Next week’s workshop:

Leveraging Social Media for Project Visibility

5 of 22

5

✏️Meeting 11/2 agenda

Time

Topic

2:45 PM-3:15 PM

Unblocked games in the library: Club Penguin, Neopets, Cool Math, and ethandavidson.com/games

3:30 PM-3:50 PM

Deno mini-workshop

3:50 PM-5:00 PM

Get into teams, update sync, continue progress on projects

Website redesign: 🔴LIVE🔴 demo on general component for the updated /about + /teams page

6 of 22

6

What is Deno?

Deno is a secure runtime for JavaScript and TypeScript. It provides a modern and secure environment for running JavaScript and TypeScript code outside of a browser.

7 of 22

7

Deno vs Node.js

Deno is a secure runtime for JavaScript and TypeScript, while node.js is a popular runtime for JavaScript. Deno has built-in security features, better module management, and supports TypeScript natively, while Node.js has a larger ecosystem and more mature libraries.

8 of 22

8

Why not Node.js?

Node.js has faced major security concerns related to supply chain attacks, where malicious actors may inject code into the dependencies of a project. Deno, on the other hand, has built-in security features that aim to mitigate such risks by default. It provides a more secure runtime environment with features like permission-based access, secure module imports, and a centralized module registry.

9 of 22

9

Why not Bun?

The performance benchmarks for Bun appear to be targeted and specifically demonstrate optimizations made for certain aspects of the runtime, rather than offering a comprehensive evaluation of its overall performance across all aspects. As Bun is relatively new, it is reasonable to assume that there is still ample opportunity for further enhancements and refinements.

However, Node.js, being a well-established runtime with a large user base and extensive ecosystem, you may find a stronger investment represented in terms of overall maturity and community support and framework support. On the other hand, Deno, created by the same individual responsible for Node.js, carries a sense of promise and familiarity due to its lineage. It combines the experience of Node.js' creator with a modernized design, enhanced security features, and improved tooling, leaving Node.js to be legacy software.

10 of 22

10

Drop-in replacement

The Bun toolchain is virtually interchangeable with the Node.js toolchain offering backwards compatibility which encourages Node.js projects to adopt Bun.

The Deno toolchain is not drop-in replaceable with the Node.js toolchain. Deno supports many Node.js features, but is not feature complete.

11 of 22

11

Web platform test perfectionism

Deno strives to perfectly support all APIs offered in web browsers. JavaScript is future-proof and the most popular programming language, so it is special compared to all other languages.

12 of 22

12

URL module imports

node is not a good idea to use anymore for supply chain attack issues while deno is secure by default

13 of 22

13

Tooling

  • deno doc --html: Generate documentation.
  • deno lint: Run Deno linter.
  • deno fmt: Run Deno formatter.
  • deno task start: Deno task runner.
  • deno lock: Write Deno lock file.
  • See more: docs.deno.com/runtime/manual

14 of 22

14

Developer experience

Deno natively supports TypeScript, meaning that you can write your code in TypeScript without the need for additional transpilation steps. This makes the development process more straightforward and efficient.

15 of 22

15

Infrastructure

Infrastructure as code paradigms refer to the practice of managing and provisioning infrastructure resources using code. Deno Deploy provides out-of-the-box (ootb) primitives that make it convenient to deploy and manage serverless applications.

  • Production-ready web server: Deno.serve
  • Production-ready key-value store and message queue: Deno.openKv

16 of 22

16

How we use Deno

We use Deno in many of our Discord interaction bots since all they require is a web server.

  • LC-Dailies
  • Shorter
  • TLDR
  • Etc.

We use Deno for writing backend programs in TypeScript.

17 of 22

17

HumeTube

HumeTube is an example of a recent program we created using Deno Deploy to easily serve and store our data.

18 of 22

18

Resources

19 of 22

19

New Open Source Software officers

foo

foo

Tomas

Oscar

20 of 22

20

Now break off into groups!

Groups

Projects

People

TODOs

Group 1

acmcsuf.com

Sama, Ju Yeong, Nestor, Matthew

Join Karni for live coding demo

Group 2

CSUF Surveys

Alex K, Justin P. Lee, Tony

Create a design document, update sync doc

Group 3

api.acmcsuf.com

Clubannounce

John, Jeremiah

Joseph, Tomas

Read over design document, discuss understandings, update sync doc

Group 4

acmcsuf.com/quiz

Alan, Brian

Discuss additional features, update sync doc

Group 5

Form

Katie, Alex P.

Read over design document, update sync docs

Group 6

Crying Counter

Pdf2png

Archive

acmBall 2

Finder

Vamsi

Eric

Rohan

Jacob

Mark

Discuss amongst each other on your understandings of the projects and what the next step should be in achieving progress, update sync document

21 of 22

21

Stick around!

🕕6:00 PM-7:00 PM

🌎MH 464

This is related to the Trends project–If the topic interests you, reach out to assist!

AI Team: Audio in AI

22 of 22

22

Next week’s workshop

basics

Deno

📅Thursday, November 2nd

🕒3:30 PM - 4:30 PM

🌎MH 655

Deno + Project work sessions