Explain complex systems using visuals and simple terms. Help you prepare for system design interviews. - GitHub - ByteByteGoHq/system-design-101: Explain complex systems using visuals and simple te...
A nice cheatsheet/summary for software architecture
oh this is one of my wallpapers
i did a 1920x1080 version out of it by horizontally tiling 3 duplicates of it like this (i got the freely licensed version from wikimedia commons under https://creativecommons.org/licenses/by-sa/4.0/deed.en)
just use a community-lead or non-profit foundation lead distro: NixOS (better than silverblue/kinoite in all aspects they try to sell), Arch, or Debian.
For professional usage, you generally go Ubuntu, or some RHEL derivative.
NASA's James Webb Space Telescope have Found Carbon Molecule in Space. Let's have a keen glance at the research findings.
> For the first time ever in space, scientists discovered a novel carbon molecule known as methyl cation (CH3+). This molecule is significant because it promotes the synthesis of more complex carbon-based compounds.
Originally posted on https://emacs.ch/@yantar92/110571114222626270
> Please help collecting statistics to optimize Emacs GC defaults > > Many of us know that Emacs defaults for garbage collection are rather ancient and often cause singificant slowdowns. However, it is hard to know which alternative defaults will be better. > >Emacs devs need help from users to obtain real-world data about Emacs garbage collection. See the discussion in https://yhetil.org/emacs-devel/87v8j6t3i9.fsf@localhost/ > >Please install https://elpa.gnu.org/packages/emacs-gc-stats.html and send the generated statistics via email to emacs-gc-stats@gnu.org after several weeks.
That is ok. As far as I understand, this is how lemmy<->mastodon activity-pub integration is supposed to work.
Thanks for following us! That's surely a cool feature on the fediverse. Feel welcome and free to post and comment anything related to software engineering.
There is also !seresearch@lemmy.ml which @rahulgopinath@lemmy.ml moderates.
The Chinese threat group 'ChamelGang' infects Linux devices with a previously unknown implant named 'ChamelDoH,' allowing DNS-over-HTTPS communications with attackers' servers.
In May 2023 over 90,000 developers responded to our annual survey about how they learn and level up, which tools they're using, and which ones they want.
> In May 2023 over 90,000 developers responded to our annual survey about how they learn and level up, which tools they're using, and which ones they want. > ... > This year, we went deep into AI/ML to capture how developers are thinking about it and using it in their workflows. Stack Overflow is investing heavily in enhancing the developer experience across our products, using AI and other technology, to get people to solutions faster.
The SEI and the White House OSTP will co-host a workshop to inform a community strategy for building and maintaining U.S. leadership in software engineering and artificial intelligence (AI) engineering.
NOTE: This is primarily an invitation for the "SEI and White House OSTP to Explore the Future of Software and AI Engineering", but there is this big section on the "future of software engineering" that is very interesting.
!Software Engineering Research Roadmap with Focus Areas and Research Objectives (10-15 Year Horizon)
> As discussed in Architecting the Future of Software Engineering: A Research and Development Roadmap, the SEI developed six research focus areas in close collaboration with our advisory board and other leaders in the software engineering research community > ... > AI-Augmented Software Development: By shifting the attention of humans to the conceptual tasks that computers are not good at and eliminating human error from tasks where computers can help, AI will play an essential role in a new, multi-modal human-computer partnership... taking advantage of the data generated throughout the lifecycle > > Assuring Continuously Evolving Software Systems: ...generating error-free code, especially for trivial implementation tasks... generating surprising recommendations that may themselves create additional assurance concerns... develop a theory and practice of rapid and assured software evolution that enables efficient and bounded re-assurance of continuously evolving systems > > Software Construction through Compositional Correctness: ...unrealistic for any one person or group to understand the entire system... need to integrate (and continually re-integrate) software-reliant systems.. create methods and tools that enable the intelligent specification and enforcement of composition rules that allow (1) the creation of required behaviors (both functionality and quality attributes) and (2) the assurance of these behaviors at scale > > Engineering AI-enabled Software Systems: ...AI-enabled systems share many parallels with developing and sustaining conventional software-reliant systems. Many future systems will likely either contain AI-related components, including but not limited to LLMs, or will interface with other systems that execute capabilities using AI... focus on exploring which existing software engineering practices can reliably support the development of AI systems and the ability to assess their output, as well as identifying and augmenting software engineering techniques for specifying, architecting, designing, analyzing, deploying, and sustaining AI-enabled software systems > > Engineering Socio-Technical Systems: ... As generative AI makes rapid progress, these societal-scale software systems are also prone to abuse and misuse by AI-enabled bad actors via techniques such as chatbots imitating humans, deep fakes, and vhishing... leverage insights from such as the social sciences, as well as regulators and legal professionals to build and evolve societal-scale software systems that consider these challenges and attributes. > > Engineering Quantum Computing Software Systems: ...enable the programming of current quantum computers more easily and reliably and then enable increasing abstraction as larger, fully fault-tolerant quantum computing systems become available... create approaches that integrate different types of computational devices into predictable systems and a unified software development lifecycle.
This SEI blog post highlights research examining the collaboration challenges inherent in the development of machine-learning-enabled systems compared to traditional software development projects.
> Conclusion: Four Areas for Improving Collaboration on ML-Enabled System Development > >Data scientists and software engineers are not the first to realize that interdisciplinary collaboration is challenging, but facilitating such collaboration has not been the focus of organizations developing ML-enabled systems. Our observations indicate that challenges to collaboration on such systems fall along three collaboration points: requirements and project planning, training data, and product-model integration. This post has highlighted our specific findings in these areas, but we see four broad areas for improving collaboration in the development of ML-enabled systems: >Communication: To combat problems arising from miscommunication, we advocate ML literacy for software engineers and managers, and likewise software engineering literacy for data scientists. > > Documentation: Practices for documenting model requirements, data expectations, and assured model qualities have yet to take root. Interface documentation already in use may provide a good starting point, but any approach must use a language understood by everyone involved in the development effort. > > Engineering: Project managers should ensure sufficient engineering capabilities for both ML and non-ML components and foster product and operations thinking. > > Process: The experimental, trial-and error process of ML model development does not naturally align with the traditional, more structured software process lifecycle. We advocate for further research on integrated process lifecycles for ML-enabled systems.
More: https://conf.researchr.org/details/icse-2022/icse-2022-papers/153/Collaboration-Challenges-in-Building-ML-Enabled-Systems-Communication-Documentation
PS: This one is from months ago, but still interesting
Haomiao Li | Software Engineer, Closeup Ranking & Blending; Travis Ebesu | Software Engineer, Closeup Ranking & Blending; Fan Jiang |…
> At Pinterest, Closeup recommendations (aka Related Pins) is typically a feed of recommended content (primarily Pins) that we serve on any pin closeup. Closeup recommendations generate the largest amount of impressions among all recommendation surfaces at Pinterest and are uniquely critical for our users’ inspiration-to-realization journey. It’s important that we surface qualitative, relevant, and context-and-user-aware recommendations for people on Pinterest.
See also: https://group.lt/post/46301
A collection of Active Directory, phishing, mobile technology, system, service, web application, and wireless technology weaknesses that may be discovered during a penetration test. - GitHub - cisa...
> The repository consists of three layers: > > 1. Finding Category layer lists the overarching categories > 2. General Finding layer lists high-level findings > 3. Specific Finding layer lists low-level findings
Just an overview of the general findings
More: https://cmu-sei-podcasts.libsyn.com/a-penetration-testing-findings-repository
In this case study, I’m going to talk about the process of how I designed Miho’s website from scratch. I will share my strategy, design…
> 1. Introduction: What are Miho and its role as a brand; what problem are they solving; how they are solving the problem > 1. Competitive analysis > 1. Logo and Design Guidelines > 1. Information Architecture > 1. Iterations ... in the form of wireframes > 1. UI Designs: Homepage: appealing, informative, and engaging... users could easily know “what” and “for whom” this website is for; Product detail page; Gift Shop Page; Gift detail page; About Page;
Every product (UX) designer should leverage these AI tools in their design process
> 1. Affectiva's Emotion AI ... facial analysis and emotion recognition to understand user emotional responses > 2. Ceros' Gemma ... generate new ideas, optimize existing designs, ... learn from your ideas and creative inputs, providing designers with personalized suggestions > 3. A/B Tasty ... UX designers to run A/B tests and optimize user experiences > 4. Slickplan ... sitemap generator and information architecture tool > 5. SketchAR ... creating accurate sketches and illustrations > 6. Xtensio ... user personas, journey maps, and other UX design deliverables > 7. Voiceflow ... create voice-based applications and conversational experiences
PS: Sounds like an ad, but still interesting to see tools in the wild that support AI for these conceptual phases in software engineering
> In today’s hybrid work landscape, meetings have become abundant, but unfortunately, many of them still suffer from inefficiency and ineffectiveness. Specifically, meetings aimed at generating ideas to address various challenges related to people, processes, or products encounter recurring issues. The lack of a clear goal in these meetings hinders active participation, and the organizer often dominates the conversation, resulting in a limited number of ideas that fail to fully solve the problem. Both the organizer and attendees are left feeling dissatisfied with the outcomes. > > ... > > The below sample agenda assumes that problem definition is clear. If that is not the case, hold a session prior to the ideation session to align on the problem. Tools such as interviewing, Affinity Mapping, and developing User Need statements and "How Might We" questions can be useful in facilitating that discussion. > A sample agenda for ideation sessions > > Estimated time needed: 45–60 minutes > > 1. Introduction & ground rules (2 minutes) > - Share the agenda for the ideation session. > - Review any ground rules or guidelines for the meeting. > - Allow time for attendees to ask questions or seek clarification. > > 2. Warm-up exercise (5–10 minutes) > - Conduct a warm-up exercise to foster creativity and build rapport among participants such as 30 Circles or One Thing, Nine Ways. > - Choose an activity that aligns with the goals of the meeting and reflects the activities planned for the session. A quick Google search for “warm-up exercises design thinking” will return several potential activities. > > 3. Frame the problem (2 minutes) > - Share a single artifact (slide, Word Doc, section of text in whiteboard tool) that serves as a summary of the problem, providing participants with a reference point to anchor their thinking and revisit as needed throughout the session. > > 4. Guided ideation & dot voting (30 minutes) > - Select 1–2 guided ideation exercises such as Crazy 8s, Mash-up, Six Thinking Hats. A quick Google search for “ideation techniques design thinking” will return tons of potential exercises. > - Provide clear instructions. > - Use Dot Voting and/or Prioritization Matrix to select the most promising ideas. > > 5. Next steps & closing remarks (5 minutes) > - Assign owners or champions for the selected ideas who will be responsible for driving their implementation (if not already known). > - Summarize the key decisions made and actions to be taken. > - Clarify any follow-up tasks or assignments. > - Express gratitude for participants’ contributions and conclude the meeting on a positive note.
It is almost like the things like PMBOK (which now changed to a principles-based body of knowledge)... these things have no base in scientific method (empirically-based), having origins back to all the DOD needs
Also reminds me of this important research article "The two paradigms of software development research" posted here before https://group.lt/post/46119
The two categories of models use substantially different terminology. The Rational models tend to organize development activities into minor variations of requirements, analysis, design, coding and testing – here called Royce's Taxonomy because of their similarity to the Waterfall Model. All of the Empirical models deviate substantially from Royce's Taxonomy. Royce's Taxonomy – not any particular sequence – has been implicitly co-opted as the dominant software development process theory [5]. That is, many research articles, textbooks and standards assume:
- Virtually all software development activities can be divided into a small number of coherent, loosely-coupled categories.
- The categories are typically the same, regardless of the system under construction, project environment or who is doing the development.
- The categories approximate Royce's Taxonomy. ... Royce's Taxonomy is so ingrained as the dominant paradigm that it may be difficult to imagine a fundamentally different classification. However, good classification systems organize similar instances and help us make useful inferences [98]. Like a good system decomposition, a process model or theory should organize software development activities into categories that have high cohesion (activities within a category are highly related) and loose coupling (activities in different categories are loosely related) [99].
Royce's Taxonomy is a problematic classification because it does not organize like with like. Consider, for example, the design phase. Some design decisions are made by “analysts” during what appears to be “requirements elicitation”, while others are made by “designers” during a “design meeting”, while others are made by “programmers” while “coding” or even “testing.” This means the “design” category exhibits neither high cohesion nor loose coupling. Similarly, consider the “testing” phase. Some kinds of testing are often done by “programmers” during the ostensible “coding” phase (e.g. static code analysis, fixing compilation errors) while others often done by “analysts” during what appears to be “requirements elicitation” (e.g. acceptance testing). Unit testing, meanwhile, includes designing and coding the unit tests.
> Early galaxies' stars allowed light to travel freely by heating and ionizing intergalactic gas, clearing vast regions around them. > > Cave divers equipped with brilliant headlamps often explore cavities in rock less than a mile beneath our feet. It’s easy to be wholly unaware of these cave systems – even if you sit in a meadow above them – because the rock between you and the spelunkers prevents light from their headlamps from disturbing the idyllic afternoon. > > Apply this vision to the conditions in the early universe, but switch from a focus on rock to gas. Only a few hundred million years after the big bang, the cosmos was brimming with opaque hydrogen gas that trapped light at some wavelengths from stars and galaxies. Over the first billion years, the gas became fully transparent – allowing the light to travel freely. Researchers have long sought definitive evidence to explain this flip. > > New data from the James Webb Space Telescope recently pinpointed the answer using a set of galaxies that existed when the universe was only 900 million years old. Stars in these galaxies emitted enough light to ionize and heat the gas around them, forming huge, transparent “bubbles.” Eventually, those bubbles met and merged, leading to today’s clear and expansive views.
More: https://eiger-jwst.github.io/index.html
Totally supportive. Great to have a wayland Rust implementation (and Rust increasing adoption by FOSS community); more specifically, smithay, which further than System76 is building upon, like projects by the community this WM for example https://github.com/MagmaWM/MagmaWM
Wow, this is truly good, as long ago I did read many delays on public healthcare services are due to no-shows. I liked the fact that with the information of who were more likely to no-show, UHP then contacted these people.
UHP was able to cut no-shows for patients who were highly likely to not to show up, by more than half. That patient population went from a dismal 15.63% show rate to a 39.77%. A dramatic increase. At the same time, patients in the moderate category improved from a 42.14% show rate to 50.22%.
Of course, this article sounds like an ad for eClinicalWorks, but interesting and very good application of AI regardless.
A cosmic hydrogen fog??? That sounds like an atmosphere, something that a space-dwelling creature from a sci-fi novel could develop in
not gonna lie, i lol
Well; darwin users, just as linux users, should also work on making packages available to their platforms as Nix is still in its adoption phase. There are many already. IIRC I, who never use MacOS, made some effort into making 1 or 2 packages (likely more) to build on darwin.
as Reddit now going to IPO. That happened to Twitter->Mastodon, can happen to Reddit->Lemmy as well.
We had seen it coming haha
Yeah, that's odd. But guess most projects are using the master branch anyway, e.g. https://github.com/MagmaWM/MagmaWM/blob/0ec02c92d63dd43d45fa3534f565fa587db506af/Cargo.toml#L20-L21
I can keep Firefox bleeding edge without having to worry that the package manager is also going to update the base system, giving me a broken next boot if I run rolling releases.
On Nix[OS], one can use multiple base Nixpkgs versions for specific packages one wants. What I have is e.g. 2 flakes nixpkgs, and nixpkgs-update. The first includes most packages including base system that I do not want to update regularly, while the last is for packages that I want to update more regularly like Web browser (security reasons, etc).
e.g.
- https://codeberg.org/yuuyin/yuunix/src/branch/main/flake.nix#L52-L77
- packages with pkgs (nixpkgs flake) https://codeberg.org/yuuyin/yuunix/src/branch/main/profile/packages.nix#L12-L26
- firefox with pkgs-update (nixpkgs-update flake) https://codeberg.org/yuuyin/yuunix/src/branch/main/profile/app/firefox.nix#L14-L16
When I was packaging Flatpaks, the greatest downside is
No built in package manager
There is a repo with shared dependencies, but it is very few. So needs to package all the dependencies... So, I personally am not interested in packaging for flatpak other than in very rare occasions... Nix and Guix are definitely better solutions (except the isolation aspect, which is not a feature, you need to do it manually), and one can use at many distros; Nix even on MacOS!
Not OP, but I originally xmonad because Haskell. I'm still on it because it is the only WM with a "contexts" feature/extension https://github.com/procrat/xmonad-contexts
sway devs discarded its feature request https://github.com/swaywm/sway/issues/4044
and I personally am more interest now on compositors/WMs that implement Smithay (Rust) instead of wlroots (in C). Specifically https://github.com/MagmaWM/MagmaWM, which I suppose will be easier to extend.
Some of them will detect if using virtualization. For example http://safeexambrowser.org/ by ETH Zurich
Ironically enough, it is free software https://github.com/SafeExamBrowser
The small, distant galaxy JD1 is typical of the kind that burned off hydrogen fog left over from the Big Bang.
The nature of an ultra-faint galaxy in the cosmic Dark Ages seen with JWST https://arxiv.org/abs/2210.15639
Using as backend for a very important Web app (with possible IoT applications in the very future also) for me which I already conceptualized, have some prototypes, etc---this is what motivates me. I feel, for this project in specific, I shall first learn the offficial Book (which I am) and have a play with the recommended libraries and the take of Rust on Nails. I also have many other interesting projects in mind, and want to contribute to e.g. Lemmy (I have many Rust projects git cloned, including it).
The estimated average salary of tech workers is $100,615, or double the median salary across all occupations.
cross-posted from: https://group.lt/post/65921
> Saving for the comparison with the next year
I suppose it only makes sense to raise awareness on the benefits of the freely licensed software and services from the fediverse over the dangerous and unethical proprietary services in existence such as Reddit now going to IPO. That happened to Twitter->Mastodon, can happen to Reddit->Lemmy as well.
I suppose as well that the users most likely to be open to the idea would be the free software, culture users to try it. Besides, an effort on content creation and content creators to make it an attractive place.
What are your thoughts? What were the efforts so far? What are the challenges? Is it so hard to make people migrate?
can't believe it got to this point. heads on rust foundation seem more self-interested than community-oriented.
> This project aims at providing nightly builds of all official rust mdbooks in epub format. It is born out of the difficulty I encountered when starting my rust apprenticeship to find recent ebook versions of the official documentation. > > If you encounter any issue, have any suggestion or would like to improve this site and/or its content, please go to https://github.com/dieterplex/rust-ebookshelf/ and file an issue or create a pull request.
Do you want to know how to create a great design experience? Learn from Cris Luckner, NuConta's Design Manager.
Always interesting to read real world applications of the concepts. Nubank's framework is a mix of storytelling, design thinking, empathy mapping, ...
> storytelling can be used to develop better products around the idea of understanding and executing the “why’s” and “how’s” of the products. Using the techniques related to it, such as research, we can simplify the way we pass messages to the user.
Nubank's framework has three phases:
> 1. Understanding: properly understand the customer problem. After that, we can create our first storyboard. When working on testing with users, a framework is good to guarantee that we’re considering all of our ideas. > 2. Defining: how we’re going to communicate the narrative. As you can see, the storyboard is very strategic when it comes to helping influence the sequence of events and craft the narrative. Here the "movie script" is done. Now make de "movie's scene". > 3. Designing: translate the story you wrote, because, before you started doing anything, you already knew what you were going to do. Just follow what you have planned... Understanding the pain points correctly, we also start to understand our users actions and how they think. When we master this, we can help the customer take the actions in the way that we want them to, to help them to achieve their goals. > 4. Call to action: By knowing people’s goals and paint points, whether emotional or logistical, we can anticipate their needs.... guarantee that it is aligned with the promises we made to the customer, especially when it comes to marketing. Ask yourself if what you’re saying in the marketing campaigns are really what will be shown in the product.
Adopting DevOps practices is nowadays a recurring task in the industry. DevOps is a set of practices intended to reduce the friction between the software development (Dev) and the IT operations (Ops), resulting in higher quality software and a shorter development lifecycle. Even though many resource...
cross-posted from !softwareengineering@group.lt: https://group.lt/post/46385
> Adopting DevOps practices is nowadays a recurring task in the industry. DevOps is a set of practices intended to reduce the friction between the software development (Dev) and the IT operations (Ops), resulting in higher quality software and a shorter development lifecycle. Even though many resources are talking about DevOps practices, they are often inconsistent with each other on the best DevOps practices. Furthermore, they lack the needed detail and structure for beginners to the DevOps field to quickly understand them. > > In order to tackle this issue, this paper proposes four foundational DevOps patterns: Version Control Everything, Continuous Integration, Deployment Automation, and Monitoring. The patterns are both detailed enough and structured to be easily reused by practitioners and flexible enough to accommodate different needs and quirks that might arise from their actual usage context. Furthermore, the patterns are tuned to the DevOps principle of Continuous Improvement by containing metrics so that practitioners can improve their pattern implementations.
---
The article does not describes but actually identified and included 2 other patterns in addition to the four above (so actually 6):
- Cloud Infrastructure, which includes cloud computing, scaling, infrastructure as a code, ...
- Pipeline, "important for implementing Deployment Automation and Continuous Integration, and segregating it from the others allows us to make the solutions of these patterns easier to use, namely in contexts where a pipeline does not need to be present."
!Overview of the pattern candidates and their relation
The paper is interesting for the following structure in describing the patterns:
> - Name: An evocative name for the pattern. > - Context: Contains the context for the pattern providing a background for the problem. > - Problem: A question representing the problem that the pattern intends to solve. > - Forces: A list of forces that the solution must balance out. > - Solution: A detailed description of the solution for our pattern’s problem. > - Consequences: The implications, advantages and trade-offs caused by using the pattern. > - Related Patterns: Patterns which are connected somehow to the one being described. > - Metrics: A set of metrics to measure the effectiveness of the pattern’s solution implementation.
> Adopting DevOps practices is nowadays a recurring task in the industry. DevOps is a set of practices intended to reduce the friction between the software development (Dev) and the IT operations (Ops), resulting in higher quality software and a shorter development lifecycle. Even though many resources are talking about DevOps practices, they are often inconsistent with each other on the best DevOps practices. Furthermore, they lack the needed detail and structure for beginners to the DevOps field to quickly understand them. > > In order to tackle this issue, this paper proposes four foundational DevOps patterns: Version Control Everything, Continuous Integration, Deployment Automation, and Monitoring. The patterns are both detailed enough and structured to be easily reused by practitioners and flexible enough to accommodate different needs and quirks that might arise from their actual usage context. Furthermore, the patterns are tuned to the DevOps principle of Continuous Improvement by containing metrics so that practitioners can improve their pattern implementations.
---
The article does not describes but actually identified and included 2 other patterns in addition to the four above (so actually 6):
- Cloud Infrastructure, which includes cloud computing, scaling, infrastructure as a code, ...
- Pipeline, "important for implementing Deployment Automation and Continuous Integration, and segregating it from the others allows us to make the solutions of these patterns easier to use, namely in contexts where a pipeline does not need to be present."
!Overview of the pattern candidates and their relation
The paper is interesting for the following structure in describing the patterns:
> - Name: An evocative name for the pattern. > - Context: Contains the context for the pattern providing a background for the problem. > - Problem: A question representing the problem that the pattern intends to solve. > - Forces: A list of forces that the solution must balance out. > - Solution: A detailed description of the solution for our pattern’s problem. > - Consequences: The implications, advantages and trade-offs caused by using the pattern. > - Related Patterns: Patterns which are connected somehow to the one being described. > - Metrics: A set of metrics to measure the effectiveness of the pattern’s solution implementation.
Oh I misread; thought it enabled following fediverse users from within lemmy, but now i see it is actually the other way around. Thank you for clarifying!
Lemmy users can now be followed. Just visit a user profile from another platform like Mastodon, and click the follow button, then you will receive new posts and comments in the timeline.
does an admin needs to enable the follow button? it is not appearing for me.
Keyoxide: https://keyoxide.org/9f193ae8aa25647ffc3146b5416f303b43c20ac3
OpenPGP: openpgp4fpr:9f193ae8aa25647ffc3146b5416f303b43c20ac3