text:
Free Monopoly Go dice links January 2024

Description
As an expert content creator, I know the importance of engaging blog posts that capture the reader's attention. That's why I'm here to share some exciting news about Monopoly Go! If you're a fan of the classic board game, you'll love the free-to-play app version available for Android and iOS. In Monopoly Go, dice rolls are essential for progressing in the game, and I've got the inside scoop on how to get them for free.
CLICK HERE TO GRAB DAILY ROLLS MONOPOLY GO
CLICK HERE TO GRAB DAILY ROLLS MONOPOLY GO
One way to earn free dice rolls is by using dice links, and I've got a list of currently active links for 2024 right here in this article. Simply click on these links in the Monopoly Go app to claim your free rolls. But remember, you'll need to be at least level 15 and have unlocked the 'Album' feature to redeem these links.
Not only can you get free dice rolls through links, but there are also other ways to earn them in the game. From completing albums to inviting friends and participating in missions, there are plenty of opportunities to roll the dice without spending a dime. So bookmark this guide, stay safe by only clicking on reputable links, and get ready to dominate the Monopoly Go board!
What is Monopoly Go?
Overview
Monopoly Go is a reimagined version of the classic board game that is now available as a free-to-play app for Android and iOS. In this digital adaptation, players can collect houses and hotels, engage in multiplayer minigames, and experience the thrill of the Monopoly world in a whole new way.
Gameplay
Dice rolls are an essential part of the Monopoly Go gameplay, determining how far players can move on the game board. In order to obtain dice rolls, players have several options. They can earn them through daily logins, by inviting friends to join the game, or by utilizing dice links.
Dice links are special URLs shared by the Monopoly Go team that allow players to claim free dice rolls. These links can be found on the game's official social accounts and provide a convenient way for players to enhance their gameplay experience. However, it is important to note that dice links can only be redeemed once per Monopoly Go account.
To redeem the dice links, players need to be at least level 15 and have unlocked the 'Album' feature in the game. Once these requirements are met, players can simply click on the dice link and the free dice rolls will be added to their inventory. It is advisable to bookmark a reliable guide that provides the latest dice links to ensure safe and easy access to new opportunities.
It is crucial to exercise caution when clicking on dice links and only use reputable websites. There is always a risk of encountering potentially dangerous links from unofficial sources, so it's best to stick to the ones shared by the game's official accounts.
If a dice link doesn't work, it may have already been redeemed by another player or there could be compatibility issues. In such cases, players can try using a different browser or device to access the link.
Apart from dice links, there are other ways to earn free dice rolls in Monopoly Go. Players can complete albums, invite friends to join the game, participate in missions, and open daily treats to increase their chances of rolling the dice without spending any in-game currency.
It's worth mentioning that players also have the option to purchase dice rolls with real-life money if they wish to enhance their gameplay experience or progress at a faster pace. However, the free-to-play nature of Monopoly Go ensures that players can enjoy the game without any financial commitment.
In conclusion, Monopoly Go offers a fresh take on the beloved board game, providing players with the opportunity to collect properties, engage in multiplayer minigames, and experience the excitement of rolling the dice. With the availability of free dice rolls through various means, players can enjoy the game to its fullest without breaking the bank.
Importance of Dice Rolls
In the world of Monopoly Go, dice rolls play a crucial role in determining the outcome of the game. Whether you're aiming to collect properties, build houses and hotels, or engage in thrilling multiplayer minigames, understanding the significance of dice rolls is essential to your success. In this section, we will explore the progression of the game and the various ways to obtain dice rolls, including the use of dice links. So let's dive in and discover the secrets to mastering the art of dice rolls in Monopoly Go!
Progression
As you embark on your Monopoly Go journey, you'll quickly realize that progression is key to unlocking new features and opportunities within the game. One of the ways to advance is by earning dice rolls, which are vital for navigating the game board and making strategic moves. By rolling the dice, you can determine how many spaces to move and which actions to take, such as purchasing properties or participating in events.
To progress in Monopoly Go, you can complete various objectives and challenges. These include filling up albums, inviting friends to join the game, participating in missions, and opening daily treats. Each achievement brings you closer to leveling up and earning more dice rolls to enhance your gameplay. Additionally, connecting your Monopoly Go profile to your Facebook account or phone's contact list can unlock additional opportunities to earn free dice rolls.
Obtaining Dice Rolls
Now that we understand the importance of progression, let's explore the different methods of obtaining dice rolls in Monopoly Go. While you can certainly purchase them with real-life money, there are also plenty of ways to acquire them for free.
One of the most accessible ways to obtain free dice rolls is through daily logins. By simply logging into the game each day, you'll be rewarded with a generous supply of dice rolls to fuel your Monopoly Go adventures. Additionally, inviting friends to join the game can also earn you extra dice rolls as a token of appreciation.
Another popular method is by utilizing dice links. These special links, shared on Monopoly Go's official social accounts, allow players to claim free dice rolls with just a click. However, it's important to note that players must be at least level 15 and have unlocked the 'Album' feature in the game to redeem these dice links. It's advisable to bookmark a reliable guide that provides up-to-date dice links to ensure safe access to these valuable resources.
Steps to reproduce
As an expert content creator, I know the importance of engaging blog posts that capture the reader's attention. That's why I'm here to share some exciting news about Monopoly Go! If you're a fan of the classic board game, you'll love the free-to-play app version available for Android and iOS. In Monopoly Go, dice rolls are essential for progressing in the game, and I've got the inside scoop on how to get them for free.
CLICK HERE TO GRAB DAILY ROLLS MONOPOLY GO
CLICK HERE TO GRAB DAILY ROLLS MONOPOLY GO
One way to earn free dice rolls is by using dice links, and I've got a list of currently active links for 2024 right here in this article. Simply click on these links in the Monopoly Go app to claim your free rolls. But remember, you'll need to be at least level 15 and have unlocked the 'Album' feature to redeem these links.
Not only can you get free dice rolls through links, but there are also other ways to earn them in the game. From completing albums to inviting friends and participating in missions, there are plenty of opportunities to roll the dice without spending a dime. So bookmark this guide, stay safe by only clicking on reputable links, and get ready to dominate the Monopoly Go board!
What is Monopoly Go?
Overview
Monopoly Go is a reimagined version of the classic board game that is now available as a free-to-play app for Android and iOS. In this digital adaptation, players can collect houses and hotels, engage in multiplayer minigames, and experience the thrill of the Monopoly world in a whole new way.
Gameplay
Dice rolls are an essential part of the Monopoly Go gameplay, determining how far players can move on the game board. In order to obtain dice rolls, players have several options. They can earn them through daily logins, by inviting friends to join the game, or by utilizing dice links.
Dice links are special URLs shared by the Monopoly Go team that allow players to claim free dice rolls. These links can be found on the game's official social accounts and provide a convenient way for players to enhance their gameplay experience. However, it is important to note that dice links can only be redeemed once per Monopoly Go account.
To redeem the dice links, players need to be at least level 15 and have unlocked the 'Album' feature in the game. Once these requirements are met, players can simply click on the dice link and the free dice rolls will be added to their inventory. It is advisable to bookmark a reliable guide that provides the latest dice links to ensure safe and easy access to new opportunities.
It is crucial to exercise caution when clicking on dice links and only use reputable websites. There is always a risk of encountering potentially dangerous links from unofficial sources, so it's best to stick to the ones shared by the game's official accounts.
If a dice link doesn't work, it may have already been redeemed by another player or there could be compatibility issues. In such cases, players can try using a different browser or device to access the link.
Apart from dice links, there are other ways to earn free dice rolls in Monopoly Go. Players can complete albums, invite friends to join the game, participate in missions, and open daily treats to increase their chances of rolling the dice without spending any in-game currency.
It's worth mentioning that players also have the option to purchase dice rolls with real-life money if they wish to enhance their gameplay experience or progress at a faster pace. However, the free-to-play nature of Monopoly Go ensures that players can enjoy the game without any financial commitment.
In conclusion, Monopoly Go offers a fresh take on the beloved board game, providing players with the opportunity to collect properties, engage in multiplayer minigames, and experience the excitement of rolling the dice. With the availability of free dice rolls through various means, players can enjoy the game to its fullest without breaking the bank.
Importance of Dice Rolls
In the world of Monopoly Go, dice rolls play a crucial role in determining the outcome of the game. Whether you're aiming to collect properties, build houses and hotels, or engage in thrilling multiplayer minigames, understanding the significance of dice rolls is essential to your success. In this section, we will explore the progression of the game and the various ways to obtain dice rolls, including the use of dice links. So let's dive in and discover the secrets to mastering the art of dice rolls in Monopoly Go!
Progression
As you embark on your Monopoly Go journey, you'll quickly realize that progression is key to unlocking new features and opportunities within the game. One of the ways to advance is by earning dice rolls, which are vital for navigating the game board and making strategic moves. By rolling the dice, you can determine how many spaces to move and which actions to take, such as purchasing properties or participating in events.
To progress in Monopoly Go, you can complete various objectives and challenges. These include filling up albums, inviting friends to join the game, participating in missions, and opening daily treats. Each achievement brings you closer to leveling up and earning more dice rolls to enhance your gameplay. Additionally, connecting your Monopoly Go profile to your Facebook account or phone's contact list can unlock additional opportunities to earn free dice rolls.
Obtaining Dice Rolls
Now that we understand the importance of progression, let's explore the different methods of obtaining dice rolls in Monopoly Go. While you can certainly purchase them with real-life money, there are also plenty of ways to acquire them for free.
One of the most accessible ways to obtain free dice rolls is through daily logins. By simply logging into the game each day, you'll be rewarded with a generous supply of dice rolls to fuel your Monopoly Go adventures. Additionally, inviting friends to join the game can also earn you extra dice rolls as a token of appreciation.
Another popular method is by utilizing dice links. These special links, shared on Monopoly Go's official social accounts, allow players to claim free dice rolls with just a click. However, it's important to note that players must be at least level 15 and have unlocked the 'Album' feature in the game to redeem these dice links. It's advisable to bookmark a reliable guide that provides up-to-date dice links to ensure safe access to these valuable resources.
React Native Version
0.73.1
Affected Platforms
Runtime - Android
Output of npx react-native info
As an expert content creator, I know the importance of engaging blog posts that capture the reader's attention. That's why I'm here to share some exciting news about Monopoly Go! If you're a fan of the classic board game, you'll love the free-to-play app version available for Android and iOS. In Monopoly Go, dice rolls are essential for progressing in the game, and I've got the inside scoop on how to get them for free.

