Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
Path: blob/master/src/packages/next/components/testimonials.tsx
Views: 687
/*1* This file is part of CoCalc: Copyright © 2023 Sagemath, Inc.2* License: MS-RSL – see LICENSE.md for details3*/45import { StaticImageData } from "next/image";67import Markdown from "@cocalc/frontend/editors/slate/static-markdown";8import { COLORS } from "@cocalc/util/theme";9import kiran from "public/features/kiran.jpeg";10import conley from "public/features/will_conley.jpg";11import { Paragraph } from "./misc";12import A from "./misc/A";13import Image from "./landing/image";1415export interface Testimonial {16name: string;17image?: StaticImageData;18website?: string; // a URL19affiliation?: string | { url: string; name: string };20date: string;21content: string; // markdown22}23export const TESTIMONIALS: Readonly<Testimonial[]> = [24{25name: "Undergraduate Student",26date: "March 2024",27content: `CoCalc is likely the best online environment for project-based work, even for undergraduate students like myself. In our class, we have to train large machine learning models on Python notebooks, so we wanted to look for an easy-to-use online solution where we could collaborate and rent powerful compute servers for training. Not only was the setup and documentation easy to follow, the environment and tools that CoCalc provides are top-notch. You can tell that CoCalc was built with care and passion.2829A few days in, our group faced a problem with compute servers (completely our own fault, I may add). We contacted support, initially expecting the usual long, drawn-out exchange with support staff to debug our issue. We never expected that the CEO and founder of CoCalc himself would give a practically instantaneous reply with his insights on our issue. In fact, he nailed our issue on the first try, and we have not had a problem since.3031CoCalc has been an incredible resource and force multiplier for my undergraduate studies with its ease of use and powerful capabilities. There were some issues due to our relative inexperience with remote platforms and Linux servers, but I believe the amazing support provided by CoCalc wholly negates any concerns we have from now on. I would wholeheartedly recommend this to any student considering CoCalc as an extension of their local environment for studying and practicing machine learning.`,32},33{34name: "John Spitzer",35date: "March 2024",36content: `37I have used SageMath for a long time.38The mathematics community does make an effort to provide open source options unlike the physics community which is only now discovering the attractions of open source.3940I have been using CoCalc for some time now and I have noticed a significant improvement in performance over recent times while the pricing is excellent.4142My recent work has been done entirely on CoCalc and it all worked fine.43It is a great development environment.44All the best and keep up the good work!`,45},46{47name: "Travis",48date: "Winter 2024",49content: `50I turned to CoCalc for a few major reasons:511. some familiarity with the platform already522. instructor/course features533. responsive support if needed544. transparent pricing555. trusted data privacy and handling (avoiding some other platforms for questionable practices)5657Setting up the course was straightforward with the website guides, and the message I sent for some advice was promptly replied. Setting up the course was intuitive, from adding students to distributing the handouts. I did not use any grading features for this, as it was a workshop just for learning.5859The purchase of computation resources was transparent, intuitive, and easy to navigate. Furthermore, I was pleased with the price and because of the affordability, I was able to keep the project upgraded throughout the entire 3 weeks so that participants could practice in between sessions instead of only during the workshop. This was well received by everyone involved and helped promote self learning.60`,61},62{63// https://sagemathcloud.zendesk.com/agent/tickets/1363364name: "Hugh Thomas",65date: "October 2023",66affiliation:67"LaCIM, Département de Mathématiques, Université du Québec à Montréal",68content: `69I do different things with CoCalc.70Right now, I am editing a shared LaTeX document which is a math paper.7172I also use it for simple calculations with rational functions, which I would screw up if I did them by hand.73Recently I used it as a convenient interface to Macauay2, which it is great for since I can never figure out how Macaulay2's interface is supposed to work.7475All that to say, I feel like I am using only a tiny fraction of the power of CoCalc, but it is making my life easier, and I am grateful for it.`,76},7778{79// https://sagemathcloud.zendesk.com/agent/tickets/1366480name: "Chuck Livingston",81date: "September 2023",82website: "https://math.indiana.edu/about/emeriti/livingston-charles.html",83affiliation: {84url: "https://math.indiana.edu/",85name: "Department of Mathematics, Indiana University",86},87content: `88CoCalc has provided me with a stable, fully equipped, environment in which I've been able to build my programming skills and develop some worthwhile programs for my mathematics community – all for the cost of a cup of coffee each month. It's been a tremendously valuable resource for me.`,89},9091// https://sagemathcloud.zendesk.com/agent/tickets/1367692{93name: "Scott Smith",94website:95"https://www.wlu.ca/academics/faculties/faculty-of-science/faculty-profiles/scott-smith/index.html",96affiliation: {97name: "Dept. of Chemistry and Biochemistry, Wilfrid Laurier University",98url: "https://www.wlu.ca/",99},100date: "May 2023",101content: `102Amazing! Now a chemistry nerd like me can do some pretty fancy things103without having to also become a computer scientist.104And share those things with those even less computer-programmy than myself.105So that chemistry advances without “getting lost in the weeds”.106107Time travel !!! wow !! I love that. (I could have used that many many times. Haha).108109I was pretty sad when mybinder stopped working. [...] I know that CoCalc will be a new and improved replacement for mybinder. And does not seem like a steep learning curve at all.110111The documentation (and support!) is fabulous !!`,112},113114{115name: "Kiran Kedlaya",116image: kiran,117date: "March 2017",118website: "https://kskedlaya.org/",119affiliation: {120url: "https://math.ucsd.edu/",121name: "Department of Mathematics, University of California, San Diego",122},123content: `124I just found out that my CoCalc class got by far the best course evaluations for any course I've taught at UCSD to date (over 85% on the favorable/unfavorable scale), which makes it a sure thing that I'll be teaching this course again (in some form) next year! Many thanks for the backend work on CoCalc, for the course materials, for the guest lecture...`,125},126{127name: "Will Conley",128image: conley,129date: "Fall 2016",130website: "https://www.math.ucla.edu/~conley/",131affiliation: {132url: "https://www.math.ucla.edu/",133name: "Department of Mathematics, University of California, Los Angeles",134},135content: `136CoCalc provides a user-friendly interface.137Students don't need to install any software at all.138They just open up a web browser and go to cocalc.com and that's it.139140They just type code directly in, hit shift+enter and it runs, and they can see if it works.141It provides immediate feedback.142The course management features work really well.`,143},144] as const;145146export function twoRandomTestimonials(): [Testimonial, Testimonial] {147let t1 = TESTIMONIALS[Math.floor(Math.random() * TESTIMONIALS.length)];148let t2 = t1;149while (t2 === t1) {150t2 = TESTIMONIALS[Math.floor(Math.random() * TESTIMONIALS.length)];151}152return [t1, t2];153}154155const STYLE: React.CSSProperties = {156borderLeft: `3px solid ${COLORS.GRAY_L}`,157paddingLeft: "1em",158color: COLORS.GRAY_DD,159fontStyle: "italic",160};161162const STYLE_BELOW: React.CSSProperties = {163textAlign: "right",164fontSize: "80%",165fontStyle: "italic",166};167168export function TestimonialComponent({169testimonial,170}: {171testimonial: Testimonial;172}) {173const { name, website, affiliation, content, date, image } = testimonial;174175function renderName() {176if (website) {177return <A href={website}>{name}</A>;178} else {179return name;180}181}182183function renderAffiliation() {184if (!affiliation) return;185if (typeof affiliation === "string") {186return <>({affiliation})</>;187} else {188return <>({<A href={affiliation.url}>{affiliation.name}</A>})</>;189}190}191192function renderDate() {193return `${date}`;194}195196function renderImage() {197if (!image) return;198return (199<Image200src={image}201alt={name}202style={{203width: "90px",204borderRadius: "6px",205float: "left",206margin: "0 15px 15px 0",207}}208/>209);210}211212return (213<Paragraph style={STYLE}>214{renderImage()}215<Markdown value={content} />216<div style={STYLE_BELOW}>217– {renderName()}, {renderDate()}218</div>219<div style={STYLE_BELOW}>{renderAffiliation()}</div>220</Paragraph>221);222}223224225