diff --git a/about/people.yml b/about/people.yml index cee22dc3..528c47c5 100644 --- a/about/people.yml +++ b/about/people.yml @@ -8,7 +8,8 @@ data: title: Assistant Director of Computational Biology and Data Science github_username: ashokrags brown_directory_uuid: 60802d0b-8f18-499a-a1f3-5f9b24c390e4 - bio: Ashok is a computational biologist/data scientist with a varied background + bio: + Ashok is a computational biologist/data scientist with a varied background in genetics, genomics, statistics and computation. He has a PhD in Fisheries and Wildlife from MSU and has worked in areas of quantitative genetics, biomedical genetics, ecology and bioinformatics. Above all he has a keen interest in data analysis, @@ -23,7 +24,8 @@ data: title: Associate Director of Research Software Engineering and Data Science github_username: mirestrepo brown_directory_uuid: cb8b0a49-ef4b-66e7-5ccc-6689493e8ace - bio: Isabel grew up in Colombia and received her Ph.D from Brown in 2013 in Electrical + bio: + Isabel grew up in Colombia and received her Ph.D from Brown in 2013 in Electrical Engineering with a focus in Computer Vision. She enjoys machine learning, reproducible science, reverse engineering, playing squash, the sea, and dancing with her wild children. @@ -42,7 +44,8 @@ data: title: Assistant CIO Research Software Engineering and Data Science github_username: paulstey brown_directory_uuid: 0525f19f-d156-4c47-a2e1-8b4e904a2e84 - bio: Paul is a data scientist interested in using data and machine learning to solve + bio: + Paul is a data scientist interested in using data and machine learning to solve challenging problems. Before coming to Brown he was a statistician at the EPA. He has a PhD in Developmental Psychology. image: stey_main.jpg @@ -89,39 +92,39 @@ data: title: Senior Research Systems Administrator github_username: n8wood-brown brown_directory_uuid: 857b928c-2ce1-fb2a-cde7-1a4ff21fa2d3 - bio: "" + bio: "" image: nate_main.jpg - - name: Jarrod Winsor + - name: Jarrod Winsor type: Full Time team: CCV Operations title: Lead Research Systems Administrator - github_username: - brown_directory_uuid: 1b81a653-ade8-4850-97ea-682644b714d0 - bio: '' + github_username: + brown_directory_uuid: 1b81a653-ade8-4850-97ea-682644b714d0 + bio: "" image: jarrod_main.png - - name: Timothy Poli + - name: Timothy Poli type: Full Time team: CCV Operations title: Senior Research Systems Administrator - github_username: "" - brown_directory_uuid: 6ad65e2c-ba76-358a-dd69-9ab5508b3d8b - bio: '' + github_username: "" + brown_directory_uuid: 6ad65e2c-ba76-358a-dd69-9ab5508b3d8b + bio: "" image: timothy_main.png - - name: Michael Antonelli + - name: Michael Antonelli type: Full Time team: CCV Operations title: Research Systems Administrator github_username: "" - brown_directory_uuid: ddb582f2-d4fd-4d8a-adf1-4c4e37902ddd - bio: '' + brown_directory_uuid: ddb582f2-d4fd-4d8a-adf1-4c4e37902ddd + bio: "" image: michael_main.png - name: Paul Koussa type: Full Time - team: Leadership - title: Associate Director of Research Systems - github_username: "" - brown_directory_uuid: c67a6c91-53f3-3502-8fcb-006770f4d76e - bio: '' + team: Leadership + title: Associate Director of Research Systems + github_username: "" + brown_directory_uuid: c67a6c91-53f3-3502-8fcb-006770f4d76e + bio: "" image: koussa_main.png - name: Paulo S Baptista type: Full Time @@ -166,20 +169,21 @@ data: title: Lead Genomics Data Scientist github_username: aguang brown_directory_uuid: b3f2991e-b618-190f-881f-25fc21f82d02 - bio: August obtained their PhD from Brown in 2017 in Applied Mathematics and Computational + bio: + August obtained their PhD from Brown in 2017 in Applied Mathematics and Computational Biology. Outside of work they organize against criminalization and the police state. Both their research practices and organizing work are guided by the belief that crisis and uncertainty are a gift and that we must be involved in shaping how change happens. image: august_main.jpg - - name: Paul Cao + - name: Paul Cao type: Full Time team: Advanced Research Computing - title: Genomics Data Scientist + title: Genomics Data Scientist subteam: Computational Biology Core - github_username: paulcao-brown - brown_directory_uuid: ec11f732-efa0-4fa8-9cd2-030b45cb2929 - bio: '' + github_username: paulcao-brown + brown_directory_uuid: ec11f732-efa0-4fa8-9cd2-030b45cb2929 + bio: "" image: cao_main.png - name: Jordan Lawson type: Full Time @@ -188,7 +192,8 @@ data: subteam: Computational Biology Core github_username: j-stat brown_directory_uuid: 44dc2e77-eaaf-4884-ace2-e3fbb57e58ea - bio: Jordan is a Research Software Engineer in the Computational Biology Core at CCV. + bio: + Jordan is a Research Software Engineer in the Computational Biology Core at CCV. He did his Ph.D. in Applied Statistics at Boston College, with an emphasis on causal inference. He loves learning about natural and formal languages, superhero movies, boxing, and basketball. image: jordan_main.jpg @@ -199,7 +204,8 @@ data: subteam: Computational Biology Core github_username: jrwallace brown_directory_uuid: 1eb864be-02d2-4880-a43f-62076e2d7366 - bio: Joselynn is a genomics data scientist. Before coming to Brown, she got her + bio: + Joselynn is a genomics data scientist. Before coming to Brown, she got her PhD from the University of Rhode Island. Her background is primarily in studying microbes. image: joselynn_main.jpg @@ -219,7 +225,8 @@ data: subteam: Graphics, Software, and Data Core github_username: broarr brown_directory_uuid: 0adf6ab4-8d56-410a-8ac6-4b4ca136a534 - bio: Bradford is a software engineer with a broad range of experience including + bio: + Bradford is a software engineer with a broad range of experience including firmware engineering, devops, full-stack programming, and more. His professional interests include systems programming, infrastructure-as-code, and automation. Before Brown, Bradford worked for various startups in the Silicon Valley. @@ -231,9 +238,10 @@ data: title: Senior Graphics/Visualization Software Engineer github_username: kmilo9999 brown_directory_uuid: 448fac67-1dea-42ef-8205-9305ac9b79a6 - bio: Camilo is a software engineer who specializes in realtime simulation engines, 3D modeling and rendering, animations and VR technologies. - He loves learning programing languages and enjoys developing applications in multiple frameworks. Outside of work, he passes his time developing his own video games, - playing soccer and volunteering for multiple events accros Rhode Island. + bio: + Camilo is a software engineer who specializes in realtime simulation engines, 3D modeling and rendering, animations and VR technologies. + He loves learning programing languages and enjoys developing applications in multiple frameworks. Outside of work, he passes his time developing his own video games, + playing soccer and volunteering for multiple events accros Rhode Island. image: camilo_main.jpg - name: Ellen Duong type: Full Time @@ -247,12 +255,12 @@ data: - name: Paul Xu type: Full Time team: Advanced Research Computing - subteam: Data & Visualization - title: Data Scientist - github_username: digicosmos86 - brown_directory_uuid: 58724daa-f619-4f86-88f0-30635dc5178b - bio: '' - image: xu_main.png + subteam: Graphics, Software, and Data Core + title: Lead Data Scientist + github_username: digicosmos86 + brown_directory_uuid: 58724daa-f619-4f86-88f0-30635dc5178b + bio: Paul's diverse interests as a Lead Data Scientist include building generative AI applications in computer vision and natural language processing, engineering data science software, and maintaining cloud compute infrastructure for data science. Paul received his Sc.M. in Computer Science with focus on AI/ML from Brown University and Ph.D. in Curriculum and Instruction with focus on CS Education from Boston College. In his own time, Paul likes to geek out on computer and natural languages. He is also an avid photographer with his work published in an international magazine. + image: px_main.jpg - name: Joshua Lu type: Full Time team: Advanced Research Computing @@ -282,44 +290,10 @@ data: title: Senior Research Software Engineer github_username: phall-brown brown_directory_uuid: da1c3aed-d801-56a8-0536-0701f6c5c830 - bio: Paul has a background in computational fluid dynamics and geophysics. He received + bio: + Paul has a background in computational fluid dynamics and geophysics. He received his Ph.D. in Oceanography from the URI. image: hall_main.jpg - - name: Hadley Dalton - type: CCV Interns - team: Advanced Research Computing - subteam: Graphics, Software, and Data Core - title: Mobile App Development Intern - github_username: hadleydalt - brown_directory_uuid: 791e5317-8b12-4fca-8612-7d2f8521f1b6 - image: hadley_main.jpg - - name: Jiatao Yuan - type: CCV Interns - team: Advanced Research Computing - subteam: Computational Biology Core - title: Data Science Intern - github_username: Francis958 - brown_directory_uuid: 1fb9b19e-3269-459d-8e2e-92f0cae6ce1b - bio: Jiatao is a graduate student studying data science. - image: jiatao_main.jpg - - name: Zhuoran Han - type: CCV Interns - team: Advanced Research Computing - subteam: Computational Biology Core - title: Data Science Intern - github_username: zhuoran-han - brown_directory_uuid: a813faaa-55d3-4a15-8960-6cb5e71b9425 - bio: Zhuoran is a graduate student studying data science. - image: zhuoran_main.jpg - - name: Yuan Pu - type: CCV Interns - team: Advanced Research Computing - subteam: Computational Biology Core - title: Data Science Intern - github_username: yuan-pu - brown_directory_uuid: f9b90aaf-a7f2-4ce9-b51e-b9b5b484c4dd - bio: Yuan is an undergrad student studying computational biology. - image: yuan_main.jpg - name: Timothy Divoll type: Full Time team: Advanced Research Computing @@ -361,7 +335,8 @@ data: title: Senior Data Scientist github_username: gtdang brown_directory_uuid: d91b1633-1534-41ab-b38d-78a23e99d843 - bio: George is a data scientist with a background in biology and environmental science. + bio: + George is a data scientist with a background in biology and environmental science. Prior to joining CCV, worked in environmental consulting specializing in water quality and geospatial analytics. image: dang_main.jpg - name: Ford McDonald @@ -416,7 +391,7 @@ data: title: Research Software Engineer github_username: galenwinsor brown_directory_uuid: 77e8343c-498a-4bed-bedf-ed0a59d0fa3c - bio: Galen earned his Bachelor's degree from Brown in 2022 in Computer Science and Environmental Studies. His professional interests include web software architecture, UI/UX, and data visualization. Outside of work, he loves playing music, playing tennis and squash, and hiking. + bio: Galen earned his Bachelor's degree from Brown in 2022 in Computer Science and Environmental Studies. His professional interests include web software architecture, UI/UX, and data visualization. Outside of work, he loves playing music, playing tennis and squash, and hiking. image: galen_main.jpg - name: Rain Fan type: Full Time @@ -433,6 +408,27 @@ data: subteam: High-Performance Computing title: Research Software Engineer github_username: thehalfspace - brown_directory_uuid: cb6e1744-8240-430c-89b5-0bd1cf78d0a3 + brown_directory_uuid: cb6e1744-8240-430c-89b5-0bd1cf78d0a3 bio: Prithvi is a research software engineer in the High Performance Computing division at CCV. He did his PhD in computational seismology from UMich, and later spent a year modeling extreme events and natural catastrophes at Karen Clark and Company. His professional interests include high performance computing, statistical modeling, software development, and earthquake source processes. Outside of work, you can find him hiking in the woods or playing music. image: prithvi_main.jpg + - name: Sam Bessey + type: Full Time + team: Advanced Research Computing + subteam: Graphics, Software, and Data Core + title: Research Software Engineer + github_username: s-bessey + brown_directory_uuid: 9788c813-f3f4-4b64-b8ac-2221a92886c2 + bio: Sam has a background in environmental science and mathematical modeling + for epidemiology. Before coming to CCV, Sam worked at Brown's People, Place, + and Health Collective in the school of public health, where they developed + software to study the spread of HIV through sexual and needle-sharing networks. + image: sam_main.jpeg + - name: Gurpartap Singh + type: Part Time + team: Advanced Research Computing + subteam: Graphics, Software, and Data Core + title: Web Developer Intern + github_username: gpsss246 + brown_directory_uuid: bed03629-ed04-429d-af97-64fa7415d182 + bio: Gurpartap Singh studies Computer Science and Political Science at Brown University as a member of the Class of 2026. You can find Gurpartap listening to music or learning how to create it (ask me about the Alan Turing Album). I make a good cup of Masala Cha so feel free to ask for a cup! + image: gurpartap_main.png diff --git a/about/teams.md b/about/teams.md index 928f7f57..357e952a 100644 --- a/about/teams.md +++ b/about/teams.md @@ -8,7 +8,7 @@ Leadership: [Ashok Ragavendran](https://directory.brown.edu/uuid/60802d0b-8f18-4 >The COBRE-CBHD Computational Biology Core (CBC) integrates across multiple research focused Centers supporting data-intensive research using high-throughput DNA/RNA sequencing datasets. CBC provides help for experimental design and data processing pipelines for high-throughput datasets generated in individual projects, particularly for DNA/RNA sequencing data. ### Graphics, Software, and Data Core -Leadership: [Isabel Restrepo](https://directory.brown.edu/uuid/cb8b0a49-ef4b-66e7-5ccc-6689493e8ace), [Bradford Roarr](https://directory.brown.edu/uuid/0adf6ab4-8d56-410a-8ac6-4b4ca136a534), [John G Holland](https://directory.brown.edu/uuid/c58cefc3-dc27-408f-ae62-fa098803341d), [Ellen Duong](https://directory.brown.edu/uuid/1dee85fb-a5e4-474d-9f5e-ebef7d9d5ab7) +Leadership: [Isabel Restrepo](https://directory.brown.edu/uuid/cb8b0a49-ef4b-66e7-5ccc-6689493e8ace), [Bradford Roarr](https://directory.brown.edu/uuid/0adf6ab4-8d56-410a-8ac6-4b4ca136a534), [John G Holland](https://directory.brown.edu/uuid/c58cefc3-dc27-408f-ae62-fa098803341d), [Ellen Duong](https://directory.brown.edu/uuid/1dee85fb-a5e4-474d-9f5e-ebef7d9d5ab7), [Paul Xu](https://directory.brown.edu/uuid/58724daa-f619-4f86-88f0-30635dc5178b) >We partner with Brown’s academic researchers and administrators to bring modern software engineering, visualization, and data science practices to their work. We are software engineers and data scientists with expertise in a broad range of fields, including: visualization techniques, computer vision, computer graphics, web technologies, data management, and data science. We can program in almost any language, and enjoy learning new technologies, documenting, striving for best practices, and especially brewing coffee. Additionally, our group is responsible for supporting and developing Virtual Reality applications, we maintain the CAVE and collaborate with the [Multimedia Labs at Brown](https://sites.google.com/brown.edu/multimedia-labs-new-site/home) to bring VR to the community. ### High-Performance Computing diff --git a/blog/2023-year-in-review.md b/blog/2023-year-in-review.md index 74e2eefb..5f463ae5 100644 --- a/blog/2023-year-in-review.md +++ b/blog/2023-year-in-review.md @@ -97,7 +97,7 @@ In 2023, we supported 60 projects and collaborations throughout Brown. The follo - We launched our first mobile applications: [**SOMA**](https://somatheapp.com/), an app focused on pain management, and [**MAPPS**](https://www.mappsproject.com/), an app designed to explore social interactions and their influence on disease transmission patterns. - [**Honeycomb**](https://brown-ccv.github.io/honeycomb-docs/) released versions 3.1 and 3.2 which better align the repository with [jsPsych](https://www.jspsych.org/7.3/) best practices. - [**Hierarchical Sequential Sampling Modeling (HSSM)**](https://lnccbrown.github.io/HSSM/) β€”a contemporary Python toolbox integrating cutting-edge likelihood approximation methods within the Python Bayesian ecosystemβ€”was released on the Python Package Index (PyPI) in late June. -- We developed and released two packages in Julia, a rising programming language in the data science space. [IceFlowTracker.jl](https://github.com/WilhelmusLab/IceFloeTracker.jl) was created in collaboration with the [Wilhelmus Lab](https://wilhelmuslab.me/) for tracking ice floes using moderate resolution imaging spectroradiometer (MODIS) data. [Chamber.jl](https://github.com/brown-ccv/Chamber.jl/tree/master) is a Julia package for simulating the eruption of a volcano using a model for the frequency of eruptions of upper crustal magma chambers based on Degruyter and Huber (2014). +- We developed and released two packages in Julia, a rising programming language in the data science space. [IceFloeTracker.jl](https://github.com/WilhelmusLab/IceFloeTracker.jl) was created in collaboration with the [Wilhelmus Lab](https://wilhelmuslab.me/) for tracking ice floes using moderate resolution imaging spectroradiometer (MODIS) data. [Chamber.jl](https://github.com/brown-ccv/Chamber.jl/tree/master) is a Julia package for simulating the eruption of a volcano using a model for the frequency of eruptions of upper crustal magma chambers based on Degruyter and Huber (2014). - In collaboration with [the Behavior and Neurodata Core (BNC)](https://bnc.brown.edu), we developed and released a versatile utility script to streamline data exports to Oscar, led two XNAT Workshops for the neuroimaging community, and contributed to the MNE-BIDS open-source project. Furthermore, we enhanced the XNAT-to-BIDS exporting pipeline to accommodate EEG and Physiological data, highlighting our collective commitment to optimizing neuroimaging workflows and fostering open-source collaboration. - We continued to support the local and state governments with advertising and getting collaborators for their public policy projects: [North Carolina Project Portal](https://projectportal.nc.gov), [Research Partnerships Portal of the City of San Antonio in Texas](https://researchpartnerships.sanantonio.gov) - We helped the [Autonomous Empirical Research Group](https://www.brown.edu/carney/research-project/autonomous-empirical-research-0), whose mission is to use cutting-edge machine learning techniques to automate the process of making and reproducing scientific discoveries, to reorganize their Python package and their processes to easily accept contributions from potentially hundreds of researchers from around the world. diff --git a/blog/writing-reusable-julia-code.md b/blog/writing-reusable-julia-code.md new file mode 100644 index 00000000..66fd3a5e --- /dev/null +++ b/blog/writing-reusable-julia-code.md @@ -0,0 +1,248 @@ +--- +title: Writing Reusable Code in Julia +author: Carlos Paniagua +people: + - Carlos Paniagua +date: 2024-03-25 +slug: writing-reusable-julia-code +team: GSDC (Graphics, Software and Data Core) +description: Best practices on writing reusable software in the Julia ecosystem. +tags: + - Julia + - reusability + +--- + +# Writing Reusable Code in Julia - Carlos Paniagua + +### Use case + +- You are working on a research project that requires computation. πŸ’»πŸ‘©β€πŸ’» + +- You write your code; you test it (πŸ‘) and it just works! πŸš€ + +- You decide your code is general enough that it could be useful for solving related problems. πŸ€“ + +- You add some documentation and host your code in some public repository and tell other people about it. 🎀 + +- Other people realize your code could be useful to solve their problems! 😎 + +- They take your code, try to use it and... it doesn't work 😱 + +- If they're lucky, the code "might work" but the results are not the expected ones 😱😱 + +This is a very common problem in the scientific research community. Here we present an introduction about best practices to building reusable code in the Julia ecosystem. + +## Our definition of reusable code + +[Reusable code](https://en.wikipedia.org/wiki/Reusability) is code that is easy to distribute and use (correctly and consistently). + +
+ Note: If you'd like to follow along with the rest of the discussion, you'll need Git, a text editor or IDE (VS Code recommended with the Julia extension) and Julia (naturally). +
+ +To write reusable Julia code we need to understand how to *manage dependencies* in Julia. Dependency management facilitates code maintainability, promotes collaboration by simplifying environment setup for other developers, and mitigates security risks by allowing for timely updates and vulnerability monitoring. + +
+ Note: Read more about the advantages of dependency management here. +
+ + +## Managing Dependencies + +A dependency (dep) is code other people (even ourselves) wrote and we are using in a project. + +Let's add some deps to our base Julia installation using Julia's Package Manager. + +1. Add a few deps with the `add` command + + ```bash + $ julia + julia> # get to pkg mode with `]` + (@v1.9) pkg> add Example StaticArrays # add the `Example` and `StaticArrays` packages + ``` + +2. Look at the deps in your base Julia with the `status` or `st` command + + ```bash + (@v1.9) pkg> status + Status `C:\Users\MyUserName\.julia\environments\v1.9\Project.toml` + [7876af07] Example v0.5.3 + [90137ffa] StaticArrays v1.6.3 + ``` + +3. Remove a dep with `rm` + + ```bash + (@v1.9) pkg> rm StaticArrays + ``` + +4. Seeing is believing: look at your deps again + + ```bash + (@v1.9) pkg> st # and be lazy + Status `C:\Users\MyUserName\.julia\environments\v1.9\Project.toml` + [7876af07] Example v0.5.3 + ``` + +## Make a package! + +A package is code with structure that leverages available tooling for efficient distribution and use. We could add this structure to our code manually but there is tooling for this already! πŸ› οΈ + +Some options: + +- Use `Pkg.generate` for a bare-bones package structure +- Use [PkgTemplates.jl](https://github.com/JuliaCI/PkgTemplates.jl) for more features (Readme, License, Documentation, test suite, CI and more) +- Clone some base repo and customize to your needs ([Example.jl](https://github.com/JuliaLang/Example.jl), [MyAwesomePackage.jl](https://github.com/sylvaticus/MyAwesomePackage.jl)) + +For the rest of the discussion we'll use `generate` from the Julia package manager. + +1. Navigate to where you want to your project/package. + +2. From Julia's package manager issue `generate MyPackage` + + ```bash + (@v1.9) pkg> generate MyPackage + ``` + + You will see a new folder `MyPackage` was created. + + ```shell + $ cd MyPackage + $ tree + . + β”œβ”€β”€ Project.toml + └── src + └── MyPackage.jl + ``` + +3. Let's add some deps and code to our package by editing `src/MyPackage.jl` + + ```julia + module MyPackage + + using Example: domath # added this dep + + fact() = println("FYI, 2 + 5 = $(domath(2))") # added this new feature + + export fact + + end + ``` + +4. Let's test our new features! 🀞 + + ```bash + (@v1.9) pkg> activate . + Activating project at `C:\Users\MyUserName\Documents\Reusable-code-Julia\MyPackage` + julia> using MyPackage + [ Info: Precompiling MyPackage [934d1629-71ee-47e4-906a-ddb3ea0dd61f] + ERROR: LoadError: ArgumentError: Package MyPackage does not have Example in its dependencies: + - You may have a partially installed environment. Try `Pkg.instantiate()` + to ensure all packages in the environment are installed. + - Or, if you have MyPackage checked out for development and have + added Example as a dependency but haven't updated your primary + environment's manifest file, try `Pkg.resolve()`. + - Otherwise you may need to report an issue with MyPackage + [More error feedback here] + ``` + + Although we added the `Example` package to our base Julia environment, we are under a new independent environment `MyPackage` that does not know about `Example`. + + ```bash + (MyPackage) pkg> st + Project MyPackage v0.1.0 + Status `C:\Users\MyUserName\Documents\DSCoV-Reusable-Julia\MyPackage\Project.toml` (empty project) + + (MyPackage) pkg> + ``` + + In the error message above Julia is suggesting that we have an undocumented/uninstalled/broken dependency. Here we just need to add it to our project. Let's do it! + ```bash + (MyPackage) pkg> add Example + Resolving package versions... + Updating `C:\Users\MyUserName\Documents\Reusable-code-Julia\MyPackage\Project.toml` + [7876af07] + Example v0.5.3 + Updating `C:\Users\MyUserName\Documents\Reusable-code-Julia\MyPackage\Manifest.toml` + [7876af07] + Example v0.5.3 + Precompiling project... + 1 dependency successfully precompiled in 1 seconds. 1 already precompiled. + ``` + ```bash + (MyPackage) pkg> st # again seeing is believing + Project MyPackage v0.1.0 + Status `C:\Users\MyUserName\Documents\Reusable-code-Julia\MyPackage\Project.toml` + [7876af07] Example v0.5.3 + ``` + + Now that the `Example` dep is documented and compiled let's try testing our package again! + ```bash + julia> using MyPackage + + julia> fact() + FYI, 2 + 5 = 7 + + julia> + ``` +Success! Our feature works and we are ready (sort of) to share our package with the world! + +### Recommended Configuration + +Before sharing your code with the world, especially larger code bases, it's a good idea to have our code conform to a standard style. There is tooling for this available and there are many associated benefits: + +1. **Consistency**: It ensures that your code has a consistent style, which makes it easier to read and understand. + +2. **Saves Time**: You don't have to spend time manually formatting your code or arguing about coding styles in code reviews (when working with other people). + +3. **Prevents Bugs**: Some formatters can catch and fix minor errors, such as missing semicolons, unused variables, etc. + +4. **Integration with IDEs**: Most modern IDEs support automatic formatting on save, which makes it effortless to keep your code well-formatted. + +5. **Focus on Logic**: With automatic formatting, you can focus on the logic of your code, rather than its appearance. + + +Here is a suggested configuration for VS Code with the Julia extension. +1. Add a `.JuliaFormatter.toml` file with the following + ```toml + style = "blue" + ``` + Read about the *blue style* [here](https://blue.readthedocs.io/en/latest/). + +2. Add a `.gitignore` file + ``` + .JuliaFormatter.toml + ``` +The `.gitignore` file will prevent the configuration file just created from getting *pushed* to our remote repository. Here we have added the `.JuliaFormatter.toml` configuration file we created earlier. + + +## Publish your package! +Use tooling within VS Code (Source Control panel) for the following or Git to place your project/package in a remote repository. + +Make the project a git repository, commit changes, and push your project to a remote repo to share with the world! + ```bash + $ git init + $ git add . + $ git commit -m 'My commit message' + $ git remote add origin https://github.com/MyUserName/MyRepo.git + $ git push origin main + ``` + +Now others can use your package! +```bash +(@v1.9) pkg> add https://github.com/MyUserName/MyPackage.git + Cloning git-repo `https://github.com/MyUserName/MyPackage.git` + Updating git-repo `https://github.com/MyUserName/MyPackage.git` + Resolving package versions... + Updating `C:\Users\MyUserName\.julia\environments\v1.9\Project.toml` + [e06b4af7] + MyPackage v0.1.0 `https://github.com/MyUserName/MyPackage.git#main` + Updating `C:\Users\MyUserName\.julia\environments\v1.9\Manifest.toml` + [e06b4af7] + MyPackage v0.1.0 `https://github.com/MyUserName/MyPackage.git#main` +Precompiling project... + 1 dependency successfully precompiled in 5 seconds. 231 already precompiled. 1 skipped during auto due to previous errors. + +julia> using MyPackage + +julia> fact() +FYI, 2 + 5 = 7 +``` +By following these simple practices, our code becomes more reliable, user-friendly, and easier to maintain, ensuring smoother workflows for other members of the scientific community. πŸŽ‰ diff --git a/images/people/cao_hover.png b/images/people/cao_hover.png index c122c937..9187f2b5 100644 Binary files a/images/people/cao_hover.png and b/images/people/cao_hover.png differ diff --git a/images/people/cao_main.png b/images/people/cao_main.png index 428f80f5..9187f2b5 100644 Binary files a/images/people/cao_main.png and b/images/people/cao_main.png differ diff --git a/images/people/galen_main.jpg b/images/people/galen_main.jpg index bc5ae90a..db346c7a 100644 Binary files a/images/people/galen_main.jpg and b/images/people/galen_main.jpg differ diff --git a/images/people/gurpartap_hover.png b/images/people/gurpartap_hover.png new file mode 100644 index 00000000..5bd1eb65 Binary files /dev/null and b/images/people/gurpartap_hover.png differ diff --git a/images/people/gurpartap_main.png b/images/people/gurpartap_main.png new file mode 100644 index 00000000..41779c8f Binary files /dev/null and b/images/people/gurpartap_main.png differ diff --git a/images/people/hadley_hover.jpg b/images/people/hadley_hover.jpg deleted file mode 100644 index bdedbe20..00000000 Binary files a/images/people/hadley_hover.jpg and /dev/null differ diff --git a/images/people/hadley_main.jpg b/images/people/hadley_main.jpg deleted file mode 100644 index 2fc58efe..00000000 Binary files a/images/people/hadley_main.jpg and /dev/null differ diff --git a/images/people/jarrod_hover.png b/images/people/jarrod_hover.png index 0aac7ae6..9187f2b5 100644 Binary files a/images/people/jarrod_hover.png and b/images/people/jarrod_hover.png differ diff --git a/images/people/jarrod_main.png b/images/people/jarrod_main.png index 7afa5d05..9187f2b5 100644 Binary files a/images/people/jarrod_main.png and b/images/people/jarrod_main.png differ diff --git a/images/people/jiatao_hover.jpg b/images/people/jiatao_hover.jpg deleted file mode 100644 index feb253fb..00000000 Binary files a/images/people/jiatao_hover.jpg and /dev/null differ diff --git a/images/people/jiatao_main.jpg b/images/people/jiatao_main.jpg deleted file mode 100644 index 56591ed4..00000000 Binary files a/images/people/jiatao_main.jpg and /dev/null differ diff --git a/images/people/koussa_hover.png b/images/people/koussa_hover.png index b4ffd076..9187f2b5 100644 Binary files a/images/people/koussa_hover.png and b/images/people/koussa_hover.png differ diff --git a/images/people/koussa_main.png b/images/people/koussa_main.png index 004797be..9187f2b5 100644 Binary files a/images/people/koussa_main.png and b/images/people/koussa_main.png differ diff --git a/images/people/michael_hover.png b/images/people/michael_hover.png index da5d0d54..9187f2b5 100644 Binary files a/images/people/michael_hover.png and b/images/people/michael_hover.png differ diff --git a/images/people/michael_main.png b/images/people/michael_main.png index 52193049..9187f2b5 100644 Binary files a/images/people/michael_main.png and b/images/people/michael_main.png differ diff --git a/images/people/px_hover.jpg b/images/people/px_hover.jpg new file mode 100644 index 00000000..17dd31ef Binary files /dev/null and b/images/people/px_hover.jpg differ diff --git a/images/people/px_main.jpg b/images/people/px_main.jpg new file mode 100644 index 00000000..53448a74 Binary files /dev/null and b/images/people/px_main.jpg differ diff --git a/images/people/sam_hover.jpeg b/images/people/sam_hover.jpeg new file mode 100644 index 00000000..ed59f30e Binary files /dev/null and b/images/people/sam_hover.jpeg differ diff --git a/images/people/sam_main.jpeg b/images/people/sam_main.jpeg new file mode 100644 index 00000000..8765a55e Binary files /dev/null and b/images/people/sam_main.jpeg differ diff --git a/images/people/timothy_hover.png b/images/people/timothy_hover.png index 69e4b9df..9187f2b5 100644 Binary files a/images/people/timothy_hover.png and b/images/people/timothy_hover.png differ diff --git a/images/people/timothy_main.png b/images/people/timothy_main.png index 28f38a6e..9187f2b5 100644 Binary files a/images/people/timothy_main.png and b/images/people/timothy_main.png differ diff --git a/images/people/xu_hover.png b/images/people/xu_hover.png deleted file mode 100644 index efbae592..00000000 Binary files a/images/people/xu_hover.png and /dev/null differ diff --git a/images/people/xu_main.png b/images/people/xu_main.png deleted file mode 100644 index 5de9dd2d..00000000 Binary files a/images/people/xu_main.png and /dev/null differ diff --git a/images/people/yuan_hover.jpg b/images/people/yuan_hover.jpg deleted file mode 100644 index 8fae8bc8..00000000 Binary files a/images/people/yuan_hover.jpg and /dev/null differ diff --git a/images/people/yuan_main.jpg b/images/people/yuan_main.jpg deleted file mode 100644 index 06997641..00000000 Binary files a/images/people/yuan_main.jpg and /dev/null differ diff --git a/images/people/zhuoran_hover.jpg b/images/people/zhuoran_hover.jpg deleted file mode 100644 index 4a47e656..00000000 Binary files a/images/people/zhuoran_hover.jpg and /dev/null differ diff --git a/images/people/zhuoran_main.jpg b/images/people/zhuoran_main.jpg deleted file mode 100644 index 694021b4..00000000 Binary files a/images/people/zhuoran_main.jpg and /dev/null differ diff --git a/meta/category/services/file-storage-and-transfer.yml b/meta/category/services/file-storage-and-transfer.yml index ae57adaf..bb03a470 100644 --- a/meta/category/services/file-storage-and-transfer.yml +++ b/meta/category/services/file-storage-and-transfer.yml @@ -1,10 +1,7 @@ -title: File storage and transfer +title: Campus File Storage and Transfer description: | Several services at Brown allow you to share and store files. This guide will let you compare the options and decide which one(s) are right for you. icon: database links: - text: check our storage options target: /services/file-storage-and-transfer -call-for-action: - text: Compare Storage Options - href: /storage diff --git a/our-work/software/rseqan.yml b/our-work/software/rseqan.yml new file mode 100644 index 00000000..51473706 --- /dev/null +++ b/our-work/software/rseqan.yml @@ -0,0 +1,21 @@ +# Schema for all yml files in our-work/software and our-work/workshops-and-talks +title: RSeqAn +description: Wrappers for the SeqAn library for use in R with Rcpp. +groups: +languages: + - c++ + - R +tags: + - computational-biology +people: + - name: August Guang + github_user: aguang +links: + - category: website + url: https://www.bioconductor.org/packages/release/bioc/html/RSeqAn.html + - category: publication + url: https://joss.theoj.org/papers/10.21105/joss.01160 + - category: code + url: https://github.com/compbiocore/RSeqAn + - category: docs + url: https://compbiocore.github.io/RSeqAn/ \ No newline at end of file diff --git a/our-work/workshops-and-talks/bootcamp-2024.yml b/our-work/workshops-and-talks/bootcamp-2024.yml new file mode 100644 index 00000000..aee0093a --- /dev/null +++ b/our-work/workshops-and-talks/bootcamp-2024.yml @@ -0,0 +1,56 @@ +title: CCV Bootcamp 2024 +description: A series of interactive online tutorials designed to introduce members of the Brown community to some of the research computing resources available to them. The tutorials will provide participants with the practical knowledge necessary to make effective use of Oscar, Brown's research computing cluster, in their own research, while introducing users to the range of research computing resources available at Brown. +slug: bootcamp_2024 +languages: + - unix-cli + - bash + - python + - julia + - R + - matlab + - sql +tags: + - oscar + - hpc + - visualization +people: + - name: Paul Hall + github_user: phall-brown + - name: Rain Fan + github_user: rainxfan + - name: Prithvi Thakur + github_user: thehalfspace + - name: Ashok Ragavendran + github_user: ashokrags + - name: Prasad Bandarkar + github_user: prasadbandarkar + - name: John Gerrard Holland + github_user: hollandjg + - name: Carlos Paniagua + github_user: cpaniaguam + - name: Ford McDonald + github_user: fordmcdonald + - name: Robert Gemma, Jr. + github_user: robertgemmajr + - name: Paul Cao + github_user: paulcao-brown + - name: Paul Stey + github_user: paulstey + - name: Ellen Duong + github_user: eldu + - name: George Dang + github_user: gtdang + - name: Eric Salomaki + github_user: ericsalomaki + - name: August Guang + github_user: aguang + - name: Jordan Lawson + github_user: j-stat + - name: Joselynn Wallace + github_user: jrwallace +groups: + - bootcamp +links: + - category: website + url: https://docs.ccv.brown.edu/bootcamp-2024 + diff --git a/our-work/workshops-and-talks/gcp_intro.yml b/our-work/workshops-and-talks/gcp_intro.yml index 0f0c8af8..6554ff5f 100644 --- a/our-work/workshops-and-talks/gcp_intro.yml +++ b/our-work/workshops-and-talks/gcp_intro.yml @@ -17,6 +17,6 @@ links: - category: code url: https://github.com/dscov-tutorials/gcp-intro - category: slides - url: http://bit.ly/dscov-gcp + url: https://brownccv.notion.site/Introduction-to-Google-Cloud-023dc53073504132b76bb487cebfe86a - category: video url: https://brown.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=aa0aa1a2-acee-4878-b366-ab9f003367bd \ No newline at end of file diff --git a/rates.md b/rates.md index 456e549c..7167740f 100644 --- a/rates.md +++ b/rates.md @@ -39,8 +39,8 @@ lead: We provide services with limited resources at no cost to all Exploratory

batch
gpu
bigmem -
32
12
32
-
246
192
752 +
64
12
32
+
492
192
752
None
2 Std.
None 48 $0 diff --git a/schemas/collaborations.yml b/schemas/collaborations.yml index a63a63d3..c4520b53 100644 --- a/schemas/collaborations.yml +++ b/schemas/collaborations.yml @@ -1,13 +1,21 @@ # Schema for all yml files in our-work/collaborations title: str() id: "enum( + 'acadia', 'bnc', + 'beura-lab', 'borton-lab', 'braingate', 'brainerd-lab', + 'brodsky-lab', + 'covid19', + 'degraffenried-lab', 'frank-lab', 'frickel', + 'fussell-lab', 'hurt-lab', + 'koren-lab', + 'lee-lab', 'nassar-lab', 'oh-lab', 'peac-lab', @@ -27,10 +35,13 @@ id: "enum( 'mchugh-lab', 'rothman-lab', 'spade-lab', + 'trikalinos-lab', 'aer-group', + 'ventutulo', 'wilhelmus-lab', + 'wong-lab', 'the-policy-lab', - 'acadia', + 'yajima-lab', 'division-biology-medicine' )" description: str() @@ -89,5 +100,5 @@ person: # These are links associated with the software link: # Must match one of the values in the regex - category: "enum('website', 'github', 'docs')" + category: "enum('website', 'github', 'docs', 'publications')" url: str() diff --git a/schemas/software.yml b/schemas/software.yml index 2a95f04d..fc409edf 100644 --- a/schemas/software.yml +++ b/schemas/software.yml @@ -26,6 +26,7 @@ language: "enum( tag: "enum( 'behavioral-tasks', 'cognitive-science', + 'computational-biology', 'computational-psychiatry', 'machine-learning', 'database', diff --git a/services/file-storage-and-transfer/brown-storage.md b/services/file-storage-and-transfer/brown-storage.md index e789f30a..59f48b98 100644 --- a/services/file-storage-and-transfer/brown-storage.md +++ b/services/file-storage-and-transfer/brown-storage.md @@ -3,6 +3,6 @@ title: Brown Storage Options icon: database --- -Several services at Brown allow you to share and store files. Explore the links below to learn more about the storage options that Brown provides and explore our comparison tool. +Several services at Brown allow you to share and store files. These different storage services each have their own relative benefits and features. You can explore the differences with our comparison tool using the link below. -Compare Storage Options Read Detailed Descriptions \ No newline at end of file +Compare Storage Options diff --git a/storage-tool.yml b/storage-tool.yml index 01b1701e..4ae7ff10 100644 --- a/storage-tool.yml +++ b/storage-tool.yml @@ -1,4 +1,4 @@ -title: File storage and transfer +title: Campus file storage and transfer description: | Several services at Brown allow you to share and store files. This guide will let you compare the options and decide which one(s) are right for you. icon: database @@ -47,8 +47,6 @@ services: class: True - name: canvas_integration class: False - - name: secondary_site_backup - class: False - name: brown_network_required class: False - name: access_from_oscar @@ -101,8 +99,6 @@ services: class: False - name: canvas_integration class: False - - name: secondary_site_backup - class: False - name: brown_network_required class: True notes: @@ -161,8 +157,6 @@ services: class: True - name: canvas_integration class: False - - name: secondary_site_backup - class: True - name: brown_network_required class: True notes: @@ -224,8 +218,6 @@ services: class: True - name: canvas_integration class: False - - name: secondary_site_backup - class: True - name: brown_network_required class: True notes: @@ -276,8 +268,6 @@ services: class: True - name: canvas_integration class: True - - name: secondary_site_backup - class: True - name: brown_network_required class: True notes: @@ -327,8 +317,6 @@ services: class: True - name: canvas_integration class: False - - name: secondary_site_backup - class: True - name: brown_network_required class: True notes: @@ -375,8 +363,6 @@ services: class: True - name: canvas_integration class: False - - name: secondary_site_backup - class: True - name: brown_network_required class: True notes: @@ -424,8 +410,6 @@ services: class: True - name: canvas_integration class: False - - name: secondary_site_backup - class: True - name: brown_network_required class: True - name: access_from_oscar