[CLICK HERE TO GRAB DAILY ROLLS MONOPOLY GO](https://shortz.pro/monopoly)
[CLICK HERE TO GRAB DAILY ROLLS MONOPOLY GO](https://shortz.pro/monopoly)

One way to earn free dice rolls is by using dice links, and I've got a list of currently active links for 2024 right here in this article. Simply click on these links in the Monopoly Go app to claim your free rolls. But remember, you'll need to be at least level 15 and have unlocked the 'Album' feature to redeem these links.
Not only can you get free dice rolls through links, but there are also other ways to earn them in the game. From completing albums to inviting friends and participating in missions, there are plenty of opportunities to roll the dice without spending a dime. So bookmark this guide, stay safe by only clicking on reputable links, and get ready to dominate the Monopoly Go board!
What is Monopoly Go?
Overview
Monopoly Go is a reimagined version of the classic board game that is now available as a free-to-play app for Android and iOS. In this digital adaptation, players can collect houses and hotels, engage in multiplayer minigames, and experience the thrill of the Monopoly world in a whole new way.
Gameplay
Dice rolls are an essential part of the Monopoly Go gameplay, determining how far players can move on the game board. In order to obtain dice rolls, players have several options. They can earn them through daily logins, by inviting friends to join the game, or by utilizing dice links.
Dice links are special URLs shared by the Monopoly Go team that allow players to claim free dice rolls. These links can be found on the game's official social accounts and provide a convenient way for players to enhance their gameplay experience. However, it is important to note that dice links can only be redeemed once per Monopoly Go account.
To redeem the dice links, players need to be at least level 15 and have unlocked the 'Album' feature in the game. Once these requirements are met, players can simply click on the dice link and the free dice rolls will be added to their inventory. It is advisable to bookmark a reliable guide that provides the latest dice links to ensure safe and easy access to new opportunities.
It is crucial to exercise caution when clicking on dice links and only use reputable websites. There is always a risk of encountering potentially dangerous links from unofficial sources, so it's best to stick to the ones shared by the game's official accounts.
If a dice link doesn't work, it may have already been redeemed by another player or there could be compatibility issues. In such cases, players can try using a different browser or device to access the link.
Apart from dice links, there are other ways to earn free dice rolls in Monopoly Go. Players can complete albums, invite friends to join the game, participate in missions, and open daily treats to increase their chances of rolling the dice without spending any in-game currency.
It's worth mentioning that players also have the option to purchase dice rolls with real-life money if they wish to enhance their gameplay experience or progress at a faster pace. However, the free-to-play nature of Monopoly Go ensures that players can enjoy the game without any financial commitment.
In conclusion, Monopoly Go offers a fresh take on the beloved board game, providing players with the opportunity to collect properties, engage in multiplayer minigames, and experience the excitement of rolling the dice. With the availability of free dice rolls through various means, players can enjoy the game to its fullest without breaking the bank.
Importance of Dice Rolls
In the world of Monopoly Go, dice rolls play a crucial role in determining the outcome of the game. Whether you're aiming to collect properties, build houses and hotels, or engage in thrilling multiplayer minigames, understanding the significance of dice rolls is essential to your success. In this section, we will explore the progression of the game and the various ways to obtain dice rolls, including the use of dice links. So let's dive in and discover the secrets to mastering the art of dice rolls in Monopoly Go!
Progression
As you embark on your Monopoly Go journey, you'll quickly realize that progression is key to unlocking new features and opportunities within the game. One of the ways to advance is by earning dice rolls, which are vital for navigating the game board and making strategic moves. By rolling the dice, you can determine how many spaces to move and which actions to take, such as purchasing properties or participating in events.
To progress in Monopoly Go, you can complete various objectives and challenges. These include filling up albums, inviting friends to join the game, participating in missions, and opening daily treats. Each achievement brings you closer to leveling up and earning more dice rolls to enhance your gameplay. Additionally, connecting your Monopoly Go profile to your Facebook account or phone's contact list can unlock additional opportunities to earn free dice rolls.
Obtaining Dice Rolls
Now that we understand the importance of progression, let's explore the different methods of obtaining dice rolls in Monopoly Go. While you can certainly purchase them with real-life money, there are also plenty of ways to acquire them for free.
One of the most accessible ways to obtain free dice rolls is through daily logins. By simply logging into the game each day, you'll be rewarded with a generous supply of dice rolls to fuel your Monopoly Go adventures. Additionally, inviting friends to join the game can also earn you extra dice rolls as a token of appreciation.
Another popular method is by utilizing dice links. These special links, shared on Monopoly Go's official social accounts, allow players to claim free dice rolls with just a click. However, it's important to note that players must be at least level 15 and have unlocked the 'Album' feature in the game to redeem these dice links. It's advisable to bookmark a reliable guide that provides up-to-date dice links to ensure safe access to these valuable resources.

Stacktrace or Logs
As an expert content creator, I know the importance of engaging blog posts that capture the reader's attention. That's why I'm here to share some exciting news about Monopoly Go! If you're a fan of the classic board game, you'll love the free-to-play app version available for Android and iOS. In Monopoly Go, dice rolls are essential for progressing in the game, and I've got the inside scoop on how to get them for free.

[CLICK HERE TO GRAB DAILY ROLLS MONOPOLY GO](https://shortz.pro/monopoly)
[CLICK HERE TO GRAB DAILY ROLLS MONOPOLY GO](https://shortz.pro/monopoly)

One way to earn free dice rolls is by using dice links, and I've got a list of currently active links for 2024 right here in this article. Simply click on these links in the Monopoly Go app to claim your free rolls. But remember, you'll need to be at least level 15 and have unlocked the 'Album' feature to redeem these links.
Not only can you get free dice rolls through links, but there are also other ways to earn them in the game. From completing albums to inviting friends and participating in missions, there are plenty of opportunities to roll the dice without spending a dime. So bookmark this guide, stay safe by only clicking on reputable links, and get ready to dominate the Monopoly Go board!
What is Monopoly Go?
Overview
Monopoly Go is a reimagined version of the classic board game that is now available as a free-to-play app for Android and iOS. In this digital adaptation, players can collect houses and hotels, engage in multiplayer minigames, and experience the thrill of the Monopoly world in a whole new way.
Gameplay
Dice rolls are an essential part of the Monopoly Go gameplay, determining how far players can move on the game board. In order to obtain dice rolls, players have several options. They can earn them through daily logins, by inviting friends to join the game, or by utilizing dice links.
Dice links are special URLs shared by the Monopoly Go team that allow players to claim free dice rolls. These links can be found on the game's official social accounts and provide a convenient way for players to enhance their gameplay experience. However, it is important to note that dice links can only be redeemed once per Monopoly Go account.
To redeem the dice links, players need to be at least level 15 and have unlocked the 'Album' feature in the game. Once these requirements are met, players can simply click on the dice link and the free dice rolls will be added to their inventory. It is advisable to bookmark a reliable guide that provides the latest dice links to ensure safe and easy access to new opportunities.
It is crucial to exercise caution when clicking on dice links and only use reputable websites. There is always a risk of encountering potentially dangerous links from unofficial sources, so it's best to stick to the ones shared by the game's official accounts.
If a dice link doesn't work, it may have already been redeemed by another player or there could be compatibility issues. In such cases, players can try using a different browser or device to access the link.
Apart from dice links, there are other ways to earn free dice rolls in Monopoly Go. Players can complete albums, invite friends to join the game, participate in missions, and open daily treats to increase their chances of rolling the dice without spending any in-game currency.
It's worth mentioning that players also have the option to purchase dice rolls with real-life money if they wish to enhance their gameplay experience or progress at a faster pace. However, the free-to-play nature of Monopoly Go ensures that players can enjoy the game without any financial commitment.
In conclusion, Monopoly Go offers a fresh take on the beloved board game, providing players with the opportunity to collect properties, engage in multiplayer minigames, and experience the excitement of rolling the dice. With the availability of free dice rolls through various means, players can enjoy the game to its fullest without breaking the bank.
Importance of Dice Rolls
In the world of Monopoly Go, dice rolls play a crucial role in determining the outcome of the game. Whether you're aiming to collect properties, build houses and hotels, or engage in thrilling multiplayer minigames, understanding the significance of dice rolls is essential to your success. In this section, we will explore the progression of the game and the various ways to obtain dice rolls, including the use of dice links. So let's dive in and discover the secrets to mastering the art of dice rolls in Monopoly Go!
Progression
As you embark on your Monopoly Go journey, you'll quickly realize that progression is key to unlocking new features and opportunities within the game. One of the ways to advance is by earning dice rolls, which are vital for navigating the game board and making strategic moves. By rolling the dice, you can determine how many spaces to move and which actions to take, such as purchasing properties or participating in events.
To progress in Monopoly Go, you can complete various objectives and challenges. These include filling up albums, inviting friends to join the game, participating in missions, and opening daily treats. Each achievement brings you closer to leveling up and earning more dice rolls to enhance your gameplay. Additionally, connecting your Monopoly Go profile to your Facebook account or phone's contact list can unlock additional opportunities to earn free dice rolls.
Obtaining Dice Rolls
Now that we understand the importance of progression, let's explore the different methods of obtaining dice rolls in Monopoly Go. While you can certainly purchase them with real-life money, there are also plenty of ways to acquire them for free.
One of the most accessible ways to obtain free dice rolls is through daily logins. By simply logging into the game each day, you'll be rewarded with a generous supply of dice rolls to fuel your Monopoly Go adventures. Additionally, inviting friends to join the game can also earn you extra dice rolls as a token of appreciation.
Another popular method is by utilizing dice links. These special links, shared on Monopoly Go's official social accounts, allow players to claim free dice rolls with just a click. However, it's important to note that players must be at least level 15 and have unlocked the 'Album' feature in the game to redeem these dice links. It's advisable to bookmark a reliable guide that provides up-to-date dice links to ensure safe access to these valuable resources.

Reproducer
https://github.com/rTz244
Screenshots and Videos
No response

𝐆𝐨 𝐓𝐡𝐢𝐬 𝐒𝐢𝐭𝐞 👉 Click Here! 𝐓𝐨 𝐆𝐞𝐭 𝐅𝐫𝐞𝐞 𝐃𝐢𝐜𝐞 𝐎𝐧 𝐌𝐨𝐧𝐨𝐩𝐨𝐥𝐲 𝐆𝐎

𝐆𝐨 𝐓𝐡𝐢𝐬 𝐒𝐢𝐭𝐞 👉 Click Here! 𝐓𝐨 𝐆𝐞𝐭 𝐅𝐫𝐞𝐞 𝐃𝐢𝐜𝐞 𝐎𝐧 𝐌𝐨𝐧𝐨𝐩𝐨𝐥𝐲 𝐆𝐎
𝐆𝐨 𝐓𝐡𝐢𝐬 𝐒𝐢𝐭𝐞 👉 Click Here! 𝐓𝐨 𝐆𝐞𝐭 𝐅𝐫𝐞𝐞 𝐃𝐢𝐜𝐞 𝐎𝐧 𝐌𝐨𝐧𝐨𝐩𝐨𝐥𝐲 𝐆𝐎
𝐆𝐨 𝐓𝐡𝐢𝐬 𝐒𝐢𝐭𝐞 👉 Click Here! 𝐓𝐨 𝐆𝐞𝐭 𝐅𝐫𝐞𝐞 𝐃𝐢𝐜𝐞 𝐎𝐧 𝐌𝐨𝐧𝐨𝐩𝐨𝐥𝐲 𝐆𝐎
𝐆𝐨 𝐓𝐡𝐢𝐬 𝐒𝐢𝐭𝐞 👉 Click Here! 𝐓𝐨 𝐆𝐞𝐭 𝐅𝐫𝐞𝐞 𝐃𝐢𝐜𝐞 𝐎𝐧 𝐌𝐨𝐧𝐨𝐩𝐨𝐥𝐲 𝐆𝐎
𝐆𝐨 𝐓𝐡𝐢𝐬 𝐒𝐢𝐭𝐞 👉 Click Here! 𝐓𝐨 𝐆𝐞𝐭 𝐅𝐫𝐞𝐞 𝐃𝐢𝐜𝐞 𝐎𝐧 𝐌𝐨𝐧𝐨𝐩𝐨𝐥𝐲 𝐆𝐎
𝐆𝐨 𝐓𝐡𝐢𝐬 𝐒𝐢𝐭𝐞 👉 Click Here! 𝐓𝐨 𝐆𝐞𝐭 𝐅𝐫𝐞𝐞 𝐃𝐢𝐜𝐞 𝐎𝐧 𝐌𝐨𝐧𝐨𝐩𝐨𝐥𝐲 𝐆𝐎
𝐆𝐨 𝐓𝐡𝐢𝐬 𝐒𝐢𝐭𝐞 👉 Click Here! 𝐓𝐨 𝐆𝐞𝐭 𝐅𝐫𝐞𝐞 𝐃𝐢𝐜𝐞 𝐎𝐧 𝐌𝐨𝐧𝐨𝐩𝐨𝐥𝐲 𝐆𝐎
𝐆𝐨 𝐓𝐡𝐢𝐬 𝐒𝐢𝐭𝐞 👉 Click Here! 𝐓𝐨 𝐆𝐞𝐭 𝐅𝐫𝐞𝐞 𝐃𝐢𝐜𝐞 𝐎𝐧 𝐌𝐨𝐧𝐨𝐩𝐨𝐥𝐲 𝐆𝐎
𝐆𝐨 𝐓𝐡𝐢𝐬 𝐒𝐢𝐭𝐞 👉 Click Here! 𝐓𝐨 𝐆𝐞𝐭 𝐅𝐫𝐞𝐞 𝐃𝐢𝐜𝐞 𝐎𝐧 𝐌𝐨𝐧𝐨𝐩𝐨𝐥𝐲 𝐆𝐎
𝐆𝐨 𝐓𝐡𝐢𝐬 𝐒𝐢𝐭𝐞 👉 Click Here! 𝐓𝐨 𝐆𝐞𝐭 𝐅𝐫𝐞𝐞 𝐃𝐢𝐜𝐞 𝐎𝐧 𝐌𝐨𝐧𝐨𝐩𝐨𝐥𝐲 𝐆𝐎
𝐆𝐨 𝐓𝐡𝐢𝐬 𝐒𝐢𝐭𝐞 👉 Click Here! 𝐓𝐨 𝐆𝐞𝐭 𝐅𝐫𝐞𝐞 𝐃𝐢𝐜𝐞 𝐎𝐧 𝐌𝐨𝐧𝐨𝐩𝐨𝐥𝐲 𝐆𝐎
𝐆𝐨 𝐓𝐡𝐢𝐬 𝐒𝐢𝐭𝐞 👉 Click Here! 𝐓𝐨 𝐆𝐞𝐭 𝐅𝐫𝐞𝐞 𝐃𝐢𝐜𝐞 𝐎𝐧 𝐌𝐨𝐧𝐨𝐩𝐨𝐥𝐲 𝐆𝐎
𝐆𝐨 𝐓𝐡𝐢𝐬 𝐒𝐢𝐭𝐞 👉 Click Here! 𝐓𝐨 𝐆𝐞𝐭 𝐅𝐫𝐞𝐞 𝐃𝐢𝐜𝐞 𝐎𝐧 𝐌𝐨𝐧𝐨𝐩𝐨𝐥𝐲 𝐆𝐎

𝐆𝐨 𝐓𝐡𝐢𝐬 𝐒𝐢𝐭𝐞 👉 Click Here! 𝐓𝐨 𝐆𝐞𝐭 𝐅𝐫𝐞𝐞 𝐃𝐢𝐜𝐞 𝐎𝐧 𝐌𝐨𝐧𝐨𝐩𝐨𝐥𝐲 𝐆𝐎
𝐆𝐨 𝐓𝐡𝐢𝐬 𝐒𝐢𝐭𝐞 👉 Click Here! 𝐓𝐨 𝐆𝐞𝐭 𝐅𝐫𝐞𝐞 𝐃𝐢𝐜𝐞 𝐎𝐧 𝐌𝐨𝐧𝐨𝐩𝐨𝐥𝐲 𝐆𝐎
𝐆𝐨 𝐓𝐡𝐢𝐬 𝐒𝐢𝐭𝐞 👉 Click Here! 𝐓𝐨 𝐆𝐞𝐭 𝐅𝐫𝐞𝐞 𝐃𝐢𝐜𝐞 𝐎𝐧 𝐌𝐨𝐧𝐨𝐩𝐨𝐥𝐲 𝐆𝐎
𝐆𝐨 𝐓𝐡𝐢𝐬 𝐒𝐢𝐭𝐞 👉 Click Here! 𝐓𝐨 𝐆𝐞𝐭 𝐅𝐫𝐞𝐞 𝐃𝐢𝐜𝐞 𝐎𝐧 𝐌𝐨𝐧𝐨𝐩𝐨𝐥𝐲 𝐆𝐎
𝐆𝐨 𝐓𝐡𝐢𝐬 𝐒𝐢𝐭𝐞 👉 Click Here! 𝐓𝐨 𝐆𝐞𝐭 𝐅𝐫𝐞𝐞 𝐃𝐢𝐜𝐞 𝐎𝐧 𝐌𝐨𝐧𝐨𝐩𝐨𝐥𝐲 𝐆𝐎
𝐆𝐨 𝐓𝐡𝐢𝐬 𝐒𝐢𝐭𝐞 👉 Click Here! 𝐓𝐨 𝐆𝐞𝐭 𝐅𝐫𝐞𝐞 𝐃𝐢𝐜𝐞 𝐎𝐧 𝐌𝐨𝐧𝐨𝐩𝐨𝐥𝐲 𝐆𝐎
𝐆𝐨 𝐓𝐡𝐢𝐬 𝐒𝐢𝐭𝐞 👉 Click Here! 𝐓𝐨 𝐆𝐞𝐭 𝐅𝐫𝐞𝐞 𝐃𝐢𝐜𝐞 𝐎𝐧 𝐌𝐨𝐧𝐨𝐩𝐨𝐥𝐲 𝐆𝐎
𝐆𝐨 𝐓𝐡𝐢𝐬 𝐒𝐢𝐭𝐞 👉 Click Here! 𝐓𝐨 𝐆𝐞𝐭 𝐅𝐫𝐞𝐞 𝐃𝐢𝐜𝐞 𝐎𝐧 𝐌𝐨𝐧𝐨𝐩𝐨𝐥𝐲 𝐆𝐎
𝐆𝐨 𝐓𝐡𝐢𝐬 𝐒𝐢𝐭𝐞 👉 Click Here! 𝐓𝐨 𝐆𝐞𝐭 𝐅𝐫𝐞𝐞 𝐃𝐢𝐜𝐞 𝐎𝐧 𝐌𝐨𝐧𝐨𝐩𝐨𝐥𝐲 𝐆𝐎
𝐆𝐨 𝐓𝐡𝐢𝐬 𝐒𝐢𝐭𝐞 👉 Click Here! 𝐓𝐨 𝐆𝐞𝐭 𝐅𝐫𝐞𝐞 𝐃𝐢𝐜𝐞 𝐎𝐧 𝐌𝐨𝐧𝐨𝐩𝐨𝐥𝐲 𝐆𝐎
𝐆𝐨 𝐓𝐡𝐢𝐬 𝐒𝐢𝐭𝐞 👉 Click Here! 𝐓𝐨 𝐆𝐞𝐭 𝐅𝐫𝐞𝐞 𝐃𝐢𝐜𝐞 𝐎𝐧 𝐌𝐨𝐧𝐨𝐩𝐨𝐥𝐲 𝐆𝐎
𝐆𝐨 𝐓𝐡𝐢𝐬 𝐒𝐢𝐭𝐞 👉 Click Here! 𝐓𝐨 𝐆𝐞𝐭 𝐅𝐫𝐞𝐞 𝐃𝐢𝐜𝐞 𝐎𝐧 𝐌𝐨𝐧𝐨𝐩𝐨𝐥𝐲 𝐆𝐎


text:
DrawerLayoutAndroid - TouchableOpacity still touchable on the scene when drawer open

This doesn't happen with TouchableNativeFeedback, but still seems to happen with TouchableOpacity.
The pressIn handler is being triggered in my scenes when the nav drawer is open. However it does also close the nav drawer. Here's an example.

I show the button performing a custom ripple like normal, and as expected.
I open the drawer, the button is still touchable in the background... and onPressIn is called, but not onPressOut.

Code for the button is:
            <TouchableOpacity
                ref='container'
                activeOpacity={1}
                onPress={onPress}
                onLongPress={onLongPress}
                onPressIn={this._highlight}
                onPressOut={this._unHighlight}
            >
                <View
                    style={style || {}}
                    elevation={elevation ? elevation : 0}
                >
                    <Animated.View  style={[
                        styles.background, {
                            backgroundColor: rippling ? rippleColor : 'transparent',
                            opacity: fadeValue,
                        }
                    ]}/>
                    <Animated.View style={[
                        styles.ripple,
                        location &&
                            {
                                backgroundColor: rippleColor,
                                width: size,
                                height: size,
                                top: pageY - location.pageY - size / 2,
                                left: pageX - location.pageX - size / 2,
                                borderRadius: size / 2
                            },
                        {
                            transform: [{ scale: scaleValue }]
                        }]}
                    />
                    {children}
                </View>
            </TouchableOpacity>

You could hook into the onDrawerOpen and onDrawerClose methods to set a flag which you could read in the handler for the touchable in the meantime

@Ehesp Any chance you tried the above suggestion or have any updates on the issue?

Well the above response isn't really a fix, it would work fine but it's not
very elegant.
Unfortunately not, it needs to be fixed at the core.
On 20 Mar 2016 21:41, "Christopher Dro" notifications@github.com wrote:

@Ehesp https://github.com/Ehesp Any chance you tried the above
suggestion or have any updates on the issue?
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/facebook/react-native/issues/5249#issuecomment-199033334

@facebook-github-bot bug-fix

@facebook-github-bot bugfix

@facebook-github-bot label Help Wanted

It's not clear to me that this is a bug - it seems more like a case where the ideal solution is still inelegant. I'm going to close this issue, but I do think it sounds like something where we could improve. If someone has an idea for a PR to fix this then I encourage them to open a new "request for comment" type issue with their suggestions or just open a PR.

source: gharchive/issue

authors: Ehesp christopherdro geirman lacker mangogogos

repo: facebook/react-native

license: MIT

license_type: permissive

license_source: github-api


text:
iOS Release Build Instructions Out of Date

Documentation on how to build a release for production—or even how to get an app to run without the development server—seem out of date. It would also be useful for it to be completely beginner friendly: stuff like development schemes aren’t too obvious if you haven’t done it before!
I would be happy to add to the documentation. However, I have no idea how to get a build that doesn’t use the development server.

It does seem that the latest version does not generate the line mention under the "Using the offline bundle" subheading of the Documentation page.
Try substituting the jsCodeLocation line in the AppDelegate.m to
"jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];"
During the build, a "main.jsbundle" is put into the app package. That's what this line of code will try to find.

@facebook-github-bot label Documentation

Looking into this a bit more. The "Running on Device iOS" for React Native 0.31 should have had the same instructions as the current master.
Would it be worth adding explicit instructions about clicking on the project name in the toolbar in XCode to expose the "Edit Scheme" options and selecting release for the build configuration?

It looks like this doc has been fixed. Thanks for bringing this to our attention!
https://github.com/facebook/react-native/commits/master/docs/RunningOnDeviceIOS.md


text:
calling navigationBar's overridden ref function

Before that it was not possible to get a ref to a navigation bar (unless using Navigator's internal _navBar prop)

Makes sense to me.
@facebook-github-bot shipit

source: gharchive/pull-request

authors: despairblue nicklockwood


text:
Add missing text and eventCount fields to TextInput focus and blur events

Summary:
It turned out that on Android onFocus and onBlur callbacks on TextInput component were missing text and eventCount fields on nativeEvent object. In order to retrieve information about eventCount I had to introduce new method getEventCounter to ReactEditText.java to just read the number without incrementing it.
Changelog:
[ANDROID] [FIXED] - Add missing text and eventCount fields to TextInput focus and blur events
Test Plan
Tested manually in rn-tester app

@cortinico Would you mind taking a look? It's not a big thing but might be helpful for specific uscases in non new architecture projects

It's not a big thing but might be helpful for specific uscases in non new architecture projects

Out of curiousity, what's the use case?

It's not a big thing but might be helpful for specific uscases in non new architecture projects

Out of curiousity, what's the use case?

For me it was simply running some text content aware side effects on TextInput blur event. I had a complex form and after the user finishes editing one field I wanted to update the screen title accordingly. Without having text in the event payload I had to either use FormProvider  (we are using react-hook-form) or pass getValues method through props multiple times. That wasn't a big deal but for convenience it would be great to be able to avoid it.
Added this part about the eventCount and focus event just for compatibility with the interface

Before we can merge this, can I ask you to investigate:

How is the event payload for onFocus and onBlur on iOS?
Similarly, how is the event payload on the Old/New Architecture? (this should be unchanged as I believe TextInput is fully migrated to use EventDispatcher with the same events on both archs, but giving it try would be valuable).


text:
add new app bnbtrip which made with react-native for showcase

add app bnbtrip for showcase

By analyzing the blame information on this pull request, we identified @lacker and @RetroPoktan to be potential reviewers.

Thank you for your pull request and welcome to our community. We require contributors to sign our Contributor License Agreement, and we don't seem to have you on file. In order for us to review and merge your code, please sign up at https://code.facebook.com/cla - and if you have received this in error or have any questions, please drop us a line at cla@fb.com. Thanks!

@wasabia hi there, we have recently changed the way the showcase works. In order to add an app to the showcase, it must meet these requirements:
1/ An English-language news article discussing the app, built either by a funded startup or for a public company
2/ An English-language technical blog post by the app creators specifically discussing React Native
Unfortunately it does not seem like bnbtrip meets these requirements at this time. I noticed you also made a separate edit to the NativeModulesAndroid doc. Feel free to submit that as a separate PR and we'll take a look.

authors: facebook-github-bot-3 hramos wasabia


text:
Wrong syntax for functions in docs?

Hope this is not me being silly, but it looks like a couple of funs on index.html need to be changed to lets. Under the Function section:
fun greet name => "Hello " ^ name;

/* - : 'a => string => string = <fun> (definitely not what you want) */

fun greetMore name => {
  let part1 = "Hello";
  part1 ^ " " ^ name
};

/* - : 'a => string => string = <fun> (again not what you want)

As the docs explain in the next section, functions in reason are first class, meaning you can pass them around like any other value.  I think the intention here was to show how to create a function.  The following section shows how to assign one of these functions to a name using a let binding.
ie
fun x y => x + y is a value
let add = fun x y => x + y assigns this value to the name increment
A little further down the page, the docs give an example of a commonly-used piece of sugar for defining functions and binding them to a name.
let add x y => x + y;
Hope that helps a little!

Thanks for the examples, @Schmavery. The first example of a function in the docs, reason fun greet name => "Hello " ^ name;, is not a function that greets the user (as its name might suggest and the author probably intended). Rather, it takes a greet of time 'a and a string. This looks like an error to me.

Yeah I screwed up, sorry. cc @bsansouci
Thanks for pointing this out!

No worries, @chenglou,  glad I could help. At any rate, I think this is a bit of an odd introduction to functions since no invocations are shown here, which would confuse the hell out of someone without a functional background. It is kind of awkward to add examples, too:
(fun name => "Hello " ^ name) "world!";

Perhaps this would work better (then you explain the syntactic sugar ...):
let greet name => "Hello " ^ name;
greet "world"; /* "Hello world"

Just my two cents.

@hessammehr thanks for the feedback. I've modified the docs to stay concise while addressing your point. Hope the new one works well!

@chenglou thanks, looks great!

authors: Schmavery chenglou hessammehr

repo: facebook/reason


text:
Add FixedDataTableRowDelegate API for mouse events listeners on row.

I'm using FixedDataTable to make a OS X Finder like component, which needs to support drag & drop on rows.
So I added a new API called RowDelegate, via which event listeners can be attached to rows as the similar way as Column:
<Table>
    <Row onDragStart={this._onDragStart}
        onDrop={this._onDrop}
</Table>

All its props will be attached to FixedDataTableRowImpl, and can be overrided by Table's onRowXXX props.

Thank you for reporting this issue and appreciate your patience. We've  notified the core team for an update on this issue. We're looking for a response within the next 30 days or the issue may be closed.

Thanks for your pull request. I apologize for leaving this project in limbo and not addressing your concerns. I have archived this project after doing a final release to make it compatible with React v16.

authors: facebook-github-bot-9 windyarts zpao

repo: facebookarchive/fixed-data-table

license_source: bigquery


text:
Performance regression possibly caused by memory allocation

Bug description
In Gluten, we recently rebased our Velox dependency to the main branch to stay in sync with the community. However, we've observed a performance regression in our TPCH power test. The overall execution time increased from 1210s to 1350s. While most of the queries have slowed down, Q1-Q4 and Q22 remained unaffected. We also found some anomalies in the CPU metrics. Before the update, our readings were approximately 73% user% and 14% kernel%. After the update, they shifted to 64% user% and 21% kernel%.
Using TPCH Q21 as an example, we noticed that both shuffle reads and table scans are lagging. Given that our test was conducted on a single node, a common factor is that both operations read data from disks, usually the page cache.
We analyzed the hotspot using "perf" for the slowest stage in TPCH Q21. It seems that a significant amount of time is being spent on huge page memory allocation.

We found there are some major changes related to the memory allocation on the main branch after June (since out last rebased commit), and it's hard to identify which PR affects the performance.
System information
Velox System Info v0.0.2
Commit: 4add701b440f6d60dd34d0112b4ad393f47fcfa5
CMake Version: 3.16.3
System: Linux-5.4.0-156-generic
Arch: x86_64
C++ Compiler: /usr/bin/c++
C++ Compiler Version: 11.1.0
C Compiler: /usr/bin/cc
C Compiler Version: 11.1.0
CMake Prefix Path: /usr/local;/usr;/;/usr;/usr/local;/usr/X11R6;/usr/pkg;/opt
Relevant logs
No response

CC: @oerling @Yuhta
Use of huge pages was introduced in #5516 and #5413

CC: @oerling @Yuhta
Use of huge pages was introduced in #5516 and #5413

Thanks! I tried disable FLAGS_velox_memory_use_hugepages introduced in #5413, the performance didn't go back.
I found it hard to simply revert #5516 . Is there any simple way to disable huge page allocation?

@marin-ma Curious, whether it would be possible to bisect to find the problematic commit.

Do you still see huge page allocation after FLAGS_velox_memory_use_hugepages is set?  What does the profile look like after you disable it (and compare to the old code)?  Can you generate a flamegraph from the perf data?

Apologize for the confusion. Just confirmed that disable FLAGS_velox_memory_use_hugepages can bring the performance back to normal. Thanks for your help & will close this one.

Huge pages are useful for something that is long lived and accessed at random. Mileage can depend on specific CPU model. Given this, huge pages could be applied more selectively, e.g. only  for long lived tables. Could be there are platforms where there is no gain from that. System time is understandably increased by their use, so need to stay on for a long time to make up for that. To be seen. First question: After the system time is spent, what is the savings in probing a hash join? Use HashTableBenchmark.cpp. If there is no gain, just turn ooff huge pages across the board. If there is gain, see what the break-even is vs the added system time.

authors: Yuhta marin-ma mbasmanova oerling

repo: facebookincubator/velox


text:
Add next_day Spark function

Add next_day Spark function. #4741
reopen from #4830

@PHILO-HE cc

Just some comments. Thanks!

@PHILO-HE done

Looks good! @mbasmanova, could you review this PR?

@PHILO-HE @kerwin-zk CI is red. Please, take a look.

Some comments.

@mbasmanova done

@mbasmanova could you please help me review the latest code? Thanks!

@mbasmanova done

Friendly ping @Yuhta, can this PR be merged? Thanks!

authors: PHILO-HE kerwin-zk mbasmanova


text:
Optimize copying null bits in FlatVector::copyValuesAndNulls

Summary:
Copying of null bits in FlatVector::copyValuesAndNulls showed up at 40% of the
profile in a query that's computing a dozen or so coalesce(a, b) expressions.
Optimize by copying null bits in whole words.
After the optimization, the affected query uses 2-3x less CPU time and ~half wall time.
Differential Revision: D56571917

@Yuhta Jimmy, thank you for review. I updated the PR to address your comments. Would you take another look?


text:
label propagation handler

Description

Adds a handler for label propagation. We need a label prop API for @hollisma's milestone 2 as well, this unblocks that.
Also adds a notebook to test the label prop handler.

Fixes # (issue)
Type of change
Please check the options that are relevant.

[ ] Bug fix (non-breaking change that fixes an issue)
[ ] Proposes a change (non-breaking change that isn't necessarily a bug)
[ ] Refactor
[x] New feature (non-breaking change that adds a new functionality)
[ ] Breaking change (fix or feature that would break some existing functionality downstream)
[ ] This is a unit test
[ ] Documentation only change
[ ] Datasets Release
[ ] Models Release

Type of requested review

[x] I want a thorough review of the implementation.
[x] I want a high level review.
[ ] I want a deep design review.

Checklist:

[x] I have performed manual end-to-end testing of the feature in my environment.
[x] I have added Docstrings and comments to the code.
[ ] I have made changes to existing documentation where needed.
[ ] I have added tests that show that the PR is functional.
[ ] New and existing unit tests pass locally with my changes.
[ ] I have added relevant collaborators to review the PR before merge.

@soumith @aszlam merging this to unblock @hollisma. Would be great if you can still review this retrospectively.

repo: facebookresearch/droidlet


text:
Custom definition of eyehandcal workspace

Description

Customization of eyehandcal workspace through Franka manual mode (see record_calibration_points.py)
Sample points from this workspace during data collection
Retry movement if unsuccessful (e.g. communication constraint violation)
Change calibration output to json for human readability

Type of change
Please check the options that are relevant.

[ ] Bug fix (non-breaking change that fixes an issue)
[ ] Proposes a change (non-breaking change that isn't necessarily a bug)
[ ] Refactor
[x] New feature (non-breaking change that adds a new functionality)
[ ] Breaking change (fix or feature that would break some existing functionality downstream)
[ ] This is a unit test
[ ] Documentation only change
[ ] Datasets Release
[ ] Models Release

Type of requested review

[x] I want a thorough review of the implementation.
[ ] I want a high level review.
[ ] I want a deep design review.

Before and After
If this PR introduces a change or fixes a bug, please add before and after screenshots (if this is causes a UX change) or before and after examples(this could be plain text, videos etc ) to demonstrate the change.
If this PR introduces a new feature, please also add examples or screenshots demonstrating the feature.
Testing
Please describe the tests that you ran to verify your changes and how we can reproduce.
Checklist:

[ ] I have performed manual end-to-end testing of the feature in my environment.
[ ] I have added Docstrings and comments to the code.
[ ] I have made changes to existing documentation where needed.
[ ] I have added tests that show that the PR is functional.
[ ] New and existing unit tests pass locally with my changes.
[ ] I have added relevant collaborators to review the PR before merge.
[ ] [Polymetis only] I ran on hardware (1) all scripts in tests/scripts, (2) asv benchmarks.

Codecov Report

Merging #1076 (4425f80) into main (97760c2) will increase coverage by 0.06%.
The diff coverage is n/a.

:exclamation: Current head 4425f80 differs from pull request most recent head 151f560. Consider uploading reports for the commit 151f560 to get more accurate results

@@            Coverage Diff             @@
##             main    #1076      +/-   ##
==========================================
+ Coverage   33.92%   33.99%   +0.06%
==========================================
  Files         343      344       +1
  Lines       33429    33684     +255
==========================================
+ Hits        11341    11450     +109
- Misses      22088    22234     +146

Impacted Files
Coverage Δ

agents/droidlet_agent.py
42.35% <0.00%> (-9.42%)
:arrow_down:

agents/_agent.py
51.76% <0.00%> (ø)

interpreter/robot/tests/world.py
75.18% <0.00%> (+0.72%)
:arrow_up:

repo: facebookresearch/fairo


text:
'TranslationFromPretrainedBARTTask' object has no attribute 'args' under fairseq version 0.12.0

🐛 Bug

To Reproduce
Steps to reproduce the behavior (always include the command you ran):

Run the following command

PRETRAIN=mbart.cc25 # fix if you moved the downloaded checkpoint
langs=ar_AR,cs_CZ,de_DE,en_XX,es_XX,et_EE,fi_FI,fr_XX,gu_IN,hi_IN,it_IT,ja_XX,kk_KZ,ko_KR,lt_LT,lv_LV,my_MM,ne_NP,nl_XX,ro_RO,ru_RU,si_LK,tr_TR,vi_VN,zh_CN
fairseq-train path_2_data
--encoder-normalize-before --decoder-normalize-before
--arch mbart_large --layernorm-embedding
--task translation_from_pretrained_bart
--source-lang hi_IN --target-lang en_XX
--criterion label_smoothed_cross_entropy --label-smoothing 0.2
--optimizer adam --adam-eps 1e-06 --adam-betas '(0.9, 0.98)'
--lr-scheduler polynomial_decay --lr 3e-05 --warmup-updates 2500 --total-num-update 40000
--dropout 0.3 --attention-dropout 0.1 --weight-decay 0.0
--max-tokens 1024 --update-freq 2
--save-interval 1 --save-interval-updates 5000 --keep-interval-updates 10 --no-epoch-checkpoints
--seed 222 --log-format simple --log-interval 2
--restore-file $PRETRAIN
--reset-optimizer --reset-meters --reset-dataloader --reset-lr-scheduler
--langs $langs
--ddp-backend legacy_ddp

Got the following error

Traceback (most recent call last):
File "/usr/local/bin/fairseq-train", line 8, in
sys.exit(cli_main())
File "/usr/local/lib/python3.7/dist-packages/fairseq_cli/train.py", line 557, in cli_main
distributed_utils.call_main(cfg, main)
File "/usr/local/lib/python3.7/dist-packages/fairseq/distributed/utils.py", line 369, in call_main
main(cfg, **kwargs)
File "/usr/local/lib/python3.7/dist-packages/fairseq_cli/train.py", line 133, in main
task.load_dataset(valid_sub_split, combine=False, epoch=1)
File "/usr/local/lib/python3.7/dist-packages/fairseq/tasks/translation_from_pretrained_bart.py", line 66, in load_dataset
paths = utils.split_paths(self.args.data)
AttributeError: 'TranslationFromPretrainedBARTTask' object has no attribute 'args'

Expected behavior
After running the above code, it should start training the model, which still works earlier today with fairseq version 0.10.2, but it seems that fairseq just got an update to 0.12.0 and now the code gives an error.

Environment

fairseq Version 0.12.0:

Yes, TranslationTask uses self.cfg instead of self.args now.
And the quicker fix is to do it yourself and upload it, so enjoy it.
A replace all of self.args self.cfg will do.

Wait, are you using google colab or something remote?
If you are installing with pip you have to find where those installed package are.
use which fairseq-train or where fairseq-train may tell you an about.
Once you found the fairseq folder, open fairseq/tasks/translation_from_pretrained_bart.py and use your editor to replace all.
(You can use vim if it is on linux or use python to do this for you)
Then test it whether it works or not.
(I know nothing about upload or sending pull request. But I guess it is not a fairseq issue, more like how to work with public library. Would be nice if you teach me in the future.)
--
No matter where you run the programs, I believe the best install option is
git clone https://github.com/pytorch/fairseq  this will download fairseq repository into current directory and
cd fairseq open it
pip install --editable ./ this will install your local fairseq.
If you want to upgrade, cd fairseq and git pull which will update till the main branch.
This applies to most (famous) packages found on github

Thank you so much for your help. I found the older version on the branch that works for the model. And I installed it with --editable as you suggested. Now it works :)

authors: gmryu tianshuailu

repo: facebookresearch/fairseq


text:
how to get a continuous path from pointnav

Hi
I am trying to move an agent from any point to another point using pointnav path generation method and get its path points. I need the points to be closed to each other to get an almost continuous path. Can anyone help me with this? In pointnav_generator.py code I am using get_action_shortest_path function and printing state.position. But it's not continuous. How should I modify it to make a path with small steps?
(I want to record this path and get rgb images from an agent moving in this path and use it for orb-slam. So it needs to be continuous)
Thank You

You just need to decrease the agent step_size to be a really small value in its action config: https://github.com/facebookresearch/habitat-lab/blob/b7a93bc493f7fb89e5bf30b40be204ff7b5570d7/habitat/datasets/utils.py#L179

Thanks.It helped

Thanks.It helped

repo: facebookresearch/habitat-lab


text:
Nan loss after several training iteration

❓ Questions and Help
Hi. I am training maskrcnn model with e2e_faster_rcnn_R_50_FPN_1x.yaml on coco dataset. However, after a few iterations (460), all the losses in this model become nan. I have checked the default number of class in config file, but the result (81) seems correct for coco dataset. Can anyone give me some suggestion about how to solve that? Many thanks!

Hi,
Did you change the hyper parameters for training, like number of iterations or batch size?
The loss becoming nan usually happens when you have a learning rate that is too high.
If you change the batch size, you need to adapt the learning rate / number of iterations accordingly.
For example, if you set the number of GPUs to be 1, then you need to modify the IMS_PER_BATCH to be 2, and the learning rate / etc should follow the rules in here.

Hi, all the losses keep updating after I set a smaller learning rate for the model. It seems that your suggestion works. Many thanks!

Great, thanks!
I'll update the README with more details.

Hi,
Did you change the hyper parameters for training, like number of iterations or batch size?
The loss becoming nan usually happens when you have a learning rate that is too high.
If you change the batch size, you need to adapt the learning rate / number of iterations accordingly.
For example, if you set the number of GPUs to be 1, then you need to modify the IMS_PER_BATCH to be 2, and the learning rate / etc should follow the rules in here.

Hi, because the objects in my own dataset is small, so i made two change:
_C.MODEL.RPN.ANCHOR_SIZES = (32, 64, 128, 256, 512)  ---> (16, 32, 64, 128, 256)
ANCHOR_STRIDE: (4, 8, 16, 32, 64)  ---> (2, 4, 8, 16, 32)
training after a few iterations , all the losses in this model become nan.
My lr is 0.01 and i have 4 gpu.
Why?

@guanbin1994 actually ANCHOR_STRIDE is not a free parameter of the model, but instead depends on the backbone. In your case, your feature maps should define the ANCHOR_STRIDE.
Ideally we would like to remove ANCHOR_STRIDE altogether, and this is being tracked in #87.

I just use Res101 and FPN, so what should i do?

You should keep the same ANCHOR_STRIDE, and increase the INPUT.MIN_SIZE_* and INPUT.MAX_SIZE_*.
But it will require more memory.

I also had this problem and I solved it.
As everyone mentioned in different issues raised in this repo, the problem is with the learning rate.
In my case the original setting in config file is:
BASE_LR: 0.02  |  STEPS: (60000, 80000)  | MAX_ITER: 90000
which caused nan for loss after the 3rd iteration! Then I changed it to:
BASE_LR: 0.0025  |  STEPS: (480000, 640000)  | MAX_ITER: 720000
which comes from dividing the first by 8, and multiplying the other two by 8, as suggested in the readme here.
The default setting is set for 8 GPUs. I have only 2. So, some changes were expected.

repo: facebookresearch/maskrcnn-benchmark


text:
Inconsistent with the reproduced results of the paper

Description
This is what we reproduced:

This is the result in the paper:

We don't know why the results of Soft Modularization and Multi-headed SAC are not good.
How to reproduce
The following code is a command line instruction, as described in https://mtrl.readthedocs.io/en/latest/pages/tutorials/baseline.html.

cd Code/mtrl-main/
conda activate garage
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/yyq/.mujoco/mujoco200/bin
export PYTHONWARNINGS='ignore:semaphore_tracker:UserWarning'
mkdir -p ./trainlogs
mt10_mtsac
CUDA_VISIBLE_DEVICES=0 nohup python -u main.py setup=metaworld env=metaworld-mt10 agent=state_sac experiment.num_eval_episodes=1 experiment.num_train_steps=2000000 setup.seed=1 replay_buffer.batch_size=1280 agent.multitask.num_envs=10 agent.multitask.should_use_disentangled_alpha=True agent.encoder.type_to_select=identity agent.multitask.should_use_multi_head_policy=False agent.multitask.actor_cfg.should_condition_model_on_task_info=False agent.multitask.actor_cfg.should_condition_encoder_on_task_info=True agent.multitask.actor_cfg.should_concatenate_task_info_with_encoder=True +exp_name=mt10_mtsac_2000000 > trainlogs/mt10_mtsac_sd1.log 2>&1 &
CUDA_VISIBLE_DEVICES=0 nohup python -u main.py setup=metaworld env=metaworld-mt10 agent=state_sac experiment.num_eval_episodes=1 experiment.num_train_steps=2000000 setup.seed=2 replay_buffer.batch_size=1280 agent.multitask.num_envs=10 agent.multitask.should_use_disentangled_alpha=True agent.encoder.type_to_select=identity agent.multitask.should_use_multi_head_policy=False agent.multitask.actor_cfg.should_condition_model_on_task_info=False agent.multitask.actor_cfg.should_condition_encoder_on_task_info=True agent.multitask.actor_cfg.should_concatenate_task_info_with_encoder=True +exp_name=mt10_mtsac_2000000 > trainlogs/mt10_mtsac_sd2.log 2>&1 &
CUDA_VISIBLE_DEVICES=0 nohup python -u main.py setup=metaworld env=metaworld-mt10 agent=state_sac experiment.num_eval_episodes=1 experiment.num_train_steps=2000000 setup.seed=3 replay_buffer.batch_size=1280 agent.multitask.num_envs=10 agent.multitask.should_use_disentangled_alpha=True agent.encoder.type_to_select=identity agent.multitask.should_use_multi_head_policy=False agent.multitask.actor_cfg.should_condition_model_on_task_info=False agent.multitask.actor_cfg.should_condition_encoder_on_task_info=True agent.multitask.actor_cfg.should_concatenate_task_info_with_encoder=True +exp_name=mt10_mtsac_2000000 > trainlogs/mt10_mtsac_sd3.log 2>&1 &
mt10_mtmhsac
CUDA_VISIBLE_DEVICES=1 nohup python -u main.py setup=metaworld env=metaworld-mt10 agent=state_sac experiment.num_eval_episodes=1 experiment.num_train_steps=2000000 setup.seed=1 replay_buffer.batch_size=1280 agent.multitask.num_envs=10 agent.multitask.should_use_disentangled_alpha=True agent.encoder.type_to_select=identity agent.multitask.should_use_multi_head_policy=True agent.multitask.actor_cfg.should_condition_model_on_task_info=False agent.multitask.actor_cfg.should_condition_encoder_on_task_info=False agent.multitask.actor_cfg.should_concatenate_task_info_with_encoder=False +exp_name=mt10_mtmhsac_2000000 > trainlogs/mt10_mtmhsac_sd1.log 2>&1 &
CUDA_VISIBLE_DEVICES=1 nohup python -u main.py setup=metaworld env=metaworld-mt10 agent=state_sac experiment.num_eval_episodes=1 experiment.num_train_steps=2000000 setup.seed=2 replay_buffer.batch_size=1280 agent.multitask.num_envs=10 agent.multitask.should_use_disentangled_alpha=True agent.encoder.type_to_select=identity agent.multitask.should_use_multi_head_policy=True agent.multitask.actor_cfg.should_condition_model_on_task_info=False agent.multitask.actor_cfg.should_condition_encoder_on_task_info=False agent.multitask.actor_cfg.should_concatenate_task_info_with_encoder=False +exp_name=mt10_mtmhsac_2000000 > trainlogs/mt10_mtmhsac_sd2.log 2>&1 &
CUDA_VISIBLE_DEVICES=1 nohup python -u main.py setup=metaworld env=metaworld-mt10 agent=state_sac experiment.num_eval_episodes=1 experiment.num_train_steps=2000000 setup.seed=3 replay_buffer.batch_size=1280 agent.multitask.num_envs=10 agent.multitask.should_use_disentangled_alpha=True agent.encoder.type_to_select=identity agent.multitask.should_use_multi_head_policy=True agent.multitask.actor_cfg.should_condition_model_on_task_info=False agent.multitask.actor_cfg.should_condition_encoder_on_task_info=False agent.multitask.actor_cfg.should_concatenate_task_info_with_encoder=False +exp_name=mt10_mtmhsac_2000000 > trainlogs/mt10_mtmhsac_sd3.log 2>&1 &
mt10_soft_modularization
CUDA_VISIBLE_DEVICES=1 nohup python -u main.py setup=metaworld env=metaworld-mt10 agent=state_sac experiment.num_eval_episodes=1 experiment.num_train_steps=2000000 setup.seed=1 replay_buffer.batch_size=1280 agent.multitask.num_envs=10 agent.multitask.should_use_disentangled_alpha=True agent.multitask.should_use_task_encoder=True agent.encoder.type_to_select=feedforward agent.multitask.actor_cfg.should_condition_model_on_task_info=True agent.multitask.actor_cfg.should_condition_encoder_on_task_info=False agent.multitask.actor_cfg.should_concatenate_task_info_with_encoder=False agent.multitask.actor_cfg.moe_cfg.should_use=True agent.multitask.actor_cfg.moe_cfg.mode=soft_modularization agent.multitask.should_use_multi_head_policy=False agent.encoder.feedforward.hidden_dim=50 agent.encoder.feedforward.num_layers=2 agent.encoder.feedforward.feature_dim=50 agent.actor.num_layers=4 agent.multitask.task_encoder_cfg.model_cfg.pretrained_embedding_cfg.should_use=False +exp_name=mt10_soft_modularization_2000000 > trainlogs/mt10_soft_modularization_sd1.log 2>&1 &
CUDA_VISIBLE_DEVICES=1 nohup python -u main.py setup=metaworld env=metaworld-mt10 agent=state_sac experiment.num_eval_episodes=1 experiment.num_train_steps=2000000 setup.seed=2 replay_buffer.batch_size=1280 agent.multitask.num_envs=10 agent.multitask.should_use_disentangled_alpha=True agent.multitask.should_use_task_encoder=True agent.encoder.type_to_select=feedforward agent.multitask.actor_cfg.should_condition_model_on_task_info=True agent.multitask.actor_cfg.should_condition_encoder_on_task_info=False agent.multitask.actor_cfg.should_concatenate_task_info_with_encoder=False agent.multitask.actor_cfg.moe_cfg.should_use=True agent.multitask.actor_cfg.moe_cfg.mode=soft_modularization agent.multitask.should_use_multi_head_policy=False agent.encoder.feedforward.hidden_dim=50 agent.encoder.feedforward.num_layers=2 agent.encoder.feedforward.feature_dim=50 agent.actor.num_layers=4 agent.multitask.task_encoder_cfg.model_cfg.pretrained_embedding_cfg.should_use=False +exp_name=mt10_soft_modularization_2000000 > trainlogs/mt10_soft_modularization_sd2.log 2>&1 &
CUDA_VISIBLE_DEVICES=1 nohup python -u main.py setup=metaworld env=metaworld-mt10 agent=state_sac experiment.num_eval_episodes=1 experiment.num_train_steps=2000000 setup.seed=3 replay_buffer.batch_size=1280 agent.multitask.num_envs=10 agent.multitask.should_use_disentangled_alpha=True agent.multitask.should_use_task_encoder=True agent.encoder.type_to_select=feedforward agent.multitask.actor_cfg.should_condition_model_on_task_info=True agent.multitask.actor_cfg.should_condition_encoder_on_task_info=False agent.multitask.actor_cfg.should_concatenate_task_info_with_encoder=False agent.multitask.actor_cfg.moe_cfg.should_use=True agent.multitask.actor_cfg.moe_cfg.mode=soft_modularization agent.multitask.should_use_multi_head_policy=False agent.encoder.feedforward.hidden_dim=50 agent.encoder.feedforward.num_layers=2 agent.encoder.feedforward.feature_dim=50 agent.actor.num_layers=4 agent.multitask.task_encoder_cfg.model_cfg.pretrained_embedding_cfg.should_use=False +exp_name=mt10_soft_modularization_2000000 > trainlogs/mt10_soft_modularization_sd3.log 2>&1 &
System information

MTRL Version: latest :
MTRL environment Name: MT10 :
Python version: 1.5.0 :

Thank you very much!

You are using 2 million time steps and the paper is using 100k time steps, you should compare table1

You are using 2 million time steps and the paper is using 100k time steps, you should compare table1

The experimental results are still inconsistent with the table 1 in the paper:

Hi! Let me see if I can understand the issue here. The results in the paper are with 10 seeds. As you can see, even with 10 seeds, the standard error is quite high. For reference, standard error = standard deviation / sqrt(num of seeds). I understand that you ran the experiments with 3 seeds and the standard error bands that you get are quite high as well (especially for multi-headed SAC). Could you please try running with more seeds? Increasing the experiment.num_eval_episodes may also help to get more stable results. Could you also share the metaworld version (git commit) that you are using.

We are using the af8417bfc version as the environment, which is also used when we run the MTRL code :)

authors: Aithus-lsp shagunsodhani yuyuanq

repo: facebookresearch/mtrl


text:
[ADT] how to convert the point in camera coordinates to world coordinates?

Hi there, thank you for your amazing project! I am using the Aria Digital Twin dataset, and I want to know how to get the extrinsics of the camera-rgb for each timestamp. For example, in this folder of a video: projectaria_tools_adt_data/Apartment_release_clean_seq131_M1292/mps/slam/, there are two files: closed_loop_trajectory.csv and online_calibration.jsonl. Which one contains the extrinsics of the camera-rgb? Could you also provide a small code snippet for converting a 3D point in camera coordinates to world coordinates, or share a link to a tutorial? Thanks a lot!

Hi @yaojin17, we actually have a tutorial that shows how to take depth images and convert them to a pointcloud in the world frame. It also shows how to use the RGB images to color that pointcloud. Please take a look at the tutorial here: https://facebookresearch.github.io/projectaria_tools/docs/open_datasets/aria_digital_twin_dataset/advanced_tutorials/depth_maps_to_pointcloud
This shows how to get the camera extrinsics as well as the devices poses all using our AriaDigitalTwinDatasetProvider, so I hope this will answer all your questions.

Thanks for your light-speed answer. That's awesome! I think this could solve my problem. Thanks!


text:
Can we fetch patch embeddings for SAM encoder ? If yes, then how ?

As SAM encoder is ViT based model, can I get patch embeddings out of it ?

Context:
SAM encoder uses image input of 1024x1024 and patch size of 16x16. The encoder also consists of a neck module which has few Conv2D layers. The output shape of the encoder post the neck module is: 64x64x256.
Lets say, I want patch embeddings of the top-left 4 patches, its easily possible in models like ViT and DinoV2 (again, ViT based), but I am not able to understand on how to do the same over here.

Can some please guide me on this ? Thanks a lot in advance.

Yes it's possible to directly access the output of the image encoder. The embeddings are available from the SamPredictor object, under the .features attribute. The simplest way I can think of would be something like:
import cv2
from segment_anything import SamPredictor, sam_model_registry

# Load the image that you want to process
example_image = cv2.imread("path/to/image.jpg")

# This comes from the 'Getting Started' sample code provided on the repo page
sam = sam_model_registry["vit_b"](checkpoint="path/to/sam_model_vit-b.pth")
predictor = SamPredictor(sam)
predictor.set_image(example_image)

# *** This is how you can get the patch embeddings ***
patch_embeddings = predictor.features
# patch_embeddings.shape gives: torch.Size([1, 256, 64, 64])

If you wanted the top-left 4 patches (assuming 2x2 layout), you could do something like:
top_4_patches = patch_embeddings[:,:,:2,:2]
Alternatively, you could also just instantiate a copy of the image encoder class itself and run it's .forward(...) method to directly generate the patch embeddings. However, this would actually require a bit of messing about with how the model weights are loaded, in addition to handling the image preprocessing manually, so probably not as easy!

Hi @heyoeyo thanks for your response. For the second part, I have already figured out how to run the forward method of SAM encoder which takes input of: Batch_sizex3x1024x1024 image dimensions and output embedding of dim: batch_sizex256x64x64
As far as the embedding goes, it comes out of a neck module which has 2 conv2d layers, hence I got confused in understanding if it can be used as patch_embeddings or not.
But thanks to you, I rechecked the encoder code once and I believe it should work. The conv-neck module is only to reduce the dimensions of the embedding shape but the patches are still remaining consistent. Thanks a lot for your kind reply.

Just putting down my new understanding, feel free to correct me if required:
If patch size is 16x16 and image size is 1024x1024, the number of patches are actually 64*64 only and even our output shape is: 256x64x64 so this makes sense now.

That sounds right. It's a bit confusing looking at the code, because there is a patch_embed component which performs the first processing step that converts the input image into the 64x64 patches. However, that step gives different dimensions depending on the model used: 768x64x64 (vit-b), 1024x64x64 (vit-l) or 1280x64x64 (vit-h), and is only a small part of all the computation the model was trained to do.
Like you mentioned, there's a neck component that reduces the 768/1024/1280 dimension down to 256. There might be some benefit to using the tensor from just before the neck processing, depending on what you're doing with it. As far as I understand, the smallest size dimension (768) was chosen because it matches the 'dimensionality' of the underlying data, that is a 16x16 group of RGB values (16x16x3 = 768), whereas a size of 256 has to be 'throwing away' information, in some sense.

https://github.com/ByungKwanLee/Full-Segment-Anything addresses the ciritical issues of SAM, which supports batch-input on the full-grid prompt (automatic mask generation) with post-processing: removing duplicated or small regions and holes, under flexible input image size

Hi @ByungKwanLee, thanks a lot for sharing your work. For accommodating various different image sizes, you have added 1 parameter in the  build_sam code which is: custom_img_size. I do understand on high-level what would be happening  ahead but wanted to check with you few questions I had in my mind:

If we reduce the image size, will it drastically degrade the performance ?
If yes, can you please share your experiments around this ?

PS: your work looks amazing, thanks again for sharing and thank you in advance.

Thanks for your interest in full-segment-anything. Actually, I only modified the specific part of the original SAM code in order to use custom image size, for your purpose, rather than fixed 1024 resolution. In other words, I did not re-train SAM architecture to cover dynamic resolution size, but conduct slight modifications in the code-level. Therefore, it is unfortunately impossible to provide quantitative results, under various resolution, compred by those of SAM. However, it is definitely sure that image-encoder is highly important part to understand the image before decoding and its performance is very dependent with the image resolution size, hence performance degradation is naturally happening once we down-size the image.

authors: ByungKwanLee heyoeyo yogendra-yatnalkar

repo: facebookresearch/segment-anything


text:
Downloading the full dataset

has anyone tried downloading the full dataset?
https://ai.facebook.com/datasets/segment-anything-downloads/
Any idea how big the data is?
I started yesterday and only have completed about 10 files so far...
File sizes are not the same, there's no way of estimating the total size

import os
import requests
from tqdm import tqdm
import pandas as pd
import boto3

def download_file(url, headers, output_filename):
    response = requests.get(url, headers=headers, stream=True)
    response.raise_for_status()
    total_size = int(response.headers.get('content-length', 0))
    progress_bar = tqdm(total=total_size, unit='iB', unit_scale=True)
    try:
        with open(output_filename, 'wb') as file:
            for chunk in response.iter_content(chunk_size=8192):
                file.write(chunk)
                progress_bar.update(len(chunk))
        return True
    except Exception as e:
        print(e)
    return None

def upload_file_to_s3(file_path, bucket, object_key):
    s3 = boto3.client('s3')
    with open(file_path, 'rb') as file:
        s3.upload_fileobj(
            file,
            bucket,
            object_key,
            ExtraArgs={
                'StorageClass': 'STANDARD_IA'  # SIA is called "STANDARD_IA" (Standard Infrequent Access) in boto3
            }
        )
if __name__ == "__main__":

    headers = {
        "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8",
        "accept-encoding": "gzip, deflate, br",
        "accept-language": "en-US,en;q=0.7",
        "cache-control": "no-cache",
        "pragma": "no-cache",
        "sec-fetch-dest": "document",
        "sec-fetch-mode": "navigate",
        "sec-fetch-site": "none",
        "sec-fetch-user": "?1",
        "sec-gpc": "1",
        "upgrade-insecure-requests": "1",
        "user-agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36"
    }

    df = pd.read_csv("urls", sep="\t")
    for fname, url in zip(df["file_name"], df["cdn_link"]):
        res = download_file(url=url, headers=headers, output_filename=fname)
        if res:
            upload_file_to_s3(file_path=fname, bucket=YOUR_BUCKET, object_key=f"SA-1B/{fname}")
            os.remove(fname)

courtesy of GPT4

Thanks! Do mind sharing your prompt? Want to customize it

Any idea how big the data is?

The total size of all tar archives is 11,298,949,953,923 byte (about 11.3 TB).
You can calculate the size using HTTP HEAD requests without downloading the file:
import requests

# File with URLs from https://ai.facebook.com/datasets/segment-anything-downloads/
urls = "An8MNcSV8eixKBYJ2kyw6sfPh-J9U4tH2BV7uPzibNa0pu4uHi6fyXdlbADVO4nfvsWpTwR8B0usCARHTz33cBQNrC0kWZsD1MbBWjw.txt"

with open(urls) as f:
    lines = f.read().splitlines()[1:]

total_size = 0

for line in lines:
    filename, url = line.split()

    # Make a HEAD request to get the file size
    with requests.head(url) as r:
        size = int(r.headers['Content-Length'])

    total_size += size

    print(f"{filename} {total_size}")

Have less than 40gb downloaded so far. This will probably take a month or two

I have another way,  only one line:
cat ~/fb-sam.txt | parallel -j 5  --colsep $'\t'  wget -nc  -c  {2}    -O {1}

fb-sam.txt is a file copy from  dataset txt
which  removed the header line.

import os
import requests
from tqdm import tqdm
import pandas as pd
import boto3

def download_file(url, headers, output_filename):
    response = requests.get(url, headers=headers, stream=True)
    response.raise_for_status()
    total_size = int(response.headers.get('content-length', 0))
    progress_bar = tqdm(total=total_size, unit='iB', unit_scale=True)
    try:
        with open(output_filename, 'wb') as file:
            for chunk in response.iter_content(chunk_size=8192):
                file.write(chunk)
                progress_bar.update(len(chunk))
        return True
    except Exception as e:
        print(e)
    return None

def upload_file_to_s3(file_path, bucket, object_key):
    s3 = boto3.client('s3')
    with open(file_path, 'rb') as file:
        s3.upload_fileobj(
            file,
            bucket,
            object_key,
            ExtraArgs={
                'StorageClass': 'STANDARD_IA'  # SIA is called "STANDARD_IA" (Standard Infrequent Access) in boto3
            }
        )
if __name__ == "__main__":

    headers = {
        "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8",
        "accept-encoding": "gzip, deflate, br",
        "accept-language": "en-US,en;q=0.7",
        "cache-control": "no-cache",
        "pragma": "no-cache",
        "sec-fetch-dest": "document",
        "sec-fetch-mode": "navigate",
        "sec-fetch-site": "none",
        "sec-fetch-user": "?1",
        "sec-gpc": "1",
        "upgrade-insecure-requests": "1",
        "user-agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36"
    }

    df = pd.read_csv("urls", sep="\t")
    for fname, url in zip(df["file_name"], df["cdn_link"]):
        res = download_file(url=url, headers=headers, output_filename=fname)
        if res:
            upload_file_to_s3(file_path=fname, bucket=YOUR_BUCKET, object_key=f"SA-1B/{fname}")
            os.remove(fname)

courtesy of GPT4

how to solve "ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接"

Has anyone downloaded the full dataset? Can you share the checksum for validation? md5sum *.tar > checklist.chk

Has anyone downloaded the full dataset? Can you share the checksum for validation? md5sum *.tar > checklist.chk

I'm doing it. I will come back and paste my result when it's done. Could you please share your checksum with me?

@ElectronicElephant Sure, my download will finish in 30 min and then I will calculate checksum.

@VicaYang Hi, I have checked the list and found your tar file 7 and 17 are not correct. (I re-downloaded these two files and checked their MD5). Others are good.

@ElectronicElephant Yes, I redownloaded the two files and got the same results. Thank you so much. I also updated my checklist.txt

Hello, I suggest you can try this. https://github.com/volgachen/SA-1B-downloader.

@VicaYang @ElectronicElephant @drunkpig could you please share your download script. I have compare my md5sum with yours, but none of them matches


text:
Feature request: Interactive features

Hi, are there any plans to include interactive features like sliders?

Hi @tachim,
Thanks for your post! Can you provide an example of 'sliders'? In general, we're looking forward to plugging in various visualization APIs into visdom.

Hi @ajabri, I'm referring to visualizations like these: https://nbviewer.jupyter.org/gist/jackparmer/239c00f721097deb11fd. Not high priority at all, just a thought.

Hi @ajabri
Is there any work being done on this. What are possible ideas for the slider and what exactly is it's utility? Issue #114 looks at much broader usage of slider, is that something we are looking. I am interested in trying to implement it out.

We're not actively working on this right now (busy with other things), but we welcome PRs implementing (part of) this functionality!

authors: ajabri lvdmaaten shubhamjain0594 tachim

repo: facebookresearch/visdom


text:
Implement BYOL

🌟 New SSL approach addition
Approach description
BYOL https://arxiv.org/abs/2006.07733
Open source status

[ ] the model implementation is available: (give details)
[ ] the model weights are available: (give details)
[ ] who are the authors: (mention them, if possible by @gh-username)

@chaoyanghe  that sounds great. Just sharing some pointers that could be helpful:
In the VISSL docs, I created several flowcharts https://vissl.readthedocs.io/en/latest/flowcharts/train_workflow.html that could be helpful to understand the execution.
Further look at how to extend several components of VISSL in the docs https://vissl.readthedocs.io/en/latest/extend_modules/data_transforms.html
My understanding with BYOL is that : we would need to ensure that the data transforms are correct + make sure the loss is correct , the head of the model is correct -> all these components are modular and the docs above will be helpful.
Also look at the MoCo hook https://github.com/facebookresearch/vissl/blob/master/vissl/hooks/moco_hooks.py and moco loss https://github.com/facebookresearch/vissl/blob/master/vissl/losses/moco_loss.py for how we handled the momentum encoder
Lastly, feel free to reach out on this issue anytime :) thank you again! :)

repo: facebookresearch/vissl


text:
Babel 7: TypeError: Cannot read property 'replace' of undefined

Trying to move to babel 7...

"webpack": "^4.16.5",
"@babel/core": "^7.0.0-rc.1",
"babel-plugin-dynamic-import-node": "^2.0.0",
"babel-plugin-universal-import": "faceyspacey/babel-plugin-universal-import#webpack-4",
"babel-preset-react-app": "^4.0.0-next.66cc7a90",
...

The build process interrupts with an error shown below (see trace).
trace

/home/anton/Documents/workspace-sts/nodejs-spring-cloud-app-boilerplate/node_modules/babel-plugin-universal-import/index.js:24
  return baseDir.replace(/^[./]+|(\.js$)/g, '')
                 ^

TypeError: Cannot read property 'replace' of undefined
    at trimChunkNameBaseDir (/home/anton/Documents/workspace-sts/nodejs-spring-cloud-app-boilerplate/node_modules/babel-plugin-universal-import/index.js:24:18)
    at getMagicCommentChunkName (/home/anton/Documents/workspace-sts/nodejs-spring-cloud-app-boilerplate/node_modules/babel-plugin-universal-import/index.js:64:23)
    at checkForNestedChunkName (/home/anton/Documents/workspace-sts/nodejs-spring-cloud-app-boilerplate/node_modules/babel-plugin-universal-import/index.js:164:30)
    at PluginPass.Import (/home/anton/Documents/workspace-sts/nodejs-spring-cloud-app-boilerplate/node_modules/babel-plugin-universal-import/index.js:190:33)
    at newFn (/home/anton/Documents/workspace-sts/nodejs-spring-cloud-app-boilerplate/node_modules/@babel/core/node_modules/@babel/traverse/lib/visitors.js:193:21)
    at NodePath._call (/home/anton/Documents/workspace-sts/nodejs-spring-cloud-app-boilerplate/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/context.js:53:20)
    at NodePath.call (/home/anton/Documents/workspace-sts/nodejs-spring-cloud-app-boilerplate/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/context.js:40:17)
    at NodePath.visit (/home/anton/Documents/workspace-sts/nodejs-spring-cloud-app-boilerplate/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/context.js:88:12)
    at TraversalContext.visitQueue (/home/anton/Documents/workspace-sts/nodejs-spring-cloud-app-boilerplate/node_modules/@babel/core/node_modules/@babel/traverse/lib/context.js:118:16)
    at TraversalContext.visitSingle (/home/anton/Documents/workspace-sts/nodejs-spring-cloud-app-boilerplate/node_modules/@babel/core/node_modules/@babel/traverse/lib/context.js:90:19)
error Command failed with exit code 1.

The components are kinda:
component: universal(props => import(/* webpackChunkName: 'components-Home' */ /* webpackMode: "lazy" */ '../components/Home'),
    {
        resolve: props => require.resolveWeak('../components/Home'),
        chunkName: 'components-Home'
    }),
    loadData: async (store, params) => {
        if(store) {
            store.dispatch(actions.setMessage('Hi, I\'m from server!'))
        }
        return Promise.resolve()
    },

When I switch the using of UC in code off and start project with only empty wrappers around the absent components, project is been built successfully.

Do I wrong smth or is it a bug?

PS The components like above are working "somehow" with babel 6. "somehow" - yep, but do work.

try updating babel to the same one as in the package?

Moment...

Nope, the same error...

if you remove /* webpackMode: "lazy" */

"babel-plugin-universal-import": "faceyspacey/babel-plugin-universal-import#webpack-4", might be better to use npm

Nope. I did it before I wrote this issue... Now - the same, after remove.

to use npm ...
Tried, but with the same result...

what about deleting all lock files, and node module directory

otherwise, can i see a repo and ill investigate it

Hah, I did everything we discuss! :)
About repo - I could, but it works opposite spring cloud infrastructure... Too many things to up... I can copy-pasta here the pieces of code you might interested in...

I'll try to cut some code to be able run it "standalone"...
When I'll be ready, I post a link here.
Thank you, Zack!

Here it is.
Please let me know you've got it, I'll close an access.

This is pretty dirty, do not judge strictly... :)

cool ill see what i can do

May I close access?

By the way, look at src/utils/main-chunks.js. I got AggressiveSplittingPlugin working with UC together.

So ive gotton you past all the build errors, but theres some server issues where it wont start up. But i believe the universal things should work now
aggressive splitting was enabled in a recent update, it works best without named chunks so turning that off is also a nice way to go
https://drive.google.com/open?id=1u9ACY1nWrB1F_1GSVq8RrXVMUj2FXkcd

you should have used RFR, it had the whole routing & universal stuff sorted :P

Awesome!
Thank you, Zack!!!
But I have no access to that link you've posted... Please approve it (I sent request).

done 👍 hope it helps man, theres a few things that dont look right, but im currently doing a big contract so i cant devote alot of time to the free stuff, for the next couple weeks at least

Zack,
You've done non-trivial things I didn't see like using regeneration-plugin and some others.
I've fixed some little errors (most of them showed up after I commented cloud-related code before sending you the project), it works like a charm now!
Thank you so much!!! You saved me many hours! Now I can continue my work freely.
BTW, I've used RFR before. It's amazing tool! James has done a great job, and your support breathes a new life into the toolset! Now, with webpack-4 support and babel 7, I can return to using it.
And again, thank you!!!

aggressive splitting was enabled in a recent update, it works best without named chunks so turning that off is also a nice way to go

May be, there is some misunderstandings... Do we discuss chunks of components? Or we speak about chunks got from main.js by splitting it?
Hmm, may be I picked out a wrong version of webpack-flush-chunks (I use the 2.0.1), but there are no entries of splitted main.js in assetsByChunkName. I tried the same config as described in docs, "after"-subsection, but I steel need to parse namedChunkGroups. The assetsByChunkName node in stats.js only contains components files. But wanted chunks of main.js are contained in stats.namedChunkGroups.main.assets, as unsorted array of strings. It was the reason why I use my own code to get chunks of main.js got by AggressiveSplittingPlugin.
The tests from master contain filesFromChunks method but this method is private, as I see...
I get chunks of main.js so:
in prod client webpack config:
       new webpack.optimize.AggressiveSplittingPlugin({
            minSize: 30000,
            maxSize: 50000
       }),
       ...
       new StatsWriterPlugin({
            fields: null,
            transform(data) {
                return Promise.resolve().then(() => JSON.stringify({
                    assetsByChunkName: data.assetsByChunkName,
                    publicPath: data.publicPath,
                    namedChunkGroups: {
                        main : {
                            assets: data.namedChunkGroups.main.assets
                        }
                    }
                }, null, 2))
            }
        }),
        ...

after that I filter the array to get css/js and exclude maps, and sort found by the number in name of the chunk.
Is there more clean approach, using UC-environment library? May be I missed smth?.. In other words, how I can get chunks of main.js got by AggressiveSplittingPlugin?
Do not hurry up with an answer or comment, I can wait: it works perfectly, but I'd be glad to find the smartest way.

The final task is simple: to insert chunks of main.js into page while ssr.
How I can use an existed API to get it works? To not reinvent a bicycle,
and taking into account component hierarchy... Now, my approach doesn't
take into account component hierarchy.
чт, 16 авг. 2018 г., 19:20 Zack Jackson notifications@github.com:

Lets rephrase that. You want aggressive code splitting, and what you have
isnt that? I see you using stats, but id dump the whole json in there.
Aggressive splitting requires a whole lot more of webpack manifest as we
need to search through the modules inside and resolve them to a chunk of
code who correlates to the parent of the module.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/faceyspacey/babel-plugin-universal-import/issues/64#issuecomment-413602882,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACzyA_V0lodyCB0zFeIvdbwl-aqg0jUcks5uRZvcgaJpZM4V8laI
.

Main.js contains everithing except components.

you wanna aggressively split vendor chunks?

Yo, do you have skype or google hangouts. Might be quicker to just call and tell you

I do it, but I'm afraid, in a wrong way. =)
Zack, my English is SO BAD, I'm not sure I will understand you and you will understand me... I'd really be glad to practise, but not sure it will be as productive as you're expecting... :))) We can try, no problem, but it will be so hard... =))) May be when you will have more spare time... Now, I would be uncomfortable tearing you off from doing things and mumbling something incomprehensible at that time...
Anyway, re6ex ---- gmail

I worked with Israelis and russians. Im sure ill understand. I dont mind
To join the video meeting, click this link: https://meet.google.com/qyn-bpsp-wwz
Otherwise, to join by phone, dial +1 956-752-6715 and enter this PIN: 118 910 485#

I have to install my video camera. We have moved some time ago, stuff is
everywhere in the flat... It takes some time. Can you wait?
чт, 16 авг. 2018 г., 19:48 Zack Jackson notifications@github.com:

I worked with Israelis and russians. Im sure ill understand. I dont mind
To join the video meeting, click this link:
https://meet.google.com/qyn-bpsp-wwz
Otherwise, to join by phone, dial +1 956-752-6715 and enter this PIN: 118
910 485#
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/faceyspacey/babel-plugin-universal-import/issues/64#issuecomment-413611476,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACzyA7EpM0WWpH6uzmkcvt-W2mkuOJvoks5uRaJagaJpZM4V8laI
.

no need for a camera . haha! just voice should do 😂 dont stress if you cant find

It has microphone inside...
чт, 16 авг. 2018 г., 19:55 Zack Jackson notifications@github.com:

no need for a camera . haha! just voice should do 😂 dont stress if you
cant find
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/faceyspacey/babel-plugin-universal-import/issues/64#issuecomment-413613481,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACzyA1FOe8O14wHZ5Hpnlje98q6KJWR8ks5uRaP-gaJpZM4V8laI
.

ohhh

I'm at meet.google.com. Waiting sending a request
On Thu, Aug 16, 2018 at 8:07 PM Zack Jackson notifications@github.com
wrote:

ohhh
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/faceyspacey/babel-plugin-universal-import/issues/64#issuecomment-413616890,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACzyA0v70rKEUAkwYPwgrXpGssyom_Zbks5uRabKgaJpZM4V8laI
.

--
С уважением,
Антон Брок-Волчанский

Zack, could you repeat the most important nodes for using aggressive
splitting you wrote yesterday, please?

gotta have
export type Stats = {
assetsByChunkName: Object,
namedChunkGroups: FilesMap,
chunks: Array,
modules: Array,
publicPath: string
}
On Fri, Aug 17, 2018 at 7:42 AM Anton Brok-Volchansky <
notifications@github.com> wrote:

Zack, could you repeat the most important nodes for using aggressive
splitting you wrote yesterday, please?
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/faceyspacey/babel-plugin-universal-import/issues/64#issuecomment-413887842,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AYGpTGI4L1amyHQniNBVGtjNqlxXwa9-ks5uRtY6gaJpZM4V8laI
.

Thanks!

For everyone who plan using aggressive splitting:
Aggressive Splitting (AS) is needless in dev mode. Moreover, if you switch AS on in dev mode, HMR wouldn't work properly.
So,  in dev mode, there aren't any benefits of using AS.
AS can be usefull in production mode only.

Aggressive splitting is meant for production. I've never tried it in dev mode but it makes sense that is can cause issues with hmr due to the rebuild being internally generated and aggressively split.
Code splitting is useful in dev but aggressive is best for production

Lol I'll go back and check it.
The docs for everything need to be re-written
I'm planning to but I've got some back do back contracts at the moment.

I'd be glad to help with it. I have not so much time, but a little is
better as nothing. :)
If you agree, we can discuss the strategy how to do it.
вс, 2 сент. 2018 г., 21:26 Zack Jackson notifications@github.com:

