yuu

joined 2 years ago
MODERATOR OF
 

A nice cheatsheet/summary for software architecture

[–] yuu@group.lt 4 points 1 year ago* (last edited 1 year ago)

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)

Observable_Universe_Logarithmic_Map_%28horizontal_layout_english_annotations%29.x1080-tiled.png

 

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.

Orion Nebula's Orion Bar

 

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.

[–] yuu@group.lt 1 points 1 year ago

That is ok. As far as I understand, this is how lemmy<->mastodon activity-pub integration is supposed to work.

[–] yuu@group.lt 1 points 1 year ago (1 children)

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.

 

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.

 

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.

 

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

 

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

 

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

General findings

More: https://cmu-sei-podcasts.libsyn.com/a-penetration-testing-findings-repository

 
  1. Introduction: What are Miho and its role as a brand; what problem are they solving; how they are solving the problem
  2. Competitive analysis
  3. Logo and Design Guidelines
  4. Information Architecture
  5. Iterations ... in the form of wireframes
  6. 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;
 
  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.
  1. 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.
  1. 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.
  2. Guided ideation & dot voting (30 minutes)

  3. 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.
[–] yuu@group.lt 2 points 1 year ago* (last edited 1 year ago)

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:

  1. Virtually all software development activities can be divided into a small number of coherent, loosely-coupled categories.
  2. The categories are typically the same, regardless of the system under construction, project environment or who is doing the development.
  3. 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.

[–] yuu@group.lt 1 points 1 year ago* (last edited 1 year ago)

it’s simply too difficult for average person to login and apply to every single instance that they’re interested in

Maybe there are some misunderstanding, but why would one want to apply to multiple instances at the same time? Just applying and being active on 1 good instance isn't enough?

[–] yuu@group.lt 3 points 1 year ago

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

[–] yuu@group.lt 2 points 1 year ago* (last edited 1 year ago)

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.

[–] yuu@group.lt 2 points 1 year ago

For now I mostly see work like these towards the construction phase. Little by little we automate the whole thing.

Just me doing a literature note:

Authors try to find faster algorithms for sorting sequences of 3-5 elements (as programs call them the most for larger sorts) with the computer's assembly instead of higher-level C, with possible instructions' combinations similar to a game of Go 10^700. After the instruction selection for adding to the algorithm, if the test output, given the current selected instructions, is different form the expected output, the model invalidates "the entire algorithm"? This way, ended up with algorithms for the "LLVM libc++ sorting library that were up to 70% faster for shorter sequences and about 1.7% faster for sequences exceeding 250,000 elements." Then they translated the assembly to C++ for LLVM libc++.

[–] yuu@group.lt 1 points 1 year ago

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

[–] yuu@group.lt 1 points 1 year ago* (last edited 1 year ago)

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.

[–] yuu@group.lt 1 points 1 year ago* (last edited 1 year ago)

as Reddit now going to IPO. That happened to Twitter->Mastodon, can happen to Reddit->Lemmy as well.

We had seen it coming haha

view more: next ›