practices | Guides principles from the web team at Canonical | Natural Language Processing library

 by   canonical-web-and-design CSS Version: Current License: Non-SPDX

kandi X-RAY | practices Summary

kandi X-RAY | practices Summary

practices is a CSS library typically used in Artificial Intelligence, Natural Language Processing applications. practices has no bugs, it has no vulnerabilities and it has low support. However practices has a Non-SPDX License. You can download it from GitHub.

A collection of documents that describe best practices for Canonical web team. These can be also be viewed at
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              practices has a low active ecosystem.
              It has 44 star(s) with 32 fork(s). There are 21 watchers for this library.
              OutlinedDot
              It had no major release in the last 6 months.
              There are 38 open issues and 27 have been closed. On average issues are closed in 75 days. There are 1 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of practices is current.

            kandi-Quality Quality

              practices has no bugs reported.

            kandi-Security Security

              practices has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.

            kandi-License License

              practices has a Non-SPDX License.
              Non-SPDX licenses can be open source with a non SPDX compliant license, or non open source licenses, and you need to review them closely before use.

            kandi-Reuse Reuse

              practices releases are not available. You will need to build from source code and install.
              Installation instructions are not available. Examples and code snippets are available.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of practices
            Get all kandi verified functions for this library.

            practices Key Features

            No Key Features are available at this moment for practices.

            practices Examples and Code Snippets

            No Code Snippets are available at this moment for practices.

            Community Discussions

            QUESTION

            How would you set up a database to handle comments for a blogging site?
            Asked 2021-Jun-15 at 19:59

            I'm a student learning about database design and currently learning about the relationships of - one-to-one, one-to-many, many-to-many. I understand the concept well enough, but feel like I'm lacking experience/information on how it would be implemented in a real production scenario.

            My question is this

            If I have a blog website with a Blog Post as an entity and comments for each blog post, how would you handle the comments in the database?`

            Would you use a one-to-many relationship and just store all the comments in a single table. Then link those comments to each blog post and user who created it?

            What if each comment had a sub-comment? Would you create a separate table for sub-comments and link it to a single comment? Would that cause too much overhead and confusion within the DB itself?

            I get the concepts and all, but don't understand best practices for handling what seems like basic stuff.

            Thanks in advance!

            ...

            ANSWER

            Answered 2021-Jun-15 at 16:06

            The simplest solution is to stick with a one-to-many relationship. Use one table and store one comment per row, with references to the post and the comment author, and a timestamp so you can sort the comments chronologically.

            You seem uncertain about whether you need a "threaded comment" hierarchy. This is more complex, so if you don't need it, don't bother.

            If you do need to show comment threads, then you should learn about running recursive queries in MySQL 8.0: https://dev.mysql.com/doc/refman/8.0/en/with.html#common-table-expressions-recursive

            You still only need one table. Don't create a second table for sub-comments. Just store comments like in your one-to-many example, but each comment may link to its "parent" comment when it is a reply.

            Another solution that many sites use is to skip implementing their own comment system, and just embed a comment service like Disqus. That's likely to be much more reliable and safe than yours. But if you're doing this as a learning exercise, that's worthwhile too.

            Source https://stackoverflow.com/questions/67989645

            QUESTION

            Best practice to remembering List State after navigation to another Composable using Jetpack Compose Navigation
            Asked 2021-Jun-15 at 14:10

            When navigating from Composable A -> Composable B, say Composable A is a Lazy List scrolled halfway down and Composable B is a Lazy List Item Details Screen. Currently, the lazy list scroll position isn't stored, and when navigating back to Composable A from B, the list starts from item index 0. We could store it in a ViewModel, and read the value back, as well as use rememberSaveable, however, I am unsure as to how to implement rememberSaveable so that it scrolls to the saved position after back navigation.

            Which method would be preferred to use following good code practices?

            Edit: My problem arises from the fact that the listState isn't stored when navigating back from composable B to A. So if we scroll to the bottom and select an item and look at its details, when we navigate back to the list it is scrolled to the top, instead of saving its scrollState.

            My composable

            ...

            ANSWER

            Answered 2021-Jun-15 at 14:10

            I'm leaving this question up in case anyone else ever gets stuck in my situation, but the code works as it is meant to, I just committed a folly.

            I didn't account for height changes with asynchronous image loading and as such, the list would not be at its saved position upon composable navigation, due to the list state being smaller than the screen height on returning to the composable.

            However, If the images were given static containers to load into to that don't change their size, then upon back navigation, the composable would correctly display the saved list state.

            Source https://stackoverflow.com/questions/67924705

            QUESTION

            Django : bulk upload with confirmation
            Asked 2021-Jun-15 at 13:37

            Yet another question about the style and the good practices. The code, that I will show, works and do the functionality. But I'd like to know is it ok as solution or may be it's just too ugly?

            As the question is a little bit obscure, I will give some points at the end.

            So, the use case.

            I have a site with the items. There is a functionality to add the item by user. Now I'd like a functionality to add several items via a csv-file.

            How should it works?

            1. User go to special upload page.
            2. User choose a csv-file, click upload.
            3. Then he is redirected to the page that show the content of csv-file (as a table).
            4. If it's ok for user, he clicks "yes" (button with "confirm_items_upload" value) and the items from file are added to database (if they are ok).

            I saw already examples for bulk upload for django, and they seem pretty clear. But I don't find an example with an intermediary "verify-confirm" page. So how I did it :

            1. in views.py : view for upload csv-file page
            ...

            ANSWER

            Answered 2021-May-28 at 09:27

            a) Even if obviously it could be better, is this solution is acceptable or not at all ?

            I think it has some problems you want to address, but the general idea of using the filesystem and storing just filenames can be acceptable, depending on how many users you need to serve and what guarantees regarding data consistency and concurrent accesses you want to make.

            I would consider the uploaded file temporary data that may be lost on system failure. If you want to provide any guarantees of not losing the data, you want to store it in a database instead of on the filesystem.

            b) I pass 'uploaded_file' from one view to another using "request.session" is it a good practice? Is there another way to do it without using GET variables?

            There are up- and downsides to using request.session.

            • attackers can not change the filename and thus retrieve data of other users. This is also the reason why you should not use a GET parameter here: If you used one, attackers could simpy change that parameter and get access to files of other users.
            • users can upload a file, go and do other stuff, and later come back to actually import the file, however:
            • if users end their session, you lose the filename. Also, users can not upload the file on one device, change to another device, and then go on with the import, since the other device will have a different session.

            The last point correlates with the leftover files problem: If you lose your information about which files are still needed, it makes cleaning up harder (although, in theory, you can retrieve which files are still needed from the session store).

            If it is a problem that sessions might end or change because users clear their cookies or change devices, you could consider adding the filename to the UserProfile in the database. This way, it is not bound to sessions.

            c) At first my wish was to avoid to save the csv-file. But I could not figure out how to do it? Reading all the file to request.session seems not a good idea for me. Is there some possibility to upload the file into memory in Django?

            You want to store state. The go-to ways of storing state are the database or a session store. You could load the whole CSVFile and put it into the database as text. Whether this is acceptable depends on your databases ability to handle large, unstructured data. Traditional databases were not originally built for that, however, most of them can handle small binary files pretty well nowadays. A database could give you advantages like ACID guarantees where concurrent writes to the same file on the file system will likely break the file. See this discussion on the dba stackexchange

            Your database likely has documentation on the topic, e.g. there is this page about binary data in postgres.

            d) If I have to use the tmp-file. How should I handle the situation if user abandon upload at the middle (for example, he sees the confirmation page, but does not click "yes" and decide to re-write his file). How to remove the tmp-file?

            Some ideas:

            • Limit the count of uploaded files per user to one by design. Currently, your filename is based on a timestamp. This breaks if two users simultaneously decide to upload a file: They will both get the same timestamp, and the file on disk may be corrupted. If you instead use the user's primary key, this guarantees that you have at most one file per user. If they later upload another file, their old file will be overwritten. If your user count is small enough that you can store one leftover file per user, you don't need additional cleaning. However, if the same user simultaneusly uploads two files, this still breaks.
            • Use a unique identifier, like a UUID, and delete the old stored file whenever the user uploads a new file. This requires you to still have the old filename, so session storage can not be used with this. You will still always have the last file of the user in the filesystem.
            • Use a unique identifier for the filename and set some arbitrary maximum storage duration. Set up a cronjob or similar that regularly goes through the files and deletes all files that have been stored longer than your specified maximum duration. If a user uploads a file, but does not do the actual import soon enough, their data is deleted, and they would have to do the upload again. Here, your code has to handle the case that the file with the stored filename does not exist anymore (and may even be deleted while you are reading the file).

            You probably want to limit your server to one file stored per user so that attackers can not fill your filesystem.

            e) Small additional question : what kind of checks there are in Django about uploaded file? For example, how could I check that the file is at least a text-file? Should I do it?

            You definitely want to set up some maximum file size for the file, as described e.g. here. You could limit the allowed file extensions, but that would only be a usability thing. Attackers could also give you garbage data with any accepted extension.

            Keep in mind: If you only store the csv as text data that you load and parse everytime a certain view is accessed, this can be an easy way for attackers to exhaust your servers, giving them an easy DoS attack.

            Overall, it depends on what guarantees you want to make, how many users you have and how trustworthy they are. If users might be malicious, you want to keep all possible kinds of data extraction and resource exhaustion attacks in mind. The filesystem will not scale out (at least not as easily as a database).

            I know of a similar setup in a project where only a handful of priviliged users are allowed to upload stuff, and we can tolerate deletion of all temporary files on failure. Users will simply have to reupload their files. This works fine.

            Source https://stackoverflow.com/questions/67686096

            QUESTION

            Golang Concurrency Code Review of Codewalk
            Asked 2021-Jun-15 at 06:03

            I'm trying to understand best practices for Golang concurrency. I read O'Reilly's book on Go's concurrency and then came back to the Golang Codewalks, specifically this example:

            https://golang.org/doc/codewalk/sharemem/

            This is the code I was hoping to review with you in order to learn a little bit more about Go. My first impression is that this code is breaking some best practices. This is of course my (very) unexperienced opinion and I wanted to discuss and gain some insight on the process. This isn't about who's right or wrong, please be nice, I just want to share my views and get some feedback on them. Maybe this discussion will help other people see why I'm wrong and teach them something.

            I'm fully aware that the purpose of this code is to teach beginners, not to be perfect code.

            Issue 1 - No Goroutine cleanup logic

            ...

            ANSWER

            Answered 2021-Jun-15 at 02:48
            1. It is the main method, so there is no need to cleanup. When main returns, the program exits. If this wasn't the main, then you would be correct.

            2. There is no best practice that fits all use cases. The code you show here is a very common pattern. The function creates a goroutine, and returns a channel so that others can communicate with that goroutine. There is no rule that governs how channels must be created. There is no way to terminate that goroutine though. One use case this pattern fits well is reading a large resultset from a database. The channel allows streaming data as it is read from the database. In that case usually there are other means of terminating the goroutine though, like passing a context.

            3. Again, there are no hard rules on how channels should be created/closed. A channel can be left open, and it will be garbage collected when it is no longer used. If the use case demands so, the channel can be left open indefinitely, and the scenario you worry about will never happen.

            Source https://stackoverflow.com/questions/67979304

            QUESTION

            Where Media files (images, etc) Should Be Stored For A Websites?
            Asked 2021-Jun-15 at 05:18

            hopefull someone can shed some light on this topic and here are some of my questions:

            • How do big ecommerce websites manage their images for their websites?
            • Is there any Best Practices should be consider when deciding where to keep websites images?
            • I have heard to keep the images in multiple folder structure on the same server where the website is hosted so websites can render them easily and fast since they are all on same server - Is this the idea solution?
            • How do professionals or big ecommerce handle images storage and maintain website images reliability and stability?
            • Is Azure or AWS etc best place to store images for websites rendering?

            Thanks in advance!

            ...

            ANSWER

            Answered 2021-Jun-15 at 02:52

            Keeping the files in the same server comes with more risk, if your server crashes or region goes down your application stopped as well as your files not gonna render if you are using those files separately for different applications like mobile applications.

            In this case, users will also face a high loading time for those media files if the users are not in the same zone as your application hosted.

            The best practice to store the image/media files on some cloud storage like S3 or Azure Blob then connect it with some CDN like CloudFront or Azure CDN.

            Now you can serve your media files via CDN which will act as a global caching system for your media files.

            Source https://stackoverflow.com/questions/67976645

            QUESTION

            Is Iframe Still Used in a good idea?
            Asked 2021-Jun-14 at 17:45

            I have the requirement to be able to present a document on a website, in the browser. (not download it) and well the way I know to tackle this (without paying to 3rd parties software) is an Iframe, but that sounds like a really old practice. I'm currently developing an application on Blazor and .net5 and sounds really wrong to put an iFrame in there, can you guys provide me input for better practices or just your thoughts?

            Thanks in advance.

            Edit: Im trying to use them to present doc, docx, pdf and pngs in a blazor application with .net5

            ...

            ANSWER

            Answered 2021-Jun-14 at 17:41

            Honestly, after days of research, I'm trying to talk the team into the idea of creating an API dedicated to Docs, and as part of that effort would migrate documents to AWS S3 or azure blob storage. We will introduce Aspose for rendering and separate the Issue.

            Why? because all the solutions I have seen to support doc and Docx in .net5 are really hacky and I can see lacks in terms of security. And I would not recommend anyone to try to do the approach I was looking to do at the begging of this question.

            I leave here what experience cause this research was pain and I hope this question can still help someone.

            Source https://stackoverflow.com/questions/67911967

            QUESTION

            loading redux items into state from a direct link
            Asked 2021-Jun-14 at 04:40

            This is sort of a "best practices" question, since I'm not clear on the right way to handle this case.

            The situation is that I have a bookstore app with a list of books that exists as state.bookstore.books. When the visitor loads the index page of the bookstore, a thunk action is dispatched that loads all the book objects in the user's collection into the state.bookstore.books array.

            From the bookstore page, a user can click on an individual book, and a new page is loaded that pulls the book item from the state books array and displays the details.

            My problem is that if a user directly visits the book detail link (eg. "mysite.com/book/123") without first going through the homepage, the state.bookstore.books array is empty, and the page has no data to display.

            My question is what is the "right" way to do this? Would I dispatch the loadBookstore action to populate the state anytime the app is initialized? Would I create a new redux feature for book? Would I ignore looking up the book in the state, and just grab the specific book record from the server?

            I am assuming that I'm doing it wrong / implementing an anti-pattern because selectors are not built to take parameters, so it seems like since there's no easy way to grab book 123 from the store, then I shouldn't be doing it this way.

            ...

            ANSWER

            Answered 2021-Jun-14 at 04:40

            Let's say we have 2 components

            1. BooksHome for /books/
            2. SingleBook for /books/:id

            So when the user visits /books/ route, fire a thunk fetchBooks(..) which loads books and saves them in state.bookstore.books and display those books in BooksHome

            And when the user visits /books/:id route, fire a thunk fetchSingleBook(..) which will find book item with :id in state.bookstore.books if that's present return it and display it in SingleBook and if it's not there, fetch it, add it to state.bookstore.books and return it and display it in SingleBook.

            Explanation:

            When the user visits /books/123 right away, state.bookstore.books is [] so no item is found, so we'll fetch it, store it and display it.

            When the user visits /books/ (data fetched and stored) and then visits /books/123, state.bookstore.books is having an item with id:123 so the item is found, so we'll get it from state.bookstore.books and display it.

            Must do things:

            1. fetchBooks must be dispatched in BooksHome but not in App
            2. Same way fetchSingleBook must be dispatched in SingleBook

            Things optimised with this approach:

            1. We need not fetch all books for displaying a single book.
            2. We need not re-fetch book's data when it is already available in state.bookstore.books

            Hope this helps🤝

            Source https://stackoverflow.com/questions/67943891

            QUESTION

            How to force a symfony version on github actions when testing a bundle
            Asked 2021-Jun-13 at 16:21

            I'm trying to test a bundle on different versions of Symfony with github actions. I tried to configure my job as explained in Best practices for reusable bundles

            Here is my job:

            ...

            ANSWER

            Answered 2021-Jun-13 at 16:21

            It seems that export command isn't environment-proof.

            Finally, I removed these lines:

            Source https://stackoverflow.com/questions/67959657

            QUESTION

            How to give celery enough permission to run a root file without compromising security?
            Asked 2021-Jun-13 at 11:03

            I'm running the code below as part of a Celery task.

            ...

            ANSWER

            Answered 2021-Jun-13 at 09:16

            I would add the celery user to the sudoers file with the only command allowed being the one needed. Use visudo and add these lines

            Source https://stackoverflow.com/questions/67956531

            QUESTION

            Safe coding practices in c : switching from dynamic to static memory allocation
            Asked 2021-Jun-12 at 21:18

            I'm working on embedded systems and my goal is to improve the safety of an existing code. I'm trying to follow Nasa's rules : https://en.wikipedia.org/wiki/The_Power_of_10:_Rules_for_Developing_Safety-Critical_Code

            The existing code contains dynamically allocated instances and variables which is pretty common, I'm required to translate the program to static memory alocation.

            Is there generic practices and patterns to succesfully switch from dynamic to static memory allocation without breaking the code ?

            In particular, I'm having issues with those kinds of mallocs :

            ...

            ANSWER

            Answered 2021-May-10 at 10:09

            Is there generic practices and patterns to succesfully switch from dynamic to static memory allocation without breaking the code ?

            No, not really. You'll have to rewrite all such code in pretty radical ways.

            You have to realize why all safety-related and embedded systems ban malloc. The main reason is that it is non-deterministic. Instead of allowing completely variable sizes, you have to specify a maximum size for each such item, to cover the worst case scenario of the application.

            Also, the presence of things like pointer-to-pointers instead of 2D arrays is a pretty certain indication that the original programmer didn't quite know what they were doing in the first place.

            Additionally you need to drop the default types of C for stdint.h ones. That's standard practice in all embedded systems.

            In general, I'd strongly advise to drop those "NASA rules" and implement MISRA-C instead. It's a way more professional and in-depth document. Some of the "NASA rules" simply don't make sense and the rest can be summarized as "No s***t Sherlock" beginner-level stuff which we were already told during our first beginner-level C programming class back in school. If these rules come as a surprise to someone, they shouldn't be writing mission-critical firmware in the first place.

            Source https://stackoverflow.com/questions/67468305

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install practices

            You can download it from GitHub.

            Support

            For guidelines on contributing to these documents, see CONTRIBUTING.md.
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/canonical-web-and-design/practices.git

          • CLI

            gh repo clone canonical-web-and-design/practices

          • sshUrl

            git@github.com:canonical-web-and-design/practices.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link

            Consider Popular Natural Language Processing Libraries

            transformers

            by huggingface

            funNLP

            by fighting41love

            bert

            by google-research

            jieba

            by fxsjy

            Python

            by geekcomputers

            Try Top Libraries by canonical-web-and-design

            vanilla-framework

            by canonical-web-and-designHTML

            tutorials.ubuntu.com

            by canonical-web-and-designHTML

            snapcraft.io

            by canonical-web-and-designJavaScript

            ubuntu.com

            by canonical-web-and-designHTML

            build.snapcraft.io

            by canonical-web-and-designJavaScript