Lol I'll go back and check it.
The docs for everything need to be re-written
I'm planning to but I've got some back do back contracts at the moment.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/faceyspacey/babel-plugin-universal-import/issues/64#issuecomment-417949610,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACzyA6qpOb7K0uNDfnmAEk11ECrFL6Kwks5uXCLBgaJpZM4V8laI
.

re6exp at g(mail)

Totally! Would be fantastic
Every little bit helps
If you have slack, I have a company slack that I can invite you to, easy to communicate there. Otherwise email is fine :)
Thanks for the assistance!

I create an account at Slack. It's named the same like my account here.
On Sun, Sep 2, 2018 at 10:08 PM Zack Jackson notifications@github.com
wrote:

Totally! Would be fantastic
Every little bit helps
If you have slack, I have a company slack that I can invite you to, easy
to communicate there. Otherwise email is fine :)
Thanks for the assistance!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/faceyspacey/babel-plugin-universal-import/issues/64#issuecomment-417952962,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACzyA_kRaixovLCSgQBaMBepcbRKKJDbks5uXCyjgaJpZM4V8laI
.

--
С уважением,
Антон Брок-Волчанский

https://join.slack.com/t/scriptedalchemy/shared_invite/enQtNDI3NzY2NjkwMDAzLWI2MDc3NmY3MzMxZTZjOTFhODQ1MmU1Y2ExZjM1ZjkyYzA4YzliMzkzOGM1YTc3N2E3MjFlYjcxNTI4N2Y2MWE
Sent from my iPhone

