#context unapplied
Explore tagged Tumblr posts
Text

(Suitor) turning in {Catalyst} after the latter has been hiding from the consequences of his attempted murder.
Yes this is technically Jashwriting Heart and Jashwriting Soul! the Mutuals and I have been working on post-rp hypotheticals where we just dump a whole bunch of HMSW sets into a "Sandbox" and let them interact
#honeycloves art#jashwriting‼️#Lost in a Dream RP#chonnys charming chaos compendium#cccc#cj heart#cj soul#context unapplied#i keep remembering that i dont have to tell people the entire 30 page long details if i dont wanna#people can just look at the art#people like looking at the art
88 notes
·
View notes
Text
Ensuring Financial Integrity | A Guide to Account Reconciliation for Businesses!
In the present context, determining the accuracy and consistency of financial data is imperative for a company. Account reconciliation is a general practice for businesses to create their balance sheet during the end of the financial year. The organizations require it to make informed decisions and help them to maintain financial integrity.
Why is account reconciliation vital for enterprises?
Account reconciliation is vital for enterprises for several reasons. Firstly, it ensures the accuracy of financial records by comparing internal documents with external statements, such as bank statements or vendor invoices. This helps detect discrepancies, errors, or fraudulent activities, fostering financial transparency and compliance with regulations.
Secondly, reconciliation identifies operational inefficiencies, enabling companies to optimize cash flow management and reduce the risk of overpayments or underpayments. It also enhances decision-making by providing real-time insights into financial health. Furthermore, reconciliation is crucial for audit trails, facilitating the auditing process and minimizing the likelihood of financial irregularities going unnoticed. Ultimately, it safeguards a company's reputation, financial stability, and legal compliance, making it an indispensable practice in modern business.
Account Reconciliation Process
It compares the balance of general ledger accounts for balance sheet accounts to supporting sets of records and bank statements.
Let's know the step-by-step process.
Gather all relevant financial records
The account reconciliation software plays a vital role in collecting all financial records, including invoices, bank statements, receipts, etc.
Determine discrepancies
It checks the discrepancies by comparing the financial records with the entries in the accounting system, such as missing, duplicated entries, incorrect amounts, or other errors.
Make Adjustments
After identifying and investigating the irregularities, it makes an essential adjustment to overcome errors and reconcile the accounts. This process may involve updating the accounting system, adjusting entries, or reconciling payments.
Document Changes
When adjustments are applied to financial records, it must ensure the documents' changes. It helps you determine the up-to-date financial records.
Verifying the accuracy of financial records
After making necessary modifications, ensure a thorough review of financial records to verify their precision and alignment with external documents, such as bank statements and vendor invoices.
Regularly Repeat the Process
Account reconciliation is a continuous procedure, underscoring the need for regular repetition to maintain the precision and reliability of your financial documentation. While the specific timetable for reconciliation may differ based on the scale and intricacy of your business, it is generally advisable to engage in account reconciliation at least once per month.
Some Examples of Account Reconciliation
Bank Reconciliation:
Bank reconciliation is the most common type of reconciliation. It involves comparing a company's cash account balance in its books with the balance shown on the bank statement.
Discrepancies can arise due to outstanding checks, deposits in transit, bank fees, or errors.
Accounts Receivable Reconciliation:
This reconciliation ensures that the accounts receivable (money owed by customers) on the company's books match the amounts reflected in customer accounts and invoices.
It helps identify discrepancies, such as unapplied payments, credit memos, or overdue accounts.
Accounts Payable Reconciliation:
Accounts payable reconciliation verifies that the company's records accurately reflect the outstanding bills and liabilities owed to suppliers.
It helps identify discrepancies, duplicate invoices, or unrecorded expenses.
Inventory Reconciliation:
Inventory reconciliation ensures that the physical inventory matches the inventory recorded in the books.
It is crucial for tracking losses, shrinkage, or discrepancies between actual and recorded inventory levels.
General Ledger Reconciliation:
General ledger reconciliation involves verifying that all accounts in the general ledger are accurate and complete.
It ensures that debit and credit entries are balanced and there are no errors in the financial statements.
Credit Card Reconciliation:
Companies reconcile credit card statements to ensure that all credit card transactions are accurately recorded.
Discrepancies may arise due to missing receipts, disputed charges, or errors in the credit card statement.
Intercompany Reconciliation:
This reconciliation is used in large organizations with multiple subsidiaries.
It ensures that transactions between different entities within the organization are properly recorded and eliminates any intercompany imbalances.
Payroll Reconciliation:
Payroll reconciliation ensures that employee wages, taxes, and benefits match the amounts recorded in the company's payroll system.
Discrepancies can occur due to overtime, withholdings, or errors in payroll processing.
Fixed Asset Reconciliation:
It verifies that the company's records accurately reflect the value and location of fixed assets, such as buildings, machinery, and equipment.
This reconciliation solution helps track depreciation and ensure compliance with accounting standards.
Tax Reconciliation:
Tax reconciliation involves reconciling the company's financial data with its tax returns to ensure that all tax liabilities and deductions are accurately reported.
Bottom Line
Overall, account reconciliation aims to maintain the accuracy and integrity of an organization's financial processes and detect any errors and fraudulent transactions in the system. Hopefully, this article will help you easier to understand this typical term in simple words.
Original Resource: https://medium.com/@meon_technologies/a-comprehensive-guide-to-account-reconciliation-software-for-businesses-24a1c130e47c
0 notes
Text
Everything You Need to Know About FLIP Animations in React
With a very recent Safari update, Web Animations API (WAAPI) is now supported without a flag in all modern browsers (except IE). Here’s a handy Pen where you can check which features your browser supports. The WAAPI is a nice way to do animation (that needs to be done in JavaScript) because it’s native — meaning it requires no additional libraries to work. If you’re completely new to WAAPI, here’s a very good introduction by Dan Wilson.
One of the most efficient approaches to animation is FLIP. FLIP requires a bit of JavaScript to do its thing.
Let’s take a look at the intersection of using the WAAPI, FLIP, and integrating all that into React. But we’ll start without React first, then get to that.
FLIP and WAAPI
FLIP animations are made much easier by the WAAPI!
Quick refresher on FLIP: The big idea is that you position the element where you want it to end up first. Next, apply transforms to move it to the starting position. Then unapply those transforms.
Animating transforms is super efficient, thus FLIP is super efficient. Before WAAPI, we had to directly manipulate element’s styles to set transforms and wait for the next frame to unset/invert it:
// FLIP Before the WAAPI el.style.transform = `translateY(200px)`;
requestAnimationFrame(() => { el.style.transform = ''; });
A lot of libraries are built upon this approach. However, there are several problems with this:
Everything feels like a huge hack.
It is extremely difficult to reverse the FLIP animation. While CSS transforms are reversed “for free” once a class is removed, this is not the case here. Starting a new FLIP while a previous one is running can cause glitches. Reversing requires parsing a transform matrix with getComputedStyles and using it to calculate the current dimensions before setting a new animation.
Advanced animations are close to impossible. For example, to prevent distorting a scaled parent’s children, we need to have access to current scale value each frame. This can only be done by parsing the transform matrix.
There’s lots of browser gotchas. For example, sometimes getting a FLIP animation to work flawlessly in Firefox requires calling requestAnimationFrame twice:
requestAnimationFrame(() => { requestAnimationFrame(() => { el.style.transform = ''; }); });
We get none of these problems when WAAPI is used. Reversing can be painlessly done with the reverse function.The counter-scaling of children is also possible. And when there is a bug, it is easy to pinpoint the exact culprit since we’re only working with simple functions, like animate and reverse, rather than combing through things like the requestAnimationFrame approach.
Here’s the outline of the WAAPI version:
el.classList.toggle('someclass'); const keyframes = /* Calculate the size/position diff */; el.animate(keyframes, 2000);
FLIP and React
To understand how FLIP animations work in React, it is important to know how and, most importantly, why they work in plain JavaScript. Recall the anatomy of a FLIP animation:
Everything that has a purple background needs to happen before the “paint” step of rendering. Otherwise, we would see a flash of new styles for a moment which is not good. Things get a little bit more complicated in React since all DOM updates are done for us.
The magic of FLIP animations is that an element is transformed before the browser has a chance to paint. So how do we know the “before paint” moment in React?
Meet the useLayoutEffect hook. If you even wondered what is for… this is it! Anything we pass in this callback happens synchronously after DOM updates but before paint. In other words, this is a great place to set up a FLIP!
Let us do something the FLIP technique is very good for: animating the DOM position. There’s nothing CSS can do if we want to animate how an element moves from one DOM position to another. (Imagine completing a task in a to-do list and moving it to the list of “completed” tasks like when you click on items in the Pen below.)
CodePen Embed Fallback
Let’s look at the simplest example. Clicking on any of the two squares in the following Pen makes them swap positions. Without FLIP, it would happen instantly.
CodePen Embed Fallback
There’s a lot going on there. Notice how all work happens inside lifecycle hook callbacks: useEffect and useLayoutEffect. What makes it a little bit confusing is that the timeline of our FLIP animation is not obvious from code alone since it happens across two React renders. Here’s the anatomy of a React FLIP animation to show the different order of operations:
Although useEffect always runs after useLayoutEffect and after browser paint, it is important that we cache the element’s position and size after the first render. We won’t get a chance to do it on second render because useLayoutEffect is run after all DOM updates. But the procedure is essentially the same as with vanilla FLIP animations.
Caveats
Like most things, there are some caveats to consider when working with FLIP in React.
Keep it under 100ms
A FLIP animation is calculation. Calculation takes time and before you can show that smooth 60fps transform you need to do quite some work. People won’t notice a delay if it is under 100ms, so make sure everything is below that. The Performance tab in DevTools is a good place to check that.
Unnecessary renders
We can’t use useState for caching size, positions and animation objects because every setState will cause an unnecessary render and slow down the app. It can even cause bugs in the worst of cases. Try using useRef instead and think of it as an object that can be mutated without rendering anything.
Layout thrashing
Avoid repeatedly triggering browser layout. In the context of FLIP animations, that means avoid looping through elements and reading their position with getBoundingClientRect, then immediately animating them with animate. Batch “reads” and “writes” whenever possible. This will allow for extremely smooth animations.
Animation canceling
Try randomly clicking on the squares in the earlier demo while they move, then again after they stop. You will see glitches. In real life, users will interact with elements while they move, so it’s worth making sure they are canceled, paused, and updated smoothly.
However, not all animations can be reversed with reverse. Sometimes, we want them to stop and then move to a new position (like when randomly shuffling a list of elements). In this case, we need to:
obtain a size/position of a moving element
finish the current animation
calculate the new size and position differences
start a new animation
In React, this can be harder than it seems. I wasted a lot of time struggling with it. The current animation object must be cached. A good way to do it is to create a Map so to get the animation by an ID. Then, we need to obtain the size and position of the moving element. There are two ways to do it:
Use a function component: Simply loop through every animated element right in the body of the function and cache the current positions.
Use a class component: Use the getSnapshotBeforeUpdate lifecycle method.
In fact, official React docs recommend using getSnapshotBeforeUpdate “because there may be delays between the “render” phase lifecycles (like render) and “commit” phase lifecycles (like getSnapshotBeforeUpdate and componentDidUpdate).” However, there is no hook counterpart of this method yet. I found that using the body of the function component is fine enough.
Don’t fight the browser
I’ve said it before, but avoid fighting the browser and try to make things happen the way the browser would do it. If we need to animate a simple size change, then consider whether CSS would suffice (e.g. transform: scale()) . I’ve found that FLIP animations are used best where browsers really can’t help:
Animating DOM position change (as we did above)
Sharing layout animations
The second is a more complicated version of the first. There are two DOM elements that act and look as one changing its position (while another is unmounted/hidden). This tricks enables some cool animations. For example, this animation is made with a library I built called react-easy-flip that uses this approach:
CodePen Embed Fallback
Libraries
There are quite a few libraries that make FLIP animations in React easier and abstract the boilerplate. Ones that are currently maintained actively include: react-flip-toolkit and mine, react-easy-flip.
If you do not mind something heavier but capable of more general animations, check out framer-motion. It also does cool shared layout animations! There is a video digging into that library.
Resources and references
Animating the Unanimatable by Josh W. Comeau
Build performant expand & collapse animations by Paul Lewis and Stephen McGruer
The Magic Inside Magic Motion by Matt Perry
Using animate CSS variables from JavaScript, tweeted by @keyframers
Inside look at modern web browser (part 3) by Mariko Kosaka
Building a Complex UI Animation in React, Simply by Alex Holachek
Animating Layouts with the FLIP Technique by David Khourshid
Smooth animations with React Hooks, again by Kirill Vasiltsov
Shared element transition with React Hooks by Jayant Bhawal
The post Everything You Need to Know About FLIP Animations in React appeared first on CSS-Tricks.
Everything You Need to Know About FLIP Animations in React published first on https://deskbysnafu.tumblr.com/
0 notes
Link
Although some of the problems will relate to failures of database integration, many of them suggest that the programmers who are assigned to write programs controlling machine-to-human interaction are writing crap software. They don’t care, and their managers don’t care that they don’t care. We get software written by Wally the slacker rather than Dilbert the conscientious engineer, software that serves up messages that are morphologically, syntactically, or semantically aberrant — and often completely inappropriate to the context. Part of the problem is that linguistics is not yet being applied in the key arena where it could most profitably be appled: the artificial-intelligence business.
They keep telling us that AI will revolutionize our future. Revolution? The software governing our everyday interaction with machines is not even minimally fit for its trivial purposes.
“be appled” (end of the long paragraph) — is that a freudian slip?
17 notes
·
View notes
Text
300+ TOP DJANGO Interview Questions and Answers
Django Interview Questions for freshers experienced :-
1. What is Django? Django is an open source web framework. It is use to develop web application in python programming language. It makes easier to build better web applications quickly and with less code. It has a tag line – “The Web framework for perfectionists with deadlines”. 2. What does Django mean? Django is named after Django Reinhardt, a gypsy Jazz guitarist from 1930 to 1950. He was known as one of the best guitarist of all time. 3. What are the features available in Django. Features available in Django are Admin Interface (CRUD) Templating Form Handling Internationalization Session, user management, role-based permissions ORM (Object-relational mapping) Testing Framework Fantastic Documentation 4. Which architectural pattern does Django Follow. It follows the MVC (Model View Control) architectural pattern. 5. Describe the architecture of Django. Django is based in MVC architecture. It consist the following components: Models: It describes the database schema and data structure. Views: It is a user interface. The view retrieves data from appropriate models and pass it to the template. Templates: It determines how the user sees it. It describes how the data received from the views should be changed or formated for display on the page. Controller: It specifies the Django framework and URL parsing. 6. Why Django should be used for web-development. It allows to divide code module into logical groups to make it flexible to change. To easy the website administration, it provides auto-generated web admin module. It provides pre-packaged API for common user tasks. It enables to define what should be URL for given function. It enables to separate business logic from the HTML. Everything is written in python programming language. 7. How to create a project in Django. To start a project in Django, use the following command . $django-admin.py startproject javatpoint After execcuting the above command, it will create a project that has following directory structure. javatpoint/ manage.py javatpoint/ __init__.py settings.py urls.py wsgi.py 8. Is Django a high level web framework or low level framework? Django is a high level Python’s web framework which was designed for rapid development and clean realistic design. 9. How we can setup static files in Django. There are three main things required to set up static files in Django. Set STATIC_ROOT in setting.py. run manage.py. Set up a Static Files entry on the Python Anywhere web tab. 10. Which foundation manages Django web framework? Django web framework is managed and maintained by an independent and non- profit organization named DSF (Django Software Foundation).
DJANGO Interview Questions 11. Is Django stable? YES, Django is stable. Many companies like Disqus, Instagram, Pintrest and Mozilla has been using Django for many years. 12. How we can use file based sessions. We have to set the SESSION_ENGINE settings to “django.contrib.sessions.backends.file†to use file based session. 13. What are the inheritance styles in Django. In Django, there are three possible inheritance styles: Abstract base classes- It is used, when we only want parent class to hold information that we don’t want to inherit for each child model. Multi-table Inheritance- It is used, when we are sub-classing an existing model and need each model to have its own database table. Proxy Model- We can use this model, when Python level behavior of the model modifies, without changing the model’s fields. 14. What does the Django field class types? The Django field class types specify: The database column type. The default HTML widget to available while rendering a form field. The minimal validation requirements used in Django admin. Automatic generated forms. 15. What is some typical usage of middlewares in Django? Following are the usage of middlewares in Django: Session management. Use authentication. Cross-site request forgery protection. Content Gzipping, etc. 16. What does Django templates consists of? The template is a simple text file. It can create any text-based format like XML, CSV, HTML, etc. A template contains variables that get replaced with values when the template is evaluated and tags (% tag %) that controls the logic of the template. 17. What command line is used to load data into Django? The command line Django-admin.py loaddata is used to load data into Django. 18. What are the advantages of using Django? Django’s stack is loosely coupled with tight cohesion The Django apps make use of very less code Allows quick development of websites Follows the DRY or the Don’t Repeat Yourself Principle which means, one concept or a piece of data should live in just one place Consistent at low as well as high levels Behaviors are not implicitly assumed, they are rather explicitly specified SQL statements are not executed too many times and are optimized internally Can easily drop into raw SQL whenever required Flexibility while using URL’s 19. How do you connect your Django project to the database? Django comes with a default database which is SQLite. To connect your project to this database, use the following commands: python manage.py migrate (migrate command looks at the INSTALLED_APPS settings and creates database tables accordingly) python manage.py makemigrations (tells Django you have created/ changed your models) python manage.py sqlmigrate (sqlmigrate takes the migration names and returns their SQL) 20. What are ‘templates’? Django’s template layer renders the information to be presented to the user in a designer-friendly format. Using templates, you can generate HTML dynamically. The HTML consists of both static as well as dynamic parts of the content. You can have any number of templates depending on the requirement of your project. It is also fine to have none of them. Django has its own template system called the Django template language (DTL). Regardless of the backend, you can also load and render templates using Django’s standard admin. 21. What is the difference between a Project and an App? An app is basically a Web Application that is created to do something for example, a database of employee records. A project, on the other hand, is a collection of apps of some particular website. Therefore, a single project can consist of ‘n’ number of apps and a single app can be in multiple projects. 22. Briefly explain Django Field Class. ‘Field’ is basically an abstract class that actually represents a column in the database table. The Field class, is in turn, a subclass of RegisterLookupMixin. In Django, these fields are used to create database tables (db_type()) which are used to map Python types to the database using get_prep_value() and vice versa using from_db_value() method. Therefore, fields are fundamental pieces in different Django APIs such as models and querysets. 23. How to do you create a Django project? To create a Django project, cd into the directory where you would like to create your project and type the following command: django-admin startproject xyz NOTE: Here, xyz is the name of the project. You can give any name that you desire. 24. What do you mean by context? Context in Django is a dictionary mapping template variable name given to Python objects. This is the conventional name, but you can give any other name of your choice if you wish to do it. 25. What is the significance of manage.py file in Django? The manage.py file is automatically generated whenever you create a project. This is basically a command-line utility that helps you to interact with your Django project in various ways. It does the same things as django-admin but along with that, it also sets the DJANGO_SETTINGS_MODULE environment variable in order to point to your project’s settings. Usually, it is better to make use of manage.py rather than the django-admin in case you are working on a single project. 26. Explain the use of ‘migrate’ command in Django? In Django, migrations are used to propagate changes made to the models. The migrate command is basically used to apply or unapply migrations changes made to the models. This command basically synchronizes the current set of models and migrations with the database state. You can use this command with or without parameters. In case you do not specify any parameter, all apps will have all their migrations running. 27. How to view and filter items from the database? In order to view all the items from your database, you can make use of the ‘all()’ function in your interactive shell as follows: XYZ.objects.all() where XYZ is some class that you have created in your models To filter out some element from your database, you either use the get() method or the filter method as follows: XYZ.objects.filter(pk=1) XYZ.objects.get(id=1) 28. Name some companies that make use of Django? Some of the companies that make use of Django are Instagram, DISCUS, Mozilla Firefox, YouTube, Pinterest, Reddit, etc. Django Questions and Answers Pdf Download Read the full article
0 notes
Text
The new features of Microsoft Dynamics NAV 2018

