It looks like Meta is preparing to add displays to its popular line of Ray-Ban smart glasses, according to a report by Financial Times. These screens could show up in a future iteration of the device as early as next year. The likely release window is the second half of 2025.
According to folks familiar with Meta’s plans, the screens will be on the smaller side and will likely be used to display notifications or responses from Meta’s AI virtual assistant. It’s highly unlikely that the company is planning on making this a full mixed-reality device just yet.
For that, Meta has the recently-unveiled Orion AR glasses, which are still several years out. The same report indicates that the positive response to the Orion glasses has likely accelerated development and possibly ensured a commercial release. It was uncertain if those glasses would remain an in-house prototype.
The Ray-Ban smart glasses have been a surprise hit for Meta, and it’s easy to see why. They look great and perform admirably. The current model includes in-ear speakers, cameras, microphones and access to Meta’s virtual assistant.
I quite enjoy the simplicity of the current design, particularly when taking photos and videos. My hope is that screens do not get in the way of that simplicity and that they don’t come at the expense of, say, improvements to the camera system.
Ray-Ban Meta glasses, after all, are the perfect device for snapping quick photos of a pet. Have you ever tried to will an animal to keep still so you can dig your phone out of a bag to take a photo? Those darned cuties never do. The Ray-Bans solve that problem.
This article originally appeared on Engadget at https://www.engadget.com/ar-vr/meta-is-reportedly-adding-displays-to-its-ray-ban-smart-glasses-162634427.html?src=rss
There are way too many online services and subscriptions to keep track of these days, but the flip side is there’s a tool for just about everything. Time is just about up to get a physical gift shipped in time for the holidays, so below we’ve pulled together some of our favorite digital gifts and subscriptions, including time-tested video, music and gaming services as well as tools to clear your mental space and learn new skills. There are also a few subscriptions that provide ongoing, IRL deliveries, if you think your giftee will appreciate the nostalgic charm of a physical object.
Gaming subscriptions
Game consoles are certainly among the most popular gift ideas this time of year. If you know someone who’s been so good that they’re getting a new Nintendo Switch, PlayStation 5 or Xbox Series X/S, one of these subscriptions will make their shiny toy immediately playable out of the box.
A $20/month Xbox Game Pass Ultimate subscription offers hundreds of games from all periods of Xbox history that can be played on the Xbox or PC; many of them can be streamed to phones and tablets as well. It also includes EA Play, which opens up access to even more games. Perhaps the best part of Xbox Game Pass, though, is that it offers access to first-party Xbox Game Studios titles the day they become available, like Starfield, Call of Duty: Black Ops 6 and the just-released Indiana Jones and the Great Circle.
Nintendo has two tiers of its Switch Online plan. The basic $20 / year plan unlocks online play, more than 100 Game Boy, NES and Super NES games, cloud backups of your saved games as well as the occasional special offers. The $50 “expansion pack” adds a collection of N64, Game Boy Advance and Sega Genesis games as well as some DLC for games like Mario Kart 8, Animal Crossing: New Horizons and Splatoon 2.
Finally, Sony’s PlayStation Plus plan comes in three tiers, but the middle “Extra” plan ($15/month or $135/year) is probably best for most gamers. In addition to cloud storage for saves, online multiplayer support and a couple of free games for your library every month, you get access to the PlayStation Plus catalog, which includes more than 400 PS4 and PS5 games. There are a number of heavy hitters here, including The Last of Us Part I, Ghost of Tsushima, Death Stranding, Resident Evil 3, Spider-Man: Miles Morales and Returnal alongside lower-profile hits and indie games such as Dave the Diver, Animal Well, Return to Monkey Island and Humanity. If you know someone who loves older games though, the “Premium” tier ($18/month or $160/year) adds a bunch of titles from the PS1, PS2 and PS3 catalogs as well as perks like game trials and PS5 game streaming from the cloud.
This article originally appeared on Engadget at https://www.engadget.com/the-best-subscription-gifts-to-send-to-your-loved-ones-this-christmas-including-the-disney-bundle-masterclass-and-more-141830362.html?src=rss
Honda and Nissan have officially confirmed rumors that they’re pursuing a merger, the companies wrote in a joint press release. Each would continue to operate under its own brand, but with a new joint holding company as parent. If Nissan-controlled Mitsubishi also came on board, the combined group would become the world’s third largest automaker by sales volume and have a net worth of up to $50 billion.
“Today marks a pivotal moment as we begin discussions on business integration that has the potential to shape our future,” said Nissan CEO Makoto Uchida.
Integration talks are still preliminary, but the companies are pressing forward. “We are still at the stage of starting our review and we have not decided on a business integration yet,” said Honda director Toshihiro Mibe. However, he added that the companies aim “to find a direction for the possibility of business integration by the end of January 2025.” After that, they hope to have a “definitive agreement” concerning business integration by June 2025. Approval must come from each company’s shareholders and is subject to Nissan executing a turnaround.
Nissan and Honda previously announced plans to work together on EV components and software development, but the joint company would be far more integrated. According to the press release, the plan includes: standardizing vehicle platforms; unifying research and development teams; and optimizing manufacturing systems and facilities. All of that is usually designed to cut costs, so it could spell significant layoffs in Japan and elsewhere.
Nissan’s Titan pickup lineup
Nissan
Though the two companies sell comparable vehicles like Nissan’s Rogue and the Honda CR-V, some synergy seems possible. Nissan sells large pickup trucks and SUVs in the US that Honda doesn’t offer and also has more experience in EVs and plug-in electric vehicles. On the other side, Honda has relatively stable financials while Nissan has been struggling in the market, particularly at home.
Of course, Nissan is already in the Renault-Nissan-Misubishi Alliance. Nissan and Renault hold a 15 percent voting stake in the other, and all three sold a combined 10.6 million vehicles worldwide in 2017, more than any other light vehicle manufacturer at the time. The Alliance is also one of the largest EV makers in the world, with over 1 million units sold since 2009. If Nissan and Honda merged, it’s not clear what would become of the Alliance.
This article originally appeared on Engadget at https://www.engadget.com/transportation/nissan-and-honda-officially-announce-plans-to-merge-143834962.html?src=rss
And how you can use them to boost your code performance
A set is a simple structure defined as a collection of distinct elements. Sets are most commonly seen in fields like mathematics or logic, but they’re also useful in programming for writing efficient code. In this article, I detail cases where sets outperform alternative data types like lists, and the underlying implementation of sets which makes them so useful to programmers.
A set is an example of a container; these are used to store several elements under one variable. When looking for a container datatype, lists (typically defined with square brackets [ ]) are the go-to choice, being used extensively in almost all programming languages. Sets bare a lot of similarity to lists, most notably as they are both dynamic, allowing their size to grow or shrink as needed. The only differences lie in that lists preserve order of elements and allow duplicates, whereas sets do neither, offering a unique advantage in certain scenarios. By knowing when to choose sets over lists, you can greatly enhance the performance of your programs and improve code readability.
In Python, sets can be declared using curly braces, or by using the set constructor.
set_a = {1, 4, 9, 16} set_b = set([1,2,3]) #coverting list to set empty_set = set()
Sets do not contain duplicates
A defining property of a set is that each element is distinct, or unique, so there are no repeated entries. A simple application of this could be to remove all duplicate entries in a list by converting the list into a set.
#LIST Implementation O(n^2) def remove_duplicate_entries(list input_list): output_list = [] for element in input_list: if element in output_list: output_list.append(element) return output_list
Because a set is used here, the order of the list is not preserved. Use an implementation like the first one if order matters.
The next function identifies if a list contains any duplicates; the order of elements is not here important, only the occurrence of duplicates. The set implementation is much more desirable as operations on sets are typically much faster than on lists (this is explained in more detail later).
#LIST Implementation def has_duplicates(list input_list): unique_elements = [] for element in input_list: if element in unique_elements: return True else: unique_elements.append(element) return False
Note: In cases where a duplicate element appears early, the first implementation can outperform the second as it catches the duplicate early and returns False without checking every entry, whereas the second implementation always iterates through every element. A more optimal solution would involve a similar method to the first implementation but using a set as the unique_elements container.
def has_duplicates(list input_list) -> bool: unique_elements = set() #**modified here for element in input_list: if element in unique_elements: return True else: unique_elements.add(element) return False
Even if these applications seem quite crude or simplistic, there are countless uses built upon the principle of “removing duplicates” that take some creativity to see. For example, Leetcode 1832 ‘Check if the Sentence is a Pangram’- where you need to detects if all 26 letters have been used in an input sentence- can be elegantly solved using a set comprehension.
def is_pangram(str sentence) -> bool: present_letters = {letter for letter in sentence} return len(present_letters) == 26
Without sets, this problem would need to utilise nested looping which is both harder to write, and less efficient with a complexity of O(n^2).
The key to identifying cases where sets are useful is by considering:
If we only care about an occurrence, like in this problem if the sentence contained the word ‘eel’, we only care that the letter ‘e’ occurred, not that it occurred twice so we can discard the second and any future ‘e’s.
Building on this principal, in cases where a list is very large, it may be desirable to remove duplicate elements to continue processing on a much smaller list.
If we don’t care about the order of elements. In cases where maintaining order is important, like in a priority queue, lists should instead be used.
Hash maps and lack of order
Taking a step back, it might seem that easy duplicate removal is the only benefit of using sets. We previously discussed how sets have no order; arrays have indexed element which could simply ignored and treated like a set. It appears that arrays can do the same job as a set, if not more.
However, this simplification enforced by sets opens way to different underlying implementations. In lists, elements are assigned indices to give each element a place in the order. Sets have no need to assign indices, so they instead implement a different approach of referencing: hash mapping. These operate by (pseudo)randomly allocating addresses to elements, as opposed to storing them in a row. The allocation is governed by hashing functions, which use the element as an input to output an address.
Hashing does not preserve order
H(x) is deterministic, so the same input always gives the same output, ie. there is no RNG within the function H, so H(4) = 6 always in this case.
Running this function takes the same amount of time regardless of the size of the set, ie. hashing has O(1) time complexity. This means that the time taken to hash is independent of the size of the list, and remains at a constant, quick speed.
Set operations
Because hashing is generally quick, a whole host of operations that are typically slow on large arrays can be executed very efficiently on a set.
Search or Membership Testing
Searching for elements in an array utilises an algorithm called Linear Search, bychecking each item in the list one by one. In the worst case, where the item being searched for does not exist in the list, the algorithm traverses every element of the list (O(n)). In a very large list, this process takes a long time.
Linear search on average needs n/2 operations, img by author
However, as hashing is O(1), Python hashes the item to be found, and either returns where it is in memory, or that it doesn’t exist- in a very small amount of time.
#Line 1 #BEGIN TIMER print(-1 in number_list) #END TIMER
#Line 2 #BEGIN TIMER print(-1 in number_set) #END TIMER
Comparison of search times in lists vs sets
Note: Searching using a hashmap has an amortized time complexity of O(1). This means that in the average case, it runs at constant time but technically, in the worst case, searching is O(n). However, this is extremely unlikely and comes down to the hashing implementation having a chance of collisions, which is when multiple elements in a hashmap/set are hashed to the same address.
Collisions are rare
Deletion
Deleting an element from a list first involves a search to locate the element, and then removing reference to the element by clearing the address. In an array, after the O(n) time search, the index of every element following the deleted element needs to be shifted down one. This itself is another O(n) process.
Deletion in a list requires roughly n operations
Deleting an element from a set involves the O(1) lookup, and then erasure of the memory address which is an O(1) process so deletion also operates in constant time. Sets also have more ways to delete elements, such that errors are not raised, or such that multiple elements can be removed concisely.
#LIST numbers = [1, 3, 4, 7, 8, 11]
numbers.remove(4) numbers.remove(5) #Raises ERROR as 5 is not in list numbers.pop(0) #Deletes number at index 0, ie. 1
#SET numbers = {1, 3, 4, 7, 8, 11}
numbers.remove(4) numbers.remove(5) #Raises ERROR as 5 is not in set numbers.discard(5) #Does not raise error if 5 is not in the set numbers -= {1,2,3} #Performs set difference, ie. 1, 3 are discarded
Insertion
Both appending to a list and adding elements to a set are constant operations; adding to a specified index in a list (.insert) however comes with the added time to shift elements around.
num_list = [1,2,3] num_set = {1,2,3}
num_list.append(4) num_set.add(4)
num_list += [5,6,7] num_set += {5,6,7}
Advanced Set Operations
Additionally, all the mathematical operations that can be performed on sets have implementation in python also. These operations are once again time consuming to manually perform on a list, and are once again optimised using hashing.
Set Operations
A = {1, 2, 3, 5, 8, 13} B = {2, 3, 5, 7, 13, 17}
# A n B AintersectB = A & B # A U B AunionB = A | B # A B AminusB = A - B # A U B - A n B or A Delta B AsymmetricdiffB = A ^ B
This also includes comparison operators, namely proper and relaxed subsets and supersets. These operations once again run much faster than their list counterparts, operating in O(n) time, where n is the larger of the 2 sets.
Subset
A <= B #A is a proper subset of B A > B #A is a superset of B
Frozen Sets
A final small, but underrated feature in python is the frozen set, which is essentially a read-only or immutable set. These offer greater memory efficiency and could be useful in cases where you frequently test membership in a tuple.
Conclusion
The essence of using sets to boost performance is encapsulated by the principle of optimisation by reduction.
Data structures like lists have the most functionality- being indexed and dynamic- but come at the cost of comparatively lower efficiency: speed and memory-wise. Identifying which features are essential vs unused to inform what data type to use will result in code that runs faster and reads better.
When building voice-enabled chatbots with Amazon Lex, one of the biggest challenges is accurately capturing user speech input for slot values. Transcription confidence scores can help ensure reliable slot filling. This blog post outlines strategies like progressive confirmation, adaptive re-prompting, and branching logic to create more robust slot filling experiences.
Lettria, an AWS Partner, demonstrated that integrating graph-based structures into RAG workflows improves answer precision by up to 35% compared to vector-only retrieval methods. In this post, we explore why GraphRAG is more comprehensive and explainable than vector RAG alone, and how you can use this approach using AWS services and Lettria.
AI arrived, security troubles were dodged, and after years of development, real-time Linux finally made it into mainstream Linux. Here’s what shook up the open-source world this year and what it means for 2025.
We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept”, you consent to the use of ALL the cookies.
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
Cookie
Duration
Description
cookielawinfo-checkbox-analytics
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".
cookielawinfo-checkbox-functional
11 months
The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".
cookielawinfo-checkbox-necessary
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".
cookielawinfo-checkbox-others
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.
cookielawinfo-checkbox-performance
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".
viewed_cookie_policy
11 months
The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.