On Sep 2, 2018, at 12:17 PM, Anton Brok-Volchansky notifications@github.com wrote:
I create an account at Slack. It's named the same like my account here.
On Sun, Sep 2, 2018 at 10:08 PM Zack Jackson notifications@github.com
wrote:

Totally! Would be fantastic
Every little bit helps
If you have slack, I have a company slack that I can invite you to, easy
to communicate there. Otherwise email is fine :)
Thanks for the assistance!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/faceyspacey/babel-plugin-universal-import/issues/64#issuecomment-417952962,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACzyA_kRaixovLCSgQBaMBepcbRKKJDbks5uXCyjgaJpZM4V8laI
.

--
С уважением,
Антон Брок-Волчанский
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub, or mute the thread.

Also seeing this issue (TypeError: Cannot read property 'replace' of undefined) while using babel 7, but it's unclear what the resolution is based on this issue

Release on the way :) still testing it out. Check the open PR
@franjohn21

Which PR are you referring to?

This is blocking us from upgrading to babel 7 .. happy to help contribute/test out :)

If you can get it on babel 7... Ill merge it!
I am not great with babel plugins and not sure what the upgrade path is on this

Actually, it appears that it has already been updated to babel 7.  I have not had any issues- however if you can debug the issue and PR it. Ill merge this in, alternatively. Do you have a repo