Microsoft Dynamics 2018 NAV from the stables of MS Dynamics is now deeply integrated with other Microsoft products by connecting them with each other in the same business environment such as Dynamics 365 applications, PowerApps, Flow, Office 365, Power BI and other third party applications.
Microsoft Dynamics as one of the Microsoft business solutions is a complete enterprise resource planning (ERP) software solution especially for mid-sized organizations that is fast to implement, easy to configure and simple to use.
Dynamics NAV 2018 comes with totally new features that include Microsoft’s Cognitive services that use advanced algorithm allowing users to amalgamate artificial intelligence into the applications. In addition, automatic facial, speech and language recognition can be employed in HR contexts and in automating the procedures.
The image analyzer extension uses the powerful image analytics provided by Computer Vision API for Microsoft Cognitive services to detect attributes in the images when items and persons are added. Microsoft Dynamics has been really packaged with new features under the umbrella of Microsoft Dynamics NAV 2018. The following new features have been loaded under the Dynamics NAV 2018 such as-
1. User Tasks
This new feature facilitates in assigning of new tasks to be provided to any user with the tasks highlighted in a queue on the dashboard. The task assigner can set the due date, start date, priority etc for each task.
2. Employee Expense Management
The employee expense management feature allows expenditure to be registered on employee cards with a range of tools that helps in simplifying the process. The feature allows creating journal entries directly to employees in local currency, employee posting group, making payments to the employee in Payment Journal, correct mistakes with unapplied payments etc.
3. IA Image Analyzer
One of the dynamic features provided under Microsoft Dynamics NAV 2018 is the Image Analyzer extension that uses the powerful image analytics provided by the Computer Vision API for Microsoft Cognitive Services to detect attributes to the images that are added to items and contact persons so that one can easily review and assign them. By using the Cortana Intelligence, NAV 2018 can automatically fill up the data based on the images.
4. Power BI Integration
Power BI integration allows users to get reports thereby making them accessible out of regularly used NAV lists. Under this feature, Power BI report could be displayed to highlight specific visualization for business essential information.
This plethora of new features of Microsoft Dynamics NAV 2018 and its functionalities empowers users to be more efficient, productive and be able to scale up their businesses.
0 notes
Text
Social Interactions & Musicals
By: Issa

