Mojito is an environment agnostic, Model-View-Controller (MVC) web application framework. It was designed by Yahoo. == Features == Mojito supports agile development of web applications. Mojito has built-in support for unit testing, Internationalization, syntax and coding convention checks. Both server and client components are written in JavaScript. Mojito allows developers designing web applications to leverage the utilities of both configuration and MVC framework. Mojito is capable of running on both JavaScript-enabled web browsers and servers using Node.js because they both utilize JavaScript. Mojito applications mainly consist of two components: JSON Configuration files: these define relationships between code components, assets, routing paths, and framework defaults and are available at the application and mojit level. Directories: these reflect MVC architecture and are used to separate resources such as assets, libraries, middleware, etc. == Architecture == In Mojito, both server and "client" side scripting is done in JavaScript, allowing it to run on both client and server thereby breaking the "front-end back-end barrier." It has both client and server runtimes. === Server runtime === This block houses operations needed by server side components. Services include: Routing rules, HTTP Server, config loader and disk-based loader. === Client runtime === This block houses operations called upon while running client sides components. Services include local storage/cache access and JSON based /URL based loader === Core === Core function can be accessed on client or server. Services include Registry, Dispatcher, Front controller, Resource store. === Container === mojit object comes into the picture. This container also include the services used by mojits. API and Mojito services are the blocks which caters to services needed for execution of mojits. === API (Action Context) === Mojito services are a customizable service block. It offers mojits a range of services which might be needed by mojit to carry out certain actions. These services can be availed at both client and server side. Reusable services can be created and aggregated to the core here. == Mojits == Mojits are the modules of a Mojito application. An application consists of one or more mojits. A mojit encompasses a Model, Views and a Controller defined by JSON configuration files. It includes a View factory where views are created according to the model and a View cache that holds frequently requested views to aid performance. === Application Architecture === A Mojito application is a set of mojits facilitated by configurable JSON files which define the code for model, view and controller. This MVC structure works with API block and Mojito services, and can be deployed at both client and server side. While the application is deployed at client side, it can call server-side modules using binders. Binders are mojit codes that let mojits request services from each other. Mojit Proxy acts as an intermediary between binders and mojit's API (application context) block and other mojits. Controllers are command-issuing units of mojits. Models mirror the core logic and hold data. Applications can have multiple models. They can be centrally accessed from controllers. View files are created in accordance with controllers and models, and are marked-up before they are sent to users as output. === Application Directory Structure === Directory structure of a Mojito application with one mojit: [mojito_app]/ |-- application.json |-- assets/ | `-- favicon.icon |-- yui_modules/ | `-- .{affinity}.js |-- index.js |-- mojits/ | `-- [mojit_name | |-- assets/ | |-- yui_modules/ | | `-- .{affinity}.js | |-- binders/ | | `-- {view_name}.js | |-- controller.{affinity}.js | |-- defaults.json | |-- definition.json | |-- lang/ | | `-- {mojit_name}_{lang}.js | |-- models/ | | `-- {model_name}.{affinity}.js | |-- tests/ | | |-- yui_modules/ | | | `-- {module_name}.{affinity}-tests.js | | |-- controller.{affinity}-tests.js | | `-- models/ | | `-- {model_name}.{affinity}-tests.js | `-- views/ | |-- {view_name}.{view_engine}.html | `-- {view_name}.{device}.{view_engine}.html |-- package.json |-- routes.json (deprecated) |-- server.js == Model, View and Controller == The Model hosts data, which is accessed by the Controller and presented to the View. Controller also handles any client requests for data, in which case controller fetches data from the model and passes the data to the client. All three components are clustered in the mojit. Mojits are physically illustrated by directory structures and an application can have multiple mojits. Every mojit can have one controller, one or more views and zero or more models. === Model === The model it represents the application data and is independent of view or controller. Model contains code to manipulate the data. They are found in the models directory of each mojit. Functions include: Storing information for access by controller. Validation and error handling. Metadata required by the view === Controller === The controller acts like a connecting agent between model and view. It supplies input to Model and after fetching data from model, passes it to View. Functions include Redirection Monitors authentication Web safety Encoding === View === The view acts as a presentation filter by highlighting some model attributes and suppressing others. A view can be understood as a visual permutation of the model. The view renders data received from controller and displays it to the end user.
AFNLP
AFNLP (Asian Federation of Natural Language Processing Associations) is the organization for coordinating the natural language processing related activities and events in the Asia-Pacific region. == Foundation == AFNLP was founded on 4 October 2000. == Member Associations == ALTA – Australasian Language Technology Association ANLP Japan Association of Natural Language Processing ROCLING Taiwan ROC Computational Linguistics Society SIG-KLC Korea SIG-Korean Language Computing of Korea Information Science Society == Existing Asian Initiatives == NLPRS: Natural Language Processing Pacific Rim Symposium IRAL: International Workshop on Information Retrieval with Asian Languages PACLING: Pacific Association for Computational Linguistics PACLIC: Pacific Asia Conference on Language, Information and Computation PRICAI: Pacific Rim International Conference on AI ICCPOL: International Conference on Computer Processing of Oriental Languages ROCLING: Research on Computational Linguistics Conference == Conferences == IJCNLP-04: The 1st International Joint Conference on Natural Language Processing in Hainan Island, China IJCNLP-05: The 2nd International Joint Conference on Natural Language Processing in Jeju Island, Korea IJCNLP-08: The 3rd International Joint Conference on Natural Language Processing in Hyderabad, India ACL-IJCNLP-2009: Joint Conference of the 47th Annual Meeting of the Association for Computational Linguistics (ACL) and 4th International Joint Conference on Natural Language Processing (IJCNLP) in Singapore IJNCLP-11: The 5th International Joint Conference on Natural Language Processing in Chiang Mai, Thailand
GITEX AI Europe
GITEX AI Europe is an annual technology trade show and conference held in Berlin, Germany, as part of GITEX GLOBAL. The event focuses on the European technology market, specifically in the sectors of artificial intelligence (AI), cybersecurity, quantum computing, and digital infrastructure. The event is organized by Kaoun International GmbH, the international arm of the Dubai World Trade Centre (DWTC), in partnership with Messe Berlin. == History == The establishment of GITEX AI Europe was announced in 2023 as part of a strategic move to bring the GITEX brand to the European market. The inaugural edition took place from May 21 to 23, 2025, at the Messe Berlin exhibition grounds. The launch was supported by the Berlin Senate and the German Federal Ministry for Economic Affairs and Climate Action. The first edition of GITEX AI Europe in 2025 featured 21,650 attendees, 1,434 exhibiting companies, and 755 startups, with 513 speakers representing 125 countries. The next edition is scheduled for June 30 – July 1, 2026 in Berlin. == Program == The event consists of an exhibition floor for corporate displays, several conference stages for keynote speeches, and specialized sub-events. The conference program includes tracks such as "AI Stack Sovereignty," "Cyber Regulation & Trust Convergence," and "Institutional Growth Capital." GITEX AI Europe incorporates brands under its umbrella: AI Everything Europe: Focused on the development and application of generative AI and machine learning. North Star Europe: A dedicated program for startups and venture capital, featuring the "Supernova Challenge" pitch competition. GISEC Europe: A cybersecurity forum discussing regulation and infrastructure defense. GITEX Quantum Expo: Focused on the commercialization of quantum computing. Institutional partners for the event include the German Federal Ministry for Economic Affairs and Climate Action, the European Innovation Council (EIC), the International Telecommunication Union (ITU), Bitkom, and Digital Dubai.
Oxa
Oxa (formerly Oxbotica) is an autonomous vehicle software company, headquartered in Oxfordshire, England, and founded by Paul Newman and Ingmar Posner. == History == In 2013, Newman and Posner led the RobotCar UK project as part of Oxford University's Department of Engineering Science Mobile Robotics Group. RobotCar became the first autonomous vehicle on UK roads. In 2014, the pair used the newly developed technology to found Oxbotica. Oxbotica has raised over $18 million to date and is backed by the IP Group, Parkwalk Advisors and AXA XL. In 2018, Uber's former EMEA business head, Fraser Robinson, was appointed to the board of directors. In May 2019, Ozgur Tohumcu replaced Dr Graeme Smith as Oxbotica's CEO. Also in 2019, the company opened an office in Toronto, Canada. In January 2021, Oxbotica announced it had raised $47 million in a Series B round. In August 2021, the company achieved a safety landmark as the first company to have its autonomy safety case assessed by BSI (British Standards Institution) against the requirements of the UK Code of Practice 2019, PAS 1881:2020 and PAS 1883:2020, certifying the safety conformity of its autonomous vehicle trials and testing. The assessment was completed as part of Project Endeavour, the UK's first multi-city demonstration of autonomous vehicle services and capability. In December 2021, Gavin Jackson was named CEO. In January 2023, the company raised $140 million in a Series C round. In May 2023, the company changed its name to Oxa. Oxa raised $103 million (£77 million) in March 2026, including $50 million from the UK National Wealth Fund. Nvidia's venture capital division, NVentures, also invested in the Series D funding round, along with existing Oxa shareholders IP Group, Australian pension fund Hostplus, and BP Ventures, a division of the UK oil company. == Technology == Oxa designs software and hardware for the conversion of industrial vehicles into autonomous ones. Its full stack, end-to-end Universal Autonomy software is both vehicle and platform-agnostic, with no dependence on external infrastructure such as GPS. It can be deployed in any environment and on any terrain. In addition to underground uses, the technology is also useful in natural canyons and forests, where GPS signals are weak or non-existent, but also in "urban canyons" — cities with tall buildings that obstruct GPS signals for proper navigation. == Public deployments == The LUTZ Pathfinder pod had its first public demonstration in February 2015 in Milton Keynes. The Government-funded project was designed to ensure that autonomous vehicles would comply with the Highway Code. The pod featured autonomous control software from Oxbotica, including 19 sensors, cameras, radar and Lidar. As part of the GATEway Project in 2017, Oxbotica trialled seven autonomous shuttle buses in Greenwich, navigating a two-mile riverside path near London's O2 Arena on a route that is also used by pedestrians and cyclists. Oxbotica ran the UK's first trial of autonomous grocery deliveries that year, with British online supermarket Ocado in London, as the next step in the GATEway Project. In 2018, Oxbotica deployed its autonomous vehicle software at London's Gatwick Airport, which subsequently became the first airport in the world to trial an autonomous shuttle service. The electric-powered vehicles transported staff via airside roads between the airport's North and South terminals. An airside trial of Oxbotica's autonomous driving technology was then successfully completed at Heathrow Airport in partnership with IAG Cargo, the first airside trial of an autonomous vehicle at a UK airport. The Oxbotica-designed CargoPod ran autonomously along a cargo route around the airside perimeter for three weeks. As part of the UK Centre for Connected and Autonomous Vehicles-funded DRIVEN project, Oxbotica is developing and deploying a fleet of Ford Fusion autonomous vehicles running in both London and Oxford on public roads, and in conjunction with its consortium partners, running real-time insurance. AXA XL is partnering with Oxbotica on the development of smart insurance products using Oxbotica's autonomy technology to improve road safety. In 2018, Oxbotica announced a partnership with London private taxi firm Addison Lee to develop and deploy autonomous taxis in the city of London by 2021. A 3D street mapping exercise was conducted in London's Canary Wharf. In 2019, Oxbotica deployed a fleet of their autonomous technology within Ford Mondeo cars on public roads in Stratford, London to test their use in city environments. The £13.2 million project is in collaboration with The DRIVEN Project to develop self-driving cars. == Awards == 2019 Royal Academy of Engineering Silver Medal - Paul Newman 2017 Financial Times ArcelorMittal Boldness in Business Award Barclays Award for Innovation 2016 Frost & Sullivan Award, Technology Leadership for Autonomous Driving Software
GITEX AI Europe
GITEX AI Europe is an annual technology trade show and conference held in Berlin, Germany, as part of GITEX GLOBAL. The event focuses on the European technology market, specifically in the sectors of artificial intelligence (AI), cybersecurity, quantum computing, and digital infrastructure. The event is organized by Kaoun International GmbH, the international arm of the Dubai World Trade Centre (DWTC), in partnership with Messe Berlin. == History == The establishment of GITEX AI Europe was announced in 2023 as part of a strategic move to bring the GITEX brand to the European market. The inaugural edition took place from May 21 to 23, 2025, at the Messe Berlin exhibition grounds. The launch was supported by the Berlin Senate and the German Federal Ministry for Economic Affairs and Climate Action. The first edition of GITEX AI Europe in 2025 featured 21,650 attendees, 1,434 exhibiting companies, and 755 startups, with 513 speakers representing 125 countries. The next edition is scheduled for June 30 – July 1, 2026 in Berlin. == Program == The event consists of an exhibition floor for corporate displays, several conference stages for keynote speeches, and specialized sub-events. The conference program includes tracks such as "AI Stack Sovereignty," "Cyber Regulation & Trust Convergence," and "Institutional Growth Capital." GITEX AI Europe incorporates brands under its umbrella: AI Everything Europe: Focused on the development and application of generative AI and machine learning. North Star Europe: A dedicated program for startups and venture capital, featuring the "Supernova Challenge" pitch competition. GISEC Europe: A cybersecurity forum discussing regulation and infrastructure defense. GITEX Quantum Expo: Focused on the commercialization of quantum computing. Institutional partners for the event include the German Federal Ministry for Economic Affairs and Climate Action, the European Innovation Council (EIC), the International Telecommunication Union (ITU), Bitkom, and Digital Dubai.
Kernel (image processing)
In image processing, a kernel, convolution matrix, or mask is a small matrix used for blurring, sharpening, embossing, edge detection, and more. This is accomplished by doing a convolution between the kernel and an image. Or more simply, when each pixel in the output image is a function of the nearby pixels (including itself) in the input image, the kernel is that function. == Details == The general expression of a convolution is g x , y = ω ∗ f x , y = ∑ i = − a a ∑ j = − b b ω i , j f x − i , y − j , {\displaystyle g_{x,y}=\omega f_{x,y}=\sum _{i=-a}^{a}{\sum _{j=-b}^{b}{\omega _{i,j}f_{x-i,y-j}}},} where g ( x , y ) {\displaystyle g(x,y)} is the filtered image, f ( x , y ) {\displaystyle f(x,y)} is the original image, ω {\displaystyle \omega } is the filter kernel. Every element of the filter kernel is considered by − a ≤ i ≤ a {\displaystyle -a\leq i\leq a} and − b ≤ j ≤ b {\displaystyle -b\leq j\leq b} . Depending on the element values, a kernel can cause a wide range of effects: The above are just a few examples of effects achievable by convolving kernels and images. === Origin === The origin is the position of the kernel which is above (conceptually) the current output pixel. This could be outside of the actual kernel, though usually it corresponds to one of the kernel elements. For a symmetric kernel, the origin is usually the center element. == Convolution == Convolution is the process of adding each element of the image to its local neighbors, weighted by the kernel. This is related to a form of mathematical convolution. The matrix operation being performed—convolution—is not traditional matrix multiplication, despite being similarly denoted by . For example, if we have two three-by-three matrices, the first a kernel, and the second an image piece, convolution is the process of flipping both the rows and columns of the kernel and multiplying locally similar entries and summing. The element at coordinates [2, 2] (that is, the central element) of the resulting image would be a weighted combination of all the entries of the image matrix, with weights given by the kernel: ( [ a b c d e f g h i ] ∗ [ 1 2 3 4 5 6 7 8 9 ] ) [ 2 , 2 ] = {\displaystyle \left({\begin{bmatrix}a&b&c\\d&e&f\\g&h&i\end{bmatrix}}{\begin{bmatrix}1&2&3\\4&5&6\\7&8&9\end{bmatrix}}\right)[2,2]=} ( i ⋅ 1 ) + ( h ⋅ 2 ) + ( g ⋅ 3 ) + ( f ⋅ 4 ) + ( e ⋅ 5 ) + ( d ⋅ 6 ) + ( c ⋅ 7 ) + ( b ⋅ 8 ) + ( a ⋅ 9 ) . {\displaystyle (i\cdot 1)+(h\cdot 2)+(g\cdot 3)+(f\cdot 4)+(e\cdot 5)+(d\cdot 6)+(c\cdot 7)+(b\cdot 8)+(a\cdot 9).} The other entries would be similarly weighted, where we position the center of the kernel on each of the boundary points of the image, and compute a weighted sum. The values of a given pixel in the output image are calculated by multiplying each kernel value by the corresponding input image pixel values. This can be described algorithmically with the following pseudo-code: for each image row in input image: for each pixel in image row: set accumulator to zero for each kernel row in kernel: for each element in kernel row: if element position corresponding to pixel position then multiply element value corresponding to pixel value add result to accumulator endif set output image pixel to accumulator corresponding input image pixels are found relative to the kernel's origin. If the kernel is symmetric then place the center (origin) of the kernel on the current pixel. The kernel will overlap the neighboring pixels around the origin. Each kernel element should be multiplied with the pixel value it overlaps with and all of the obtained values should be summed. This resultant sum will be the new value for the current pixel currently overlapped with the center of the kernel. If the kernel is not symmetric, it has to be flipped both around its horizontal and vertical axis before calculating the convolution as above. The general form for matrix convolution is [ x 11 x 12 ⋯ x 1 n x 21 x 22 ⋯ x 2 n ⋮ ⋮ ⋱ ⋮ x m 1 x m 2 ⋯ x m n ] ∗ [ y 11 y 12 ⋯ y 1 n y 21 y 22 ⋯ y 2 n ⋮ ⋮ ⋱ ⋮ y m 1 y m 2 ⋯ y m n ] = ∑ i = 0 m − 1 ∑ j = 0 n − 1 x ( m − i ) ( n − j ) y ( 1 + i ) ( 1 + j ) {\displaystyle {\begin{bmatrix}x_{11}&x_{12}&\cdots &x_{1n}\\x_{21}&x_{22}&\cdots &x_{2n}\\\vdots &\vdots &\ddots &\vdots \\x_{m1}&x_{m2}&\cdots &x_{mn}\\\end{bmatrix}}{\begin{bmatrix}y_{11}&y_{12}&\cdots &y_{1n}\\y_{21}&y_{22}&\cdots &y_{2n}\\\vdots &\vdots &\ddots &\vdots \\y_{m1}&y_{m2}&\cdots &y_{mn}\\\end{bmatrix}}=\sum _{i=0}^{m-1}\sum _{j=0}^{n-1}x_{(m-i)(n-j)}y_{(1+i)(1+j)}} === Edge handling === Kernel convolution usually requires values from pixels outside of the image boundaries. There are a variety of methods for handling image edges. Extend The nearest border pixels are conceptually extended as far as necessary to provide values for the convolution. Corner pixels are extended in 90° wedges. Other edge pixels are extended in lines. Wrap The image is conceptually wrapped (or tiled) and values are taken from the opposite edge or corner. Mirror The image is conceptually mirrored at the edges. For example, attempting to read a pixel 3 units outside an edge reads one 3 units inside the edge instead. Crop / Avoid overlap Any pixel in the output image which would require values from beyond the edge is skipped. This method can result in the output image being slightly smaller, with the edges having been cropped. Move kernel so that values from outside of image is never required. Machine learning mainly uses this approach. Example: Kernel size 10x10, image size 32x32, result image is 23x23. Kernel Crop Any pixel in the kernel that extends past the input image isn't used and the normalizing is adjusted to compensate. Constant Use constant value for pixels outside of image. Usually black or sometimes gray is used. Generally this depends on application. === Normalization === Normalization is defined as the division of each element in the kernel by the sum of all kernel elements, so that the sum of the elements of a normalized kernel is unity. This will ensure the average pixel in the modified image is as bright as the average pixel in the original image. === Optimization === Fast convolution algorithms include: separable convolution ==== Separable convolution ==== 2D convolution with an M × N kernel requires M × N multiplications for each sample (pixel). If the kernel is separable, then the computation can be reduced to M + N multiplications. Using separable convolutions can significantly decrease the computation by doing 1D convolution twice instead of one 2D convolution. === Implementation === Here a concrete convolution implementation done with the GLSL shading language :
Clanker
Clanker is a derogatory term for robots and artificial intelligence (AI) software. The term has been used in Star Wars media, first appearing in the franchise's 2005 video game Star Wars: Republic Commando. In 2025, the term became widely used to express hatred or distaste for machines ranging from delivery robots to large language models. This trend has been attributed to anxiety around the negative societal effects of AI. == In science fiction == The term has been previously used in science fiction literature, first appearing in a 1958 article by William Tenn in which he uses it to describe robots from science fiction films like Metropolis. The Star Wars franchise began using the term as a slur against droids in the 2005 video game Star Wars: Republic Commando before being prominently used in the animated series Star Wars: The Clone Wars, which follows a galaxy-wide war between the Galactic Republic's clone troopers and the Confederacy of Independent Systems' battle droids. In Star Wars media, robots—more commonly known as droids—are routinely depicted as the subjects of discrimination. For example, in the original Star Wars film, C-3PO and R2-D2 are abducted by Jawas and sold to the family of Luke Skywalker. When visiting a cantina in Mos Eisley, both droids are refused service by the bartender, who remarks that "We don't serve their kind." In Star Wars lore, the term clanker had entered use by the time of the franchise's High Republic Era and became prominent during the Clone Wars, in which clone troopers regularly use the phrase against battle droids. == AI backlash == The growing popularity of the term clanker reflects an increase in direct contact between people and AI systems. On sidewalks, delivery robots impede mobility and cause safety issues. In digital spaces, cybersecurity experts have raised concerns about the rising number of bots online, which now make up a large portion of internet traffic. A 2025 report estimated that about one in five social media accounts are automated. The term is also a reaction to AI advocacy from industrialists like Elon Musk and Sam Altman, who have championed the integration of AI into nearly every aspect of modern life. This includes efforts by major companies and startups alike, such as Amazon's development of humanoid robots to replace human workers in service industries. Such initiatives have further fueled public skepticism, reinforcing the association of clanker with unease over automation and the displacement of human roles. A global survey conducted by the research firm Gartner in December 2023 found that 64% of customers would prefer companies to avoid using AI in customer service, with another 53% stating they would consider switching to a different company if they discovered AI was handling their service interactions. Another report by Ernst & Young, published in July 2025, found that 42% of employees across Europe are worried that the use of AI in the workplace may threaten their employment. Criticism has also been directed at the technology itself. Some of the backlash stems from concerns about the resource consumption of AI systems, their frequent reliance on copyrighted material without consent, and questions about the intentions of the corporations behind them. There are also concerns about the potential cognitive effects of relying heavily on AI. A study, authored by researchers at Microsoft and Carnegie Mellon University, warns that regular dependence on AI may leave users mentally unprepared for real-world problem solving, likening the effect to cognitive atrophy. In June 2025, United States Senator Ruben Gallego tweeted that his "new bill makes sure you don't have to talk to a clanker if you don't want to", referring to proposed legislation that would require call centers to disclose their use of automated customer service agents to callers in the United States and offer the option to switch to a human representative. == Analysis == Linguist Adam Aleksic has described clanker as an evolution of racial slurs that anthropomorphize robotic systems. Internet memes incorporating the term often reference historical discrimination against marginalized groups such as African Americans. Based on the work of linguist Geoffrey Nunberg, American news website Axios has argued that clanker is merely a derogatory word, rather than a slur, because it does not perpetuate social inequities. NPR has noted the irony that the word robot was coined by Karel Čapek for his 1920 science-fiction play R.U.R. as a similar criticism of industrialization forcing workers to become devoid of their humanity. Aleksic has observed that robot can be further traced to the Proto-Slavic noun orbъ, which means 'slave'. While other science fiction media include pejoratives for androids and robots, such as skinjob and toaster from the Blade Runner and Battlestar Galactica franchises, respectively, clanker is believed to have gained popularity because its usage is intuitive and flexible. Whereas AI slop describes low-quality output from artificial intelligence, clanker belittles the underlying computer systems.