Yeah they conflict:p

Also to those who have flush chunk issues. If you turn off named modules or just generate a hash on the output, with now [name] it works pretty well.
Personally, that’s what I do in prod. In dev I use names and just let initial entries get flushed out.


text:
🛑 POST to /search is down

In a9b4406, POST to /search (https://dev.factiverse.no/v1/search) was down:

HTTP code: 502
Response time: 91 ms

Resolved: POST to /search is back up in c830349.

repo: factiverse/upptime-dev


text:
Show round-per-level spells boosted to 24 hours by Greater Enduring without the toggle.

Request: Make spells with base duration round per CL that are at 24hours from Greater Enduring show without the toggle.
It shouldn't be that hard to insert a check for Spell Is Extended, CL is 25+ and Caster Has Greater Enduring in there, and it would be super convenient.

Yeah will do 👍

repo: factubsio/BubbleBuffs


text:
🛑 Sudestec API is down

In 02125fc, Sudestec API (https://api.sudestec.ar/_/#/login) was down:

HTTP code: 523
Response time: 1269 ms

Resolved: Sudestec API is back up in 503e5ef after 7 minutes.


text:
fix(fal): backward compatibility with isolate 0.12.7

Yanked trash isolate releases, trying to keep this safe until previews are working and I can test this out better.

@chamini2 released one is asking for 0.12.3,<1 , so with everything yanked it should get 0.12.7

repo: fal-ai/fal