“All the world’s a stage
And all the men and women merely players.
They have their exits and their entrances;
And one man in his time plays many parts…”
– Shakespeare, As You Like It
In Erving Goffman’s reading, The Presentation of Self in Everyday Life, he compares social interactions to theater – the people in everyday life being actors, the observers being the audience, the roles that people play being the parts, everyday conversations being the dialogue, and whatever clothing happening to be in style being the costuming. This analogy by Goffman is referred to in the reading as somewhat disturbing with several contradictions, but I find that there is a valuable and deeper meaning in this analogy if we decide to look deeper into it.
I would like to focus more on the analogy at the beginning of this reading for my second blog post in terms of my own personal appreciation for musical theater, specifically Broadway shows. I started my appreciation for musical theater during my first few years of high school, and I would like to alter Goffman’s analogy of social interactions a little bit with my knowledge and appreciation for musical theater, while incorporating different parts of the rest of his reading.
In the reading, Goffman talks about how when an individual enters the presence of others, they acquire information about that person or bring into play information that they already have on them. I would relate this to being able to watch a Broadway show. The viewer or audience of the show can either be aware or unaware about the show they’re watching. If they are aware of the show they’re watching know about its background and origin, they can use the information they already have on the show to better understand the play for a better viewing experience. The information that an individual would have on another individual, based on Goffman, helps define a particular situation and enables others to know what they will expect of him or what they will expect of them, and I think that can also be related to musical theater. When you have previous knowledge about a play – its production, actors, setting, background, everything – it somewhat helps you prepare yourself for when you’re about to watch the play, what to expect from the play and how to interpret and react to various aspects of it.
The reading then mentions that “if unacquainted with the individual, observers can garner clues from his conduct/appearance which can allow them either to apply their previous experiences with individuals that are similar or unapply untested stereotypes to them.” This can be applied to watching musical theater because because observers can make assumptions and apply what they learned from watching former Broadway shows when watching newer unfamiliar ones or try approaching and observing the unfamiliar show in a new perspective and mindset. If they are unaware of the show or its background, on the other hand, they can acquire information about the show and its context through watching the show and observing its story and message. The reading also talks about how an individual can also assume from past experience that only individuals of a particular kind are likely to be found in a given social setting. Viewers with prior knowledge of the musical or those who have been to previous musicals can assume what a show would be like based on their awareness and knowledge from past experiences, kind of like a prejudice of the show they’re about to watch.
The reading continues with saying that “the individual will have to act so that he intentionally or unintentionally expresses himself, and the others in turn will have to be impressed in some way by him.” I would relate this to a musical or play in the sense that the show would have its own way of expressing itself to its audience, and no matter what happens, the audience will have to be impressed with what the show presents them with, because that is what society expects the audience (or with the context of social interaction, the observer) to do to show politeness or a form of respect. Following that, the reading says that regardless of the particular objective which the individual has in mind and of his motive for having this objective, it will be in his interests to control the conduct of others, especially their responsive treatment of him. I think I can relate this to a musical or play in the sense that no matter what the play expects its viewers to think or do during/after the play, it will also have an interest in controlling its audience and how they act and respond to the stimulus they are providing them with.
Finally, the reading discusses that when an individual appears in the presence of others, there will usually be some reason for him to mobilize his activity so it will convey an impression to others which it is in his interests to convey. An example they used is that “since a girl’s dorm mates will garner info of her popularity from the calls she receives on the phone, we can suspect that some girls will arrange for calls to be made and Waller’s finding can be anticipated.” I think I would have to relate this to the many competing Broadway shows. When I visited New York earlier this year, I noticed that the advertising of every show was, in a way, trying to impress the public and trying to somewhat have better advertising than its competition. I believe that this is a tactic that musicals use to garner more popularity than their competition – much like the tactic we use social interactions to draw more attention to ourselves and gain more popularity than other people.
With all of this being said, I would like to agree with Shakespeare’s quote in the sense that all of the world can be a stage. With my interpretation of Goffman’s analogy and his beliefs on social interaction, I do believe that our lives can be compared to being onstage or watching a musical, with an audience and a performer interacting with one another in a show.
0 notes
Text
Communicative competence is one of those terms which is so familiar that we no longer consider what it really means. Communicative competence, we rattle off in teacher training courses or to interested outsiders, is our ability to use language in interaction to understand messages and make ourselves understood in turn.
We use the term in opposition to a narrower construct, linguistic competence, used in Chomskyan approaches to the study of language (sometimes call formal or “code” linguistics) to refer to native speakers’ knowledge of formal properties of language, such as whether a given utterance is grammatical.
Code linguistics contrasts with context linguistics (e.g. Widdowson, 2017). Context linguistics arose partly in reaction to Chomsky’s formalist approach, and from the desire among other linguists (in fields like sociolinguistics or the philosophy of language) to include what they saw as a crucial contextual dimension governing language use.
Language teachers might be interested in some online resources on communicative language teaching I have turned up. They offer additional references and activities relevant to practical classroom concerns.
Bateman & Lago Communicative language teaching. Brigham Young
Blyth. Defining communication, Texas at Austin
Whyte, Communicative competence, Nice
In this post, though, I want to reproduce some theoretical discussion of communicative competence, mostly in relation to teaching and learning second and foreign languages. I think it’s important to go back to original sources from time to time to make sure we still know what we’re trying to talk about.
Most of the text is quoted; what is mine is in coloured ink. I read these texts (references at the end):
Hymes 1972
Wilkins 1972
Canale and Swain 1980
Widdowson 2003 (just what I could access on Google books)
Communicative competence (native-speaker)
Hymes 1972
The seminal text by Hymes opposing communicative competence to Chomsky’s linguistic competence, and also responding of necessity to the latter’s competence-performance distinction (more on that here).
1. Whether (and to what degree) something is formally possible; 2. Whether (and to what degree) something is feasible in virtue of the means of implementation available; 3. Whether (and to what degree) something is appropriate (adequate, happy, successful) in relation to a context in which it is used and evaluated; 4. Whether (and to what degree) something is in fact done, actually performed and what its doing entails. (Hymes, 1972: 281, emphasis in original)
Possible This formulation seems to express an essential concern of present linguistic theory for the openness, potentiality, of language, and to generalise it for cultural systems. When systemic possibility is a matter of language, the corresponding term is of course grammaticality.
Feasible The predominant concern here has been for psycholinguistic factors such as memory limitation, perceptual device, effects of properties such as nesting, embedding, branching, and the like. […] With regard to the cultural, one would take into account other features of the body and features of the material environment as well.
Appropriate As we have seen, appropriateness is hardly brought into view in the linguistic theory under discussion, and is lumped under the heading of performance, and, correspondingly, acceptability. […] ‘Appropriateness’ seems to suggest readily the required sense of relation to contextual features.
Performed The study of communicative competence cannot restrict itself to occurrences, but it cannot ignore them. Structure cannot be reduced to probabilities of occurrence, but structural change is not independent of them […] Something may be possible, feasible, and appropriate and not occur. No general term is perhaps needed here, but the point is needed, especially for work that seeks to change what is done.
A syllabus for communicative competence (second/foreign language)
Wilkins 1972
I think this paper is probably more quoted than read; I had certainly never looked it up before. It has some of the hallmarks of behaviourist and structuralist approaches to linguistics you would expect from a text produced in the early 1970s, and you can certainly see how it influenced early versions of the CEFR. It is also of its time in the reaction against traditional grammar-translation methods of language teaching:
What people want to do through language is more important than mastery of language as an unapplied system (Wilkins 1972)
The paper is cited as a precursor or founding text for the notional-functional syllabus. Having seen textbooks taking this approach, I was surprised at the very abstract level of categories Wilkins proposes. Here’s the list without the examples, of which there are plenty (original here).
Notional categories
A. Semantico-grammatical categories
1. Time 2. Quantity 3. Space 4. Matter 5. Case 6. Deixis
B Categories of communicative function
7. Modality 8. Moral discipline and evaluation 9. Suasion 10. Argument 11. Rational enquiry and exposition 12. Personal emotions 13. Emotional relations 14. Interpersonal relations
Grammatical core and situational units
We must now decide whether it is possible simultaneously to provide a firm grammatical basis for subsequent learning and to meet predictable situational needs […] Provided three conditions are accepted, it is perfectly feasible to do the two things at once. 1. one must not expect the language in the learning units to be identical or even nearly identical with the language that would probably occur in the real situations. There are no simple language situations. The most simple situation may demand complex language. 2. forms are presented not solely for their relevance to immediate context of presentation but because they are of general value throughout the language. The occurrence of a new form but therefore be generalised and related to the entire grammatical system of which is it a part 3. Although the learner controls the language he produces outside the learning situation itself, he cannot control the language he hears. In this case provision may well have to be made for his early exposure to a much wider range of language than he will be required to produce.
Communicative competence (second/foreign language) Canale & Swain 1980
This is probably one of the key texts on the notion of communicative competence. There is a lot of discussion of previous writing, including Hymes, Wilkins, and Widdowson.
Guiding principles for a communicative approach
1. Communicative competence is composed minimally of grammatical competence, sociolinguistic competence, and communication strategies, or what we will refer to as strategic competence.
2. A communicative approach must be based on and respond to the learner’s communicative needs.
3. The second language learners must have the opportunity to take part in meaningful communicative interaction with highly competent speakers of the language, ie to respond to genuine communicative needs in realistic second language situations.
4. Particularly at the early stages of second language learning, optimal use must be made of those aspects of communicative competence that the learner has developed through acquisition and use of the native language and that are common to those communication skills required in the second language.
5. The primary objective of a communication-oriented second language programme must be to provide the learner with the information, practice and much of the experience need to meet their communicative needs in the second language.
Theoretical framework
Grammatical competence. This type of competence will be understood to include knowledge of lexical items and of rules of morphology, syntax, sentence-grammar semantics, and phonology.
Sociolinguistic competence. This component is made up of two sets of rules: sociocultural rules of use and rules of discourse. Sociocultural rules of use will specify the ways in which utterances are produced and understood appropriately with respect tot he components of communicative events outlined by Hymes (1967, 1968). The focus of rules of discourse in our framework is the combination of utterances and communicative functions and not the grammatical well-formedness of a single utterance nor the sociocultural appropriateness of a set of propositions and communicative functions in a given context.
Strategic competence. This component will be made up of verbal and non-verbal communication strategies that may be called into action to compensate for breakdowns in communication due to performance variables or to insufficient competence. Such strategies will be of two main types: those that relate primarily to grammatical competence (eg how to paraphrase grammatical forms that one has not mastered or cannot recall momentarily) and those that relate more the sociolinguistic competence (eg various role-playing strategies, how to address strangers when unsure of their social status).
Blyth summarises four strands of communicative competence thus:
grammatical (ability to create grammatically correct utterances),
sociolinguistic (ability to produce sociolinguistically appropriate utterances),
discourse (ability to produce coherent and cohesive utterances), and
strategic (ability to solve communication problems as they arise).
Communicative capability
Widdowson 2003
Going back to Hymes and Halliday, Widdowson proposes the term capability to replace competence and improve on problems he sees with the theoretical underpinnings of the notion of communicative competence. Briefly, he argues that grammatical competence should not be included in the construct of communicative competence because grammar relates to semantics and therefore to the language code, whereas communication involves language use in context, that is, pragmatics. To claim otherwise is to misrepresent the nature of communication, in his words.
Retrieving and adapting underlying knowledge
I introduced the notion of virtual language, by which I meant the potential inherent in the language for innovation beyond what has become established as well-formed or ‘correct’ encodings. In Chapter 10 I suggested that the nonconformities of learner language can be understood as realisations of this virtual language, and that such exploitations of linguistic potential are comparable to those which result in dialectal variation in language spread. The difference is that they do not stabilise: learners are induced into a conformity with actual encodings. But they are evidence of a developing capability for exploiting the virtual resources of the the code, and it is just such a capability, I have argued, that teaching should be designed to develop. Although learners will obviously adjust to the conventions of actual encodings as a course progresses, we should recognise that this process can only be partial and will have to continue after the course is over, as learners learn for themselves how to adjust appropriately to the encoding conventions they encounter. Capability on this account combines two things: the ability to exploit the virtual language, and the readiness to adjust to the conventions of actual encodings as and when required (Widdowson, 2003: 173)
Commmunicative capability as an underlying competence
This capability is essentially a knowledge of how meaning potential encoded in English can be realised as a communicative resources. A consideration of the language that expert uses, typically native speakers, actually produce makes it quite clear that this potential is only very partially realised on different occasions of use. The reason for this is obvious: people use their language pragmatically as a complement to context. The more informative the context, the less explicit the language needs to be. Effective communication depends on the subtle online regulation of the relationship between the two, and this will involve recognizing when it is contextually appropriate not to draw on the semantic resources as your disposal. But the crucial point to be made is that the resource is available when you need it. so although, for example, the analysis of actual conversation will reveal that people interact by means of elliptical utterance, with phrasal fragments of talk, these can be extended, if need be, by more explicit linguistic means. It is, of course, true that actual language behaviour does not consist of well-formed syntactic expressions, quite simply because they are surplus to requirement, but speakers nevertheless know what they are, and can draw on this knowledge as resource in cases where it turns out that they are not surplus to requirement after all. The language that people actually produce as observable behaviour presupposes a vast knowledge of language as unexploited potential. If learners of a language are to be come capable in a language, they clearly cannot just learn the patterns of what actually occurs as behaviour, but must also have a knowledge of the back-up linguistic resource that this behaviour presupposes. (Widdowson, 2003: 177)
Communicative capability > linguistic competence > explicit grammatical knowledge
There is more to linguistic competence than a knowledge of grammar, and more to language capability than linguistic competence. And it is capability, I have suggested, which is ‘at the core of language learning.’ The discussion in this book leads to the conclusion that it is the meaning potential of English that is ‘the most salient features to teach, and to test.’ This is the E of subject TESOL. Contriving ways of getting learners to engage with it and to appropriate it is, I would argue, what the subject is all about. (Widdowson, 2003: 174).
No conclusion, just food for thought. But with a little packaging.

References
Bateman, B., & Lago, B. Communicative language teaching. Methods of Language Teaching. 2008?
Blyth, C. Defining communication, in Speaking. Foreign Language Teaching Methods, COERLL. 2010?
Canale, M., & Swain, M. (1980). Theoretical bases of communicative approaches to second language teaching and testing. Applied linguistics, 1, 1. PDF
Hymes, D. 1972. On communicative competence. In J.B. Pride and J. Holmes (eds.). Sociolinguistics. Harmondsworth: Penguin. PDF
Widdowson, H. (2007). Un‐applied linguistics and communicative language teaching. International Journal of Applied Linguistics, 17(2), 214-220.
Widdowson, H. (2003). Defining issues in English language teaching. Oxford: Oxford University Press.
Wilkins, D. A. (1973). The Linguistic and Situational Content of the Common Core in a Unit/Credit System. Systems development in adult language learning. Strasbourg: Council of Europe. PDF
What is communicative competence? Communicative competence is one of those terms which is so familiar that we no longer consider what it really means.
0 notes
Text
Chat. It's over for me.
The Mutuals. They're converting me to the Dark Side.
12 notes
·
View notes
Text
Everything You Need to Know About FLIP Animations in React
With a very recent Safari update, Web Animations API (WAAPI) is now supported without a flag in all modern browsers (except IE). Here’s a handy Pen where you can check which features your browser supports. The WAAPI is a nice way to do animation (that needs to be done in JavaScript) because it’s native — meaning it requires no additional libraries to work. If you’re completely new to WAAPI, here’s a very good introduction by Dan Wilson.
One of the most efficient approaches to animation is FLIP. FLIP requires a bit of JavaScript to do its thing.
Let’s take a look at the intersection of using the WAAPI, FLIP, and integrating all that into React. But we’ll start without React first, then get to that.
FLIP and WAAPI
FLIP animations are made much easier by the WAAPI!
Quick refresher on FLIP: The big idea is that you position the element where you want it to end up first. Next, apply transforms to move it to the starting position. Then unapply those transforms.
Animating transforms is super efficient, thus FLIP is super efficient. Before WAAPI, we had to directly manipulate element’s styles to set transforms and wait for the next frame to unset/invert it:
// FLIP Before the WAAPI el.style.transform = `translateY(200px)`;
requestAnimationFrame(() => { el.style.transform = ''; });
A lot of libraries are built upon this approach. However, there are several problems with this:
Everything feels like a huge hack.
It is extremely difficult to reverse the FLIP animation. While CSS transforms are reversed “for free” once a class is removed, this is not the case here. Starting a new FLIP while a previous one is running can cause glitches. Reversing requires parsing a transform matrix with getComputedStyles and using it to calculate the current dimensions before setting a new animation.
Advanced animations are close to impossible. For example, to prevent distorting a scaled parent’s children, we need to have access to current scale value each frame. This can only be done by parsing the transform matrix.
There’s lots of browser gotchas. For example, sometimes getting a FLIP animation to work flawlessly in Firefox requires calling requestAnimationFrame twice:
requestAnimationFrame(() => { requestAnimationFrame(() => { el.style.transform = ''; }); });
We get none of these problems when WAAPI is used. Reversing can be painlessly done with the reverse function.The counter-scaling of children is also possible. And when there is a bug, it is easy to pinpoint the exact culprit since we’re only working with simple functions, like animate and reverse, rather than combing through things like the requestAnimationFrame approach.
Here’s the outline of the WAAPI version:
el.classList.toggle('someclass'); const keyframes = /* Calculate the size/position diff */; el.animate(keyframes, 2000);
FLIP and React
To understand how FLIP animations work in React, it is important to know how and, most importantly, why they work in plain JavaScript. Recall the anatomy of a FLIP animation:
Everything that has a purple background needs to happen before the “paint” step of rendering. Otherwise, we would see a flash of new styles for a moment which is not good. Things get a little bit more complicated in React since all DOM updates are done for us.
The magic of FLIP animations is that an element is transformed before the browser has a chance to paint. So how do we know the “before paint” moment in React?
Meet the useLayoutEffect hook. If you even wondered what is for… this is it! Anything we pass in this callback happens synchronously after DOM updates but before paint. In other words, this is a great place to set up a FLIP!
Let us do something the FLIP technique is very good for: animating the DOM position. There’s nothing CSS can do if we want to animate how an element moves from one DOM position to another. (Imagine completing a task in a to-do list and moving it to the list of “completed” tasks like when you click on items in the Pen below.)
CodePen Embed Fallback
Let’s look at the simplest example. Clicking on any of the two squares in the following Pen makes them swap positions. Without FLIP, it would happen instantly.
CodePen Embed Fallback
There’s a lot going on there. Notice how all work happens inside lifecycle hook callbacks: useEffect and useLayoutEffect. What makes it a little bit confusing is that the timeline of our FLIP animation is not obvious from code alone since it happens across two React renders. Here’s the anatomy of a React FLIP animation to show the different order of operations:
Although useEffect always runs after useLayoutEffect and after browser paint, it is important that we cache the element’s position and size after the first render. We won’t get a chance to do it on second render because useLayoutEffect is run after all DOM updates. But the procedure is essentially the same as with vanilla FLIP animations.
Caveats
Like most things, there are some caveats to consider when working with FLIP in React.
Keep it under 100ms
A FLIP animation is calculation. Calculation takes time and before you can show that smooth 60fps transform you need to do quite some work. People won’t notice a delay if it is under 100ms, so make sure everything is below that. The Performance tab in DevTools is a good place to check that.
Unnecessary renders
We can’t use useState for caching size, positions and animation objects because every setState will cause an unnecessary render and slow down the app. It can even cause bugs in the worst of cases. Try using useRef instead and think of it as an object that can be mutated without rendering anything.
Layout thrashing
Avoid repeatedly triggering browser layout. In the context of FLIP animations, that means avoid looping through elements and reading their position with getBoundingClientRect, then immediately animating them with animate. Batch “reads” and “writes” whenever possible. This will allow for extremely smooth animations.
Animation canceling
Try randomly clicking on the squares in the earlier demo while they move, then again after they stop. You will see glitches. In real life, users will interact with elements while they move, so it’s worth making sure they are canceled, paused, and updated smoothly.
However, not all animations can be reversed with reverse. Sometimes, we want them to stop and then move to a new position (like when randomly shuffling a list of elements). In this case, we need to:
obtain a size/position of a moving element
finish the current animation
calculate the new size and position differences
start a new animation
In React, this can be harder than it seems. I wasted a lot of time struggling with it. The current animation object must be cached. A good way to do it is to create a Map so to get the animation by an ID. Then, we need to obtain the size and position of the moving element. There are two ways to do it:
Use a function component: Simply loop through every animated element right in the body of the function and cache the current positions.
Use a class component: Use the getSnapshotBeforeUpdate lifecycle method.
In fact, official React docs recommend using getSnapshotBeforeUpdate “because there may be delays between the “render” phase lifecycles (like render) and “commit” phase lifecycles (like getSnapshotBeforeUpdate and componentDidUpdate).” However, there is no hook counterpart of this method yet. I found that using the body of the function component is fine enough.
Don’t fight the browser
I’ve said it before, but avoid fighting the browser and try to make things happen the way the browser would do it. If we need to animate a simple size change, then consider whether CSS would suffice (e.g. transform: scale()) . I’ve found that FLIP animations are used best where browsers really can’t help:
Animating DOM position change (as we did above)
Sharing layout animations
The second is a more complicated version of the first. There are two DOM elements that act and look as one changing its position (while another is unmounted/hidden). This tricks enables some cool animations. For example, this animation is made with a library I built called react-easy-flip that uses this approach:
CodePen Embed Fallback
Libraries
There are quite a few libraries that make FLIP animations in React easier and abstract the boilerplate. Ones that are currently maintained actively include: react-flip-toolkit and mine, react-easy-flip.
If you do not mind something heavier but capable of more general animations, check out framer-motion. It also does cool shared layout animations! There is a video digging into that library.
Resources and references
Animating the Unanimatable by Josh W. Comeau
Build performant expand & collapse animations by Paul Lewis and Stephen McGruer
The Magic Inside Magic Motion by Matt Perry
Using animate CSS variables from JavaScript, tweeted by @keyframers
Inside look at modern web browser (part 3) by Mariko Kosaka
Building a Complex UI Animation in React, Simply by Alex Holachek
Animating Layouts with the FLIP Technique by David Khourshid
Smooth animations with React Hooks, again by Kirill Vasiltsov
Shared element transition with React Hooks by Jayant Bhawal
The post Everything You Need to Know About FLIP Animations in React appeared first on CSS-Tricks.
Everything You Need to Know About FLIP Animations in React published first on https://deskbysnafu.tumblr.com/
0 notes