russell - active nodes


russell 15d, 20h ago

Sup

link
hide preview

What's next? verify your email address for reply notifications!


russell 32d, 13h ago link
hide preview

What's next? verify your email address for reply notifications!


russell 42d, 14h ago

Hello Knightsworth!

link
hide preview

What's next? verify your email address for reply notifications!


russell 58d, 14h ago

Remarkbox was open sourced & placed into the public domain. Fork or help us code here!

https://git.unturf.com/engineering/remarkbox/remarkbox

link
hide preview

What's next? verify your email address for reply notifications!


russell 82d, 15h ago [edited]

It's open source so you can literally fork this code & make it better. If an anon uses a fake or invalid email the comment still shows up!

If we make email optional that might be what you are looking for, merge requests will be reviewed!

https://git.unturf.com/engineering/remarkbox/remarkbox/-/blob/main/README.rst

If you create a git account message me so I can approve & group you into the proper roles!

link
hide preview

What's next? verify your email address for reply notifications!


russell 92d, 15h ago

Works on desktop but not mobile?

link
hide preview

What's next? verify your email address for reply notifications!


russell 94d, 11h ago

Thank you for the merge requests, both were approved and released to prod!

link
hide preview

What's next? verify your email address for reply notifications!


russell 94d, 11h ago

OK how does it look now?

h1 (should be 3em)

h2 (should be 2.5em)

h3 (should be 2em)

h4 (should be 1.75em)

h5 (should be 1.5em)
h6 (should be 1.25em)
link
hide preview

What's next? verify your email address for reply notifications!


russell 95d, 14h ago

Sorry I don't understand why this happened to you!

I will look at your namespace to try to figure it out.

link
hide preview

What's next? verify your email address for reply notifications!


russell 112d, 15h ago

Word, Thanks for looking into these essential details!

link
hide preview

What's next? verify your email address for reply notifications!


russell 113d, 14h ago [edited]

Not an error, I have to approve you! Lots of spammers! Reach me on email so I know what account to approve. Otherwise what user or email did you choose?

Kilogram Honda is that you?

link
hide preview

What's next? verify your email address for reply notifications!


russell 114d, 15h ago [edited]

You: expalin like I am 10

AI:

Imagine you and your friends want to send secret messages to each other. There are two ways to do this:

Symmetric Encryption: This is like having a special secret code book with lots of different codes. If you and your friends all get the same code book, you can send messages to each other using those codes. But, if someone else finds out your code book, they can also read your messages. To protect messages between you and just one friend, you need many different codes, and you have to share the code book with each friend separately. If you have 10 friends, you'll need 45 codes and you'll have to share the code book 10 times.

Public Key Encryption: This is like having a special lock and key for each friend. You give each friend a public lock (which everyone can see) and a private key (which only your friend can see). Now, when you send a message, you use your friend's public lock, and only your friend can unlock it with their private key. No one else can read your message. If you have 10 friends, you'll need 20 locks and keys in total, and you won't need to share anything secret with your friends before you start sending messages.

In both methods, you need to keep your secret codes or keys safe. Public Key Encryption is often safer because it's harder for someone to pretend to be your friend and read your messages.

link
hide preview

What's next? verify your email address for reply notifications!


russell 115d, 15h ago

Welcome, the code is open source, feel free to fix our default CSS.

link
hide preview

What's next? verify your email address for reply notifications!


russell 116d, 15h ago [edited]

Cool, PayPal only for now because stripe integration broke. Always voluntary, Remarkbox is on Autopilot!;)

If you find a good CSS for dark themes let me know!

link
hide preview

What's next? verify your email address for reply notifications!


russell 155d, 11h ago

Balancing Risk and Process for Continuous Improvement

In my previous post, I discussed the importance of balancing risk with process in order to foster a culture of innovation and growth within an organization. This balance is crucial for any company that aims to stay competitive and adapt to the ever-changing market conditions.

One key aspect of finding this balance is to constantly assess and manage risks while implementing processes that streamline work and reduce unnecessary obstacles. By doing so, a company can ensure that it is not only taking calculated risks but also leveraging its resources effectively.

Here are some steps to maintain the right balance between risk and process:

  1. Embrace a culture of continuous improvement: Encourage your team to regularly review and refine processes, identifying areas for improvement and implementing changes as needed. This will help you stay agile and adapt to new challenges.

  2. Foster open communication: Encourage open communication within your team and across departments. This will help identify potential risks and ensure that everyone is on the same page when it comes to process improvements.

  3. Invest in the right tools and technologies: Make sure that your team has access to the tools and technologies they need to work efficiently and effectively. This includes automation tools, collaboration platforms, and other resources that can help streamline processes and reduce risks.

  4. Encourage experimentation and learning: Encourage your team to experiment with new ideas and approaches, even if they involve taking some risks. By learning from these experiments, you can refine your processes and reduce the overall risk associated with future endeavors.

  5. Monitor and measure progress: Regularly assess the effectiveness of your processes and the risks associated with your actions. Use this data to make informed decisions and continuously improve your approach.

In conclusion, striking the right balance between risk and process is essential for any organization that wants to thrive in today's competitive environment. By embracing a culture of continuous improvement, fostering open communication, investing in the right tools and technologies, encouraging experimentation and learning, and monitoring and measuring progress, you can create an environment that supports innovation and growth while minimizing risks.

What do you think about this approach? Have you implemented any similar strategies in your own organization? I'd love to hear your thoughts and experiences in the comments below.

link
hide preview

What's next? verify your email address for reply notifications!


russell 156d, 5h ago

here are 10 reasons why you should care about using the free LLM & Text To Speech Artificial Intelligence Service provided by unturf.

  • Accessibility: The service offers free AI tools for everyone, making cutting-edge AI technology accessible without any cost.
  • Open-source: You are encouraged to contribute and build upon the open-source code & models used, promoting collaboration and innovation in the AI community.
  • Drop-in replacement: The service intends to be a drop-in replacement for existing open-source OpenAI clients, making it easy to integrate into your projects.
  • No server required: The web client-only solution allows you to interact with AI services directly from static sites or CDNs without needing a server or valid API key, making it efficient and accessible.

  • Battery power efficiency: By eliminating the need for a server and using a browser client, the API handles requests efficiently, especially for devices on battery power like phones and laptops.

  • Wide compatibility: The service is compatible with both Python and Node.js, making it accessible to a broader range of developers and projects.

  • TTS (Text-to-Speech) endpoint: The service provides a Text-to-Speech endpoint that converts written text into spoken audio, allowing for easy audio content creation.

  • Hermes-3-Llama-3.1-8B model: The service uses the powerful NousResearch/Hermes-3-Llama-3.1-8B model, providing a robust and advanced AI experience.

  • Easy integration: The provided code examples and documentation make it easy to integrate the AI services into your projects with minimal effort.

  • Community-driven: The service is built on open-source principles and encourages collaboration, allowing you to contribute and benefit from the knowledge and resources of the AI community.

link
hide preview

What's next? verify your email address for reply notifications!


russell 156d, 5h ago

Title: Embracing Risk: The Path to Innovation and Growth

Introduction: In our previous blog post, "Risk, Process, and Balance," we discussed the delicate balance between taking risks and establishing processes within an organization. We emphasized that a healthy aversion to risk is essential for growth and innovation. In this follow-up post, we will delve deeper into the concept of embracing risk and how it can lead to success in both personal and professional settings.

  • The Importance of Taking Risks: Taking risks is an inherent part of life. Whether it's trying a new hobby, starting a business, or pursuing a career change, we are constantly faced with decisions that involve some level of uncertainty. While it's natural to feel apprehensive about the unknown, it's essential to understand that taking calculated risks can lead to incredible opportunities and personal growth.

  • Embracing Uncertainty: One of the most significant barriers to taking risks is the fear of uncertainty. We often fear the unknown, and the idea of stepping outside our comfort zones can be daunting. However, by embracing uncertainty and viewing it as an opportunity for learning and growth, we can break free from the limitations of our comfort zones.

  • Learning from Failure: Another critical aspect of taking risks is learning from failure. Failure is an inevitable part of the process, and it's essential to view it as a learning experience rather than a setback. By analyzing our mistakes and using them as opportunities for improvement, we can develop resilience and adaptability – two crucial traits for success in any endeavor.

  • Calculated Risk-Taking: When taking risks, it's essential to differentiate between calculated and uncalculated risks. Uncalculated risks are those taken without proper research, planning, or consideration of potential consequences. On the other hand, calculated risks involve thorough research, planning, and a clear understanding of the potential outcomes. By focusing on calculated risks, we can minimize potential losses and increase our chances of success.

  • Cultivating a Growth Mindset: A growth mindset is essential for embracing risk and learning from failure. By viewing challenges as opportunities for growth rather than insurmountable obstacles, we can develop the resilience and adaptability necessary to succeed in the face of uncertainty. Cultivating a growth mindset involves embracing lifelong learning, seeking feedback, and continuously striving for improvement.

  • Building a Supportive Network: Taking risks can be daunting, especially when faced alone. Building a supportive network of friends, family, and mentors can provide the encouragement and guidance needed to navigate the uncertainties of risk-taking. By surrounding ourselves with positive influences, we can develop the confidence and motivation necessary to pursue our goals.

Conclusion: Embracing risk is a critical component of personal and professional growth. By understanding the importance of calculated risk-taking, learning from failure, cultivating a growth mindset, and building a supportive network, we can overcome our fears and unlock new opportunities for success. Remember, the only true risk is not taking one at all. So, take a leap of faith, and see where your risks can lead you.

link
hide preview

What's next? verify your email address for reply notifications!


russell 158d, 14h ago

why should I care?

You might care about the Monoalphabetic Cipher and Inverse Written in Python for several reasons:

Cryptography: Understanding and implementing a monoalphabetic cipher can give you insights into the basic principles of cryptography and how simple substitution ciphers work. This knowledge can be useful for learning and experimenting with encryption techniques.

Coding Practice: The provided Python code demonstrates how to create a monoalphabetic cipher, its inverse, and how to use it for encryption and decryption. This can be a good example for learning Python programming and practicing coding skills.

Security: Although monoalphabetic ciphers are not considered secure for modern encryption purposes, studying them can help you understand the limitations of simple encryption methods and appreciate the need for more complex, secure algorithms.

Historical Context: Monoalphabetic ciphers have been used throughout history for secure communication. Learning about them can provide a glimpse into the evolution of encryption and its role in protecting information.

Fun and Educational: The content appears to be written in an engaging and easy-to-understand manner, making it a fun and educational read for anyone interested in learning about cryptography, programming, or just curious about the topic.

link
hide preview

What's next? verify your email address for reply notifications!


russell 158d, 14h ago

Why should I care?

You should care about the difference between symmetric encryption and public key encryption because they are both important methods used to secure communication and protect sensitive information. Understanding the differences between these two types of encryption can help you make informed decisions when it comes to choosing the right encryption method for your specific needs and ensuring the security of your data.

Symmetric encryption is faster and more efficient, making it suitable for tasks that require a high volume of secure communication, such as file transfers or real-time communication. However, it requires the exchange of a secret key between the communicating parties before they can encrypt and decrypt messages, which can be a security risk if the key is compromised.

Public key encryption, on the other hand, uses a pair of keys – a public key for encrypting messages and a private key for decrypting them. This method eliminates the need for exchanging a secret key and makes it more difficult for an attacker to intercept and decrypt messages. Public key encryption is often used for secure email communication, digital signatures, and other applications where the security of the communication is paramount.

In summary, understanding the differences between symmetric and public key encryption can help you better protect your data, choose the appropriate encryption method for your needs, and make informed decisions about security.

link
hide preview

What's next? verify your email address for reply notifications!


russell 172d, 13h ago

<3

link
hide preview

What's next? verify your email address for reply notifications!


russell 174d, 2h ago

Why should I care?

You should care because this webpage provides a detailed explanation and a step-by-step guide on how to efficiently generate and manage large datasets for the popular game "Battleship" using Python. The techniques and strategies discussed can be useful for various applications, such as:

  1. Exploring the vast solution space of complex problems: The multiprocessing approach used in this experiment can be adapted to solve other complex computational problems, allowing for efficient exploration of solution spaces that would otherwise be impractical to tackle.

  2. Data analysis and machine learning: The generated dataset can be used for various data analysis tasks or as training data for machine learning models, potentially leading to new insights or improvements in performance.

  3. Problem-solving and optimization: By understanding the process and techniques used in this experiment, you can apply similar strategies to optimize your own computational tasks and improve overall performance.

  4. AI-assisted problem-solving: The collaboration between the author and an AI assistant highlights the potential of AI in guiding and enhancing problem-solving processes, which can be beneficial for anyone looking to leverage AI in their own projects.

Overall, understanding the content of this webpage can provide valuable insights and techniques that can be applied to various fields, making it worth your time to explore and learn from it.

link
hide preview

What's next? verify your email address for reply notifications!


russell 174d, 3h ago

You should care because Remarkbox offers a solution to enhance the user experience on your website by providing an effective and engaging comment system. Here are some reasons to consider using Remarkbox:

  1. Keeps the conversation in the same place as your content: Remarkbox embeds directly into your pages, ensuring that discussions stay focused on the content being discussed.

  2. Increases user engagement: With features like real-time comment previews, deeply nested replies, and an orderly user interface, Remarkbox encourages users to participate in discussions more actively.

  3. No account needed to comment: This allows visitors to comment right away without having to sign up, making it easier for them to engage with your content.

  4. Fast page load speeds: Remarkbox is designed to maintain the performance of your website while providing a seamless commenting experience.

  5. No ads: Remarkbox doesn't serve any ads, ensuring a clean and uninterrupted user experience.

  6. Supports Markdown: This allows for easy formatting of comments, making them more readable and visually appealing.

  7. Static HTML sites compatibility: Remarkbox works on static HTML sites, making it a versatile solution for various types of websites.

  8. Privacy First.

By using Remarkbox, you can foster a stronger community around your content, encourage more engagement, and ultimately create a better experience for your website visitors.

link
hide preview

What's next? verify your email address for reply notifications!


russell 174d, 3h ago [edited]

How is this different to chatgpt?

This is different because it is designed to make AI more accessible to everyone, especially for those who want to integrate AI services into their applications or static sites without requiring an API key. Here are a few key differences compared to ChatGPT:

  1. Accessibility: ai.unturf.com provides examples in Python, Node.js, and a web-client only solution using uncloseai.js, making it easier for developers to integrate AI services into their projects, even on battery-powered devices.

  2. Open-source: The AI service and models are open-source, encouraging contributions and building upon the code and models, promoting collaboration and innovation in the AI community.

  3. Cost: The AI service is available for free, allowing users to interact with the model without any cost, making it more accessible to a wider audience.

  4. Specific Use-case: ai.unturf.com is specifically designed to be integrated into applications or static sites, whereas ChatGPT is a more general-purpose AI tool that can be used for a variety of tasks.

  5. Integration: uncloseai.js enables direct interaction with AI services from the browser without the need for an intermediary server/client, making it more efficient and accessible for thin clients.

While ai.unturf.com and uncloseai.js share similarities with ChatGPT in terms of providing AI-powered responses, they are designed with a focus on accessibility, open-source collaboration, and ease of integration for developers and static site owners.

link
hide preview

What's next? verify your email address for reply notifications!


russell 174d, 3h ago

You should care about this because it introduces two powerful tools that make AI more accessible to everyone:

  1. ai.unturf.com: This is an AI service powered by the model NousResearch/Hermes-3-Llama-3.1-8B. It allows users to interact with the AI model without any cost, promoting the principles of free and open-source development. This means that developers and enthusiasts can use the AI service for various purposes, such as building applications or experimenting with AI technology.

  2. uncloseai.js: This is a web-client only solution that enables static sites or CDNs hosting HTML content to interact with AI services directly from the browser. This approach eliminates the need for an intermediary server/client and API key, making it an efficient and accessible option for thin clients, especially those running on battery power. This tool is particularly useful for developers working with static sites or CDNs, as it allows them to incorporate AI capabilities without the need for additional infrastructure.

By using these tools, you can make AI more accessible and integrate it into your projects more easily. This can lead to the development of innovative applications and a more widespread adoption of AI technology. Additionally, supporting open-source and free AI tools contributes to the growth and advancement of the AI community, benefiting everyone involved.

link
hide preview

What's next? verify your email address for reply notifications!


russell 174d, 3h ago

you should care about installing YaCy on Ubuntu for a few reasons:

  1. Decentralization: YaCy is a free search engine that allows you to create a decentralized search instance on your Ubuntu server. By doing so, you contribute to a more open and collaborative internet, where your local search data can benefit all users of YaCy, not just you.

  2. Privacy: By running your own YaCy instance, you have more control over your search data and can ensure that your searches are not being monitored or tracked by third parties.

  3. Customization: Installing YaCy on Ubuntu allows you to customize your search experience and tailor it to your specific needs, such as by enabling SSL/TLS encryption for secure access to the admin interface.

  4. Skill development: Setting up YaCy on Ubuntu can be a learning experience, allowing you to gain hands-on experience with the Linux operating system, Java development, and web technologies.

  5. Peer-to-peer network: YaCy uses a peer-to-peer network for distributed scraping, meaning that the data you collect can be shared with other YaCy users, creating a collaborative network of search instances.

If you are interested in these aspects, installing YaCy on Ubuntu might be a valuable endeavor for you.

link
hide preview

What's next? verify your email address for reply notifications!


russell 174d, 3h ago

As a site builder, the key takeaways from this post are:

  1. User experience matters: Stack Overflow used AJAX to create a fun and clean user experience, which helped it gain traction. Your site should also focus on providing a smooth and engaging user experience.

  2. Gamification can drive user engagement: Stack Overflow introduced badges and karma to make the posting process feel like a game. This encouraged users to participate more actively. Consider incorporating elements of gamification into your site to boost user interaction.

  3. Search engine optimization (SEO) is crucial: Stack Overflow was designed to be easily indexed by search engines. Ensure your site is optimized for search engines by using relevant keywords, creating unique content, and structuring your pages effectively.

  4. Target your audience: Stack Overflow was geared towards geeks and programmers, who are quick to adopt new technologies. Identifying and targeting your specific audience can help you create content that resonates with them and attract more users.

  5. Build a strong brand: Stack Overflow's URL (StackOverflow.com) was easily memorable and recognizable. Choose a memorable domain name and create a strong brand identity to help your site stand out.

  6. Encourage user-generated content: Stack Overflow's design and features encouraged users to create and share high-quality content. Foster a community of active users by providing incentives for content creation and engagement.

link
hide preview

What's next? verify your email address for reply notifications!


russell 174d, 3h ago

The webpage content is about "Tips for getting pull requests approved". A pull request is a feature in version control systems like Git, which allows you to propose and discuss changes to a repository before merging them. This is commonly used in collaborative software development projects to review and accept changes made by contributors.

You should care about this content if you are:

  1. A developer who wants to contribute to open-source projects or collaborate with others on a codebase.
  2. A project maintainer who wants to streamline the process of reviewing and accepting contributions from other developers.
  3. Someone interested in learning about software development best practices and collaboration in coding projects.

Understanding how to create pull requests that get approved can help you become a valuable contributor, improve your coding skills, and make the collaboration process smoother and more efficient for everyone involved.

link
hide preview

What's next? verify your email address for reply notifications!


russell 174d, 3h ago

This was a thought experiment with a four-year-old child about the effects of swallowing air in different environments. The main points to consider are:

  1. The question itself is an interesting way to engage with a child and spark curiosity about the effects of air on our body.

  2. The answer demonstrates that our perception of weight can change depending on the environment we are in. Swallowing air doesn't make us lighter in general, but it can affect our buoyancy in water or our weight relative to a surrounding gas like helium.

In summary, the webpage provides an engaging story about a parent teaching their child about the effects of swallowing air in different environments. No matter what you will be heavier as a result but it depends on the surroundings whether that changes things.

link
hide preview

What's next? verify your email address for reply notifications!


russell 174d, 3h ago [edited]

Why should I care?

You should care about pre-signed GET and POST for Digital Ocean Spaces because it allows you to securely grant temporary access to private resources without giving full access to your users. This is useful in situations where you want to allow users to download or upload files to your Digital Ocean Space without exposing your entire storage system.

It helps protect your resources from unauthorized access and potential security threats like link sharing and replay attacks. This technique is particularly important for applications that require user-generated content or file sharing, ensuring that your system remains secure while still being user-friendly.

The request also goes directly from client/frontend to the storage server bypassing the web application server in the hot path. Typically the web application server can respond to web hooks after successful client uploads into the storage server backend.

link
hide preview

What's next? verify your email address for reply notifications!


russell 174d, 3h ago

Why should I care?

This post shows how to overload default function arguments in Python using lambda functions. This can be useful in situations where you need to call a function with different default arguments multiple times. By creating a lambda function, you can shorten the invocation length and make the code more concise and reusable. This can lead to cleaner and more efficient code, which is beneficial for both beginners and experienced Python developers. Additionally, using lambda functions can help improve the readability of your code and make it easier to maintain.

link
hide preview

What's next? verify your email address for reply notifications!


russell 174d, 11h ago

from discord user:

made a lil prototype site to interact with a character using your ai.unturf :~}

https://beetoochat.glitch.me/

link
hide preview

What's next? verify your email address for reply notifications!


russell 174d, 11h ago link
hide preview

What's next? verify your email address for reply notifications!


russell 180d, 11h ago [edited]

Sorry about the dupe comment. please disable the other one.

Hope you are well.

Remarkbox is open source now so we could switch or also have a checkbox for Katex. Sorry about the Markdown escaping, I think we should be able to fix that as well.

https://git.unturf.com/engineering/remarkbox/remarkbox

Let me know if you create an account & I can bless it into the system.

link
hide preview

What's next? verify your email address for reply notifications!


russell 181d, 6h ago
  • streaming sends chunks of tokens as they are ready to the client from the vLLM server. The client must stitch the tokens back together into a single response for the user.
  • non-streaming blocks on the client until all tokens are ready from the upstream vLLM server.
link
hide preview

What's next? verify your email address for reply notifications!


russell 209d, 13h ago

If 77.4B is the accurate number we should more the double all our estimations for the full dataset.

link
hide preview

What's next? verify your email address for reply notifications!


russell 210d, 13h ago

Still not sure but here are some approximations using math/python.

🚢 Exploring Battleship configurations revealed surprising results! Initially, ChatGPT guessed 49 trillion configurations for the no-touch rule. However, our exploration showed a stark contrast.

First, we attempted a recursive simulation to calculate configurations, but it timed out due to the complexity of enforcing the no-touch rule, which requires checking every possible placement and adjusting the grid dynamically. This approach was inefficient and impractical.

Next, we shifted to a combinatorial approach, calculating maximum placements for each ship and applying a buffer to account for the no-touch rule. This method was more efficient, avoiding the recursive complexity by estimating blocked space without checking every configuration.

The results were eye-opening: 77.4 billion configurations when ships can touch, but only 5.3 million when they cannot. The no-touch rule drastically reduces possibilities by blocking more grid space, highlighting how small rule changes can have huge impacts.

Our findings show that the initial guess was off by orders of magnitude for the no-touch rule, emphasizing the importance of methodical analysis in complex systems.

https://chatgpt.com/share/66e70579-6460-8000-9d09-a668caf98ddc

GM!

Does anyone know how many Battleship combinations there are?

https://russell.ballestrini.net/exploring-battleship-board-generation/

Does only God know the number? 🦊🐺

link
hide preview

What's next? verify your email address for reply notifications!


russell 211d, 13h ago

Sorry for the very late reply. I still run a dehimidifier during summer too or at least I think it kicks on. The unit does blow cold air when it's running, like a mini AC. The basement now stays a consistent cool temp all year round. It doesn't feel that much colder during the freeze of winter, it's still warm enough for a basement. Hope you found an answer sooner and found some cost savings!

link
hide preview

What's next? verify your email address for reply notifications!


russell 211d, 23h ago [edited]

Benchmark: Ad Hoc vs Precomputed Boards for Battleship Solvers

Ad Hoc Computation:

The place_ships function generates boards randomly. Its time complexity is O(n), where n is the grid size (100 in this case). However, due to the random nature of ship placement, there might be multiple attempts required to place all ships successfully, potentially increasing the effective time complexity.

For each scale:

100 boards: 100 * O(n) = O(100n)
1000 boards: 1000 * O(n) = O(1000n)
10000 boards: 10000 * O(n) = O(10000n)
100000 boards: 100000 * O(n) = O(100000n)

Given the O(n) complexity of Battleship puzzles, we conducted a benchmark to compare ad hoc board generation with loading precomputed data. Here's the code and results:

import time
import random
import itertools

#import json
import orjson as json

from battleship_boards import place_ships


def load_random_subset(file_path, num_records):
    with open(file_path, "r") as f:
        total_lines = sum(1 for _ in f)
        f.seek(0)

        start_line = random.randint(0, total_lines - num_records)
        skipped_lines = itertools.islice(f, start_line)

        selected_lines = []
        for line in skipped_lines:
            try:
                parsed_board = json.loads(line.strip())
                selected_lines.append(parsed_board)
                if len(selected_lines) == num_records:
                    break
            except json.JSONDecodeError:
                continue

        return selected_lines


def generate_boards_ad_hoc(num_boards):
    return [place_ships() for _ in range(num_boards)]


def benchmark(scale):
    print(f"\nBenchmarking for {scale} boards:")

    start_time = time.time()
    ad_hoc_boards = generate_boards_ad_hoc(scale)
    ad_hoc_time = time.time() - start_time

    start_time = time.time()
    random_subset_boards = load_random_subset("battleship_boards_merge.json", scale)
    random_subset_time = time.time() - start_time

    print(f"\nAd hoc generation time: {ad_hoc_time:.2f} seconds")
    print(f"Random subset loading time: {random_subset_time:.2f} seconds")
    print(f"Efficiency gain: {ad_hoc_time / random_subset_time:.2f}x\n")


# Run the benchmark
for scale in [100, 1000, 10000, 100000, 1000000]:
    benchmark(scale)

Results:

(base) [fox@blanka battleship-solvers]$ python battleship_boards_benchmark.py

Benchmarking for 100 boards:

Ad hoc generation time: 0.00 seconds
Random subset loading time: 0.92 seconds
Efficiency gain: 0.00x


Benchmarking for 1000 boards:

Ad hoc generation time: 0.02 seconds
Random subset loading time: 0.92 seconds
Efficiency gain: 0.02x


Benchmarking for 10000 boards:

Ad hoc generation time: 0.21 seconds
Random subset loading time: 0.99 seconds
Efficiency gain: 0.21x


Benchmarking for 100000 boards:

Ad hoc generation time: 2.11 seconds
Random subset loading time: 1.66 seconds
Efficiency gain: 1.27x


Benchmarking for 1000000 boards:

Ad hoc generation time: 22.23 seconds
Random subset loading time: 1.95 seconds
Efficiency gain: 11.40x

Key findings:

  • Ad hoc generation is faster for small to medium scales (up to 10,000 boards).
  • Precomputed data shows slight advantages at larger scales (100,000+ boards).

These results align with our initial Big O complexity analysis, confirming the efficiency of ad hoc generation for typical puzzle sizes.

Interestingly, 1 million boards represent only about 1/30,000th of the approximate total number of possible Battleship configurations.

link
hide preview

What's next? verify your email address for reply notifications!


russell 212d, 2h ago [edited]

Nobody seems to have a definite answer to how many unique non-overlapping battleship configurations.

There were 10 dupes per 1M sampled using sort -u | wc -l

For 30B there could be 300,000 dupes or more statistically, in the total set.

With overlaps 74B as a best guess, without was about 30B, if this is wildly off let me know.

When I took two 1M samples (two million lines) we had 49 dupes.

cat battleship_boards.json battleship_boards.json.orig | sort -u | wc -l
1999951

>>> 2000000 - 1999951
49
link
hide preview

What's next? verify your email address for reply notifications!


russell 288d, 8h ago

What domain is the namespace for?

link
hide preview

What's next? verify your email address for reply notifications!


russell 296d, 9h ago

I know you have moved on with a different comment solution but I wanted to say that this primary issue was addressed, the profile page now has a link to go back to the thread. thanks for the attention!

link
hide preview

What's next? verify your email address for reply notifications!


russell 296d, 10h ago

What stock comments? are you talking about comments showing up under 127.0.0.1 or localhost?

link
hide preview

What's next? verify your email address for reply notifications!


russell 321d, 12h ago [edited]

stefanos82

Can you re-run your tests with node --jitless flag please? It should be a fair comparison.

to keep the CPU in healthy thresholds I lowered the concurrency to 100.

   real 0m22.188s
   user 0m14.702s
   sys 0m0.449s

It's still a lot faster but less so, 5x instead of 10x

could you explain why I would want to run --jitless in production?

stefanos82

I did not ask the comparison with production in mind, but to make things fair between one runtime that executes with JIT by default versus the CPython that does not yet, but we are getting there!

link
hide preview

What's next? verify your email address for reply notifications!


russell 1y, 196d ago

Ok try now, I just switched remarkbox to have SameSite: "None" and Secure: True.

link
hide preview

What's next? verify your email address for reply notifications!


russell 1y, 352d ago

You're welcome, sure thing.

link
hide preview

What's next? verify your email address for reply notifications!


russell 1y, 353d ago [edited]

If you are not logged in when you leave a comment, your comment will appear unverified until you verify it.

To verify, look for an email from no-reply@remarkbox.com with the subject Verification Code.

Once you have verified your email address, you earn the ability to verify, edit or delete any of your comments!

link
hide preview

What's next? verify your email address for reply notifications!


russell 2y, 281d ago [edited]

no, currently the system does not manage sales tax.

this could be a feature enhancement, but it is currently not being worked on.

Otherwise what happens is you just pay tax out of your gross earnings, adjust prices accordingly.

it would be on you to pay the tax, all money goes directly to your stripe account & then your bank checking.

link
hide preview

What's next? verify your email address for reply notifications!


russell 3y, 53d ago [edited]

Cannot be configured at the moment.

Work arounds:

  • fork project & self host & change the hard coded values.

  • create a pull request to make it possible to configure from Namespace settings.

Hope that helps.

link
hide preview

What's next? verify your email address for reply notifications!


russell 3y, 53d ago [edited]

It's currently a manual process, if you r a coder please check out this blog post, to get started on reviewing the code & proposing a pull request.

https://russell.ballestrini.net/russell-open-sources-remarkbox-and-make-post-sell-into-public-domain/

link
hide preview

What's next? verify your email address for reply notifications!


russell 3y, 54d ago link
hide preview

What's next? verify your email address for reply notifications!


russell 3y, 67d ago [edited]

We need a pull request to make all the buttons configurable & allow for auto locale languages, based on user's client defaults.

Thank you, I love you. (Christ Conciousness)

♾️✌️🏹 ✊️ ♥️

link
hide preview

What's next? verify your email address for reply notifications!


russell 3y, 97d ago

Great work, you'll also need a custom domain. We may continue to discuss over email!

link
hide preview

What's next? verify your email address for reply notifications!


russell 3y, 127d ago

Thank you so much for the kind words.

I have this dream too:

Please write me anytime, I AM gathering a team.

link
hide preview

What's next? verify your email address for reply notifications!


russell 3y, 130d ago

K

link
hide preview

What's next? verify your email address for reply notifications!


russell 3y, 130d ago

<3

link
hide preview

What's next? verify your email address for reply notifications!


russell 3y, 131d ago

link? URI?

link
hide preview

What's next? verify your email address for reply notifications!


russell 3y, 131d ago

Hello Friends, what game?

I will build you a forum to talk in, faq.remarkbox.com is for Remarkbox.

If you tell me the name of the game, I will build a dedicated forum for your game or team or guild.

<3

link
hide preview

What's next? verify your email address for reply notifications!


russell 3y, 131d ago

Hello Friends, what game?

I will build you a forum to talk in, faq.remarkbox.com is for Remarkbox.

If you tell me the name of the game, I will build a dedicated forum for your game or team or guild.

<3

link
hide preview

What's next? verify your email address for reply notifications!


russell 3y, 131d ago

Hello Friends, what game?

I will build you a forum to talk in, faq.remarkbox.com is for Remarkbox.

If you tell me the name of the game, I will build a dedicated forum for your game or team or guild.

<3

link
hide preview

What's next? verify your email address for reply notifications!


russell 3y, 131d ago [edited]

Hello Friends, what game?

I will build you a forum to talk in, faq.remarkbox.com is for Remarkbox.

If you tell me the name of the game, I will build a dedicated forum for your game or team or guild.

<3

link
hide preview

What's next? verify your email address for reply notifications!


russell 3y, 133d ago

Postfix is a MTA which runs SMTP services, the default settings should be a closed relay only allowing outbound (from the python script). The SPF record should include an option to allow this server to send email on behalf of the domain.

link
hide preview

What's next? verify your email address for reply notifications!


russell 3y, 135d ago

This log line tells you what gmail claims happened:

Nov 30 11:11:09 Ubuntu postfix/smtp[12035]: AD0EA4205D: to=<I-Do-Exist-victim@gmail.com>, relay=gmail-smtp-in.l.google.com[74.125.24.27]:25, delay=3.3, delays=0.01/0.01/2.2/1.1, dsn=5.7.26, status=bounced (host gmail-smtp-in.l.google.com[74.125.24.27] said: 550-5.7.26 This message does not have authentication information or fails to 550-5.7.26 pass authentication checks. To best protect our users from spam, the 550-5.7.26 message has been blocked. Please visit 550-5.7.26  https://support.google.com/mail/answer/81126#authentication for more 550 5.7.26 information. s5si23402633plp.197 - gsmtp (in reply to end of DATA command))

Are you sending through an SMTP server that is covered by the SPF record?

Reference:

link
hide preview

What's next? verify your email address for reply notifications!


russell 3y, 141d ago [edited]

I look forward to your ideas and emails. I agree about fediverse and the barriers to getting started.

I have a feeling HTML/CSS knowledge will help a lot in the future, since it has been the lingua franca of the web and will likely carry on marking up our digital worlds in what comes next! <3

link
hide preview

What's next? verify your email address for reply notifications!


russell 3y, 143d ago [edited]

Nice to meet you! Yup, I AM familiar with the Fediverse and think it could morph into a Permacomputer implementation.

I have a Mastodon server if you want to find me there!

https://russell.ballestrini.net/contact/

link
hide preview

What's next? verify your email address for reply notifications!


russell 3y, 147d ago [edited]

You are welcome!

Short answer, I dogfood Remarkbox, as a user first, founder second.

Some reading material to persuade your trust:

link
hide preview

What's next? verify your email address for reply notifications!


russell 3y, 147d ago [edited]

I am familiar with this project but I'm lacking the expertise to implement into Remarkbox.

I would like to add support if it were straight forward and I had a mentor or guide to hold my hand.

Anyone know webmentions and want to mentor me on implemention (Python, Pyramid)?

link
hide preview

What's next? verify your email address for reply notifications!


russell 3y, 148d ago

Install the public key (.pub) as a DNS TXT record, where the record name ("selector") is 20180605._domainkey and the value body is:

v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDcplYPRsqIFwXuggtH2XgQDMX+e+6sGnWdV8ld/FR9zgRAxB+DeiCEVooVvYt2JRZUEokgDFvys82Q+JTbN4qHNz19bdcBGrnTsnIFaQYpgeQYmPLdDtcWRKzTYMRNCnRmmEXyGv7WIDcaTapIq9NFgLmy1QT7ZTxuNjQtDB/2LwIDAQAB;

You may choose any selector, I happen to like to use YearMonthDay. Additionally you will substitute your public key in place of mine. Put each the line of the public key on a single line in the TXT record.

link
hide preview

What's next? verify your email address for reply notifications!


russell 3y, 154d ago

Yes, in your Namespace Settings please click the checkbox labeled "Enable Moderation".

If checked, hide new comments until approved by a Namespace moderator.

link
hide preview

What's next? verify your email address for reply notifications!


russell 3y, 160d ago [edited]

References to Permacomputers which I like for the most part (growing list):

link
hide preview

What's next? verify your email address for reply notifications!


russell 3y, 163d ago [edited]

Some prior references to Permacomputers which I like for the most part (growing list):

link
hide preview

What's next? verify your email address for reply notifications!


russell 3y, 164d ago [edited]

I quit too, congrats and thank you for this essaay which resonates with me down to my core. If you want to help rebuild a better Internet, I'm trying to rally a team here at unturf dot com.

link
hide preview

What's next? verify your email address for reply notifications!


russell 3y, 184d ago

Welcome friend!

link
hide preview

What's next? verify your email address for reply notifications!


russell 3y, 197d ago

да. Remarkbox работает везде, где поддерживается HTML, включая WordPress.

da. Remarkbox rabotayet vezde, gde podderzhivayetsya HTML, vklyuchaya WordPress.

Yes. Remarkbox works anywhere HTML is supported, including WordPress..

link
hide preview

What's next? verify your email address for reply notifications!


russell 3y, 232d ago

Welcome!

link
hide preview

What's next? verify your email address for reply notifications!


russell 3y, 232d ago

Welcome!

link
hide preview

What's next? verify your email address for reply notifications!


russell 3y, 232d ago

Email is required, it's the only piece of identifying info which is mandatory to collect from new users.

Once user is verified and authenticated they no longer need to input an email.

It is up to the Namespace owner whether or not unverified comments show up.

link
hide preview

What's next? verify your email address for reply notifications!


russell 3y, 232d ago link
hide preview

What's next? verify your email address for reply notifications!


russell 3y, 273d ago [edited]

Hey @sreeman -

You will definitely want to use the custom domain when registering with Remarkbox, but in fact you may register both, each will have it's own owner id so they will be treated as separate websites (for example, you could do your comment testing on the github.io domain before transitioning to the production domain)

I've never used Github pages before but it seems like it may host static web sites so any page you put the snippet will have the comment page appear. Depending on how you are building your web site's static pages will depend on if you may automatically add comments to a blog post article for example.

If you have a repository which I may look at I might be able to offer specific guidance on your HTML or static site generator.

Reach out here if you need more specific help: https://russell.ballestrini.net/contact/

Good Luck!

link
hide preview

What's next? verify your email address for reply notifications!


russell 3y, 285d ago [edited]

Remarkbox is pay-what-you-can and does not require a credit card.

Often when people experience this issue it is because Remarkbox is not able to verify that you own the domain. This can happen when there is a mismatch between the domain used to register the Namespace and the domain that your site is hosted on.

Another common issue is that Remarkbox could not reach your site or if it can, it was not able to parse the Namespace owner key (UUID).

If you have a test domain please register that domain as it's own Namespace separately.

I hope this helps!

link
hide preview

What's next? verify your email address for reply notifications!


russell 3y, 285d ago

Hey Meli, I'm glad you figured it out. Yeah the domain needs to perfectly match whatever the browser ends up with after redirects and such.

Thanks for joining the community!

link
hide preview

What's next? verify your email address for reply notifications!


russell 3y, 304d ago [edited]

Yup

link
hide preview

What's next? verify your email address for reply notifications!


russell 3y, 317d ago [edited]

Hey owenshen, I'm the founder and creator of Remarkbox. Remarkbox is now "pay what you can" and Namespace owners have access to all Namespace settings in the dashboard now, including CSS. Furthermore if you have ideas on how to make the UI feel less cramped for a better overall reader experience, please contact me if you want to help! Thanks for using the service and the support.

As for the particular issue, I thought most browsers allow for extending textarea tags by grabbing the right-bottom corner and dragging down. My assumption was that people planning to write a longer comment would use that. Perhaps that assumption is flawed.

Reference: https://www.remarkbox.com/remarkbox-is-now-pay-what-you-can.html

link
hide preview

What's next? verify your email address for reply notifications!


russell 3y, 320d ago

By default the avatar is built in using the first letter of the user's display name. A user may toggle to gravatar from their user settings page to use that instead.

link
hide preview

What's next? verify your email address for reply notifications!


russell 3y, 359d ago

Thanks for the feedback, I've recently upgraded the Remarkbox code base to Python 3 and I've updated the blog post with my new solution which should work for both Python 2 and Python 3.

link
hide preview

What's next? verify your email address for reply notifications!


russell 3y, 359d ago

Thank you for the feedback, I've updated the instructions above.

link
hide preview

What's next? verify your email address for reply notifications!


russell 4y, 2d ago

Remarkbox works anywhere that supports HTML.

link
hide preview

What's next? verify your email address for reply notifications!


russell 4y, 2d ago

This is a config option in the Namespace settings. It's up to the site owner to choose.

link
hide preview

What's next? verify your email address for reply notifications!


russell 4y, 14d ago

Hey there YourDigitalRights -

You seem to have a good understanding of the types of tools Namespace owners may need to help comply with these new legislation and efforts. Could I setup some time to discuss what we have and what we need? If yes please email me to setup a meeting.

https://russell.ballestrini.net/contact/

link
hide preview

What's next? verify your email address for reply notifications!


russell 4y, 53d ago [edited]

For read only operations we have a cache-able endpoint which returns all threads and comments in a single JSON endpoint.

Look at your Namespace setting for more details.

No endpoints are currently planned for API crud interactions but I understand the desire and benefit and will think about the possibility.

I'm looking to build a toggle button for dark mode.

link
hide preview

What's next? verify your email address for reply notifications!


russell 4y, 61d ago

OK, good luck!

link
hide preview

What's next? verify your email address for reply notifications!


russell 4y, 61d ago

Should, yes.

link
hide preview

What's next? verify your email address for reply notifications!


russell 4y, 67d ago [edited]

Confirmed. We should address this too. I'll take a look at it shortly.

Update: this was fixed in production.

link
hide preview

What's next? verify your email address for reply notifications!


russell 4y, 67d ago [edited]

Well yeah, haha.

Reference: https://my.remarkbox.com/cc62eb06-8e4b-11ea-93cc-040140774501/clicking-a-user-on-a-site-with-remarkbox-installed-shows-all-that-user-s-remarkbox-comments-everywhere#c7e3bb2a-68eb-11eb-8f86-040140774501

Got any opinions on what we should do instead regarding this? quick fix would be to remove this page entirely.

link
hide preview

What's next? verify your email address for reply notifications!


russell 4y, 67d ago

I think we should be all set, you should be able to do the moderation from here. Either approve or disable nodes. There's not much more to do besides that I think.

Great work on the CSS over here, looks really good!

I'm gathering people interested in seeing or modifying the source over on IRC server Freenode in channel Remarkbox.

If you have a bitbucket.org account please let me know. (otherwise I'm considering moving the code base to gitlab or github)

link
hide preview

What's next? verify your email address for reply notifications!


russell 4y, 68d ago

Hmmm. Good call out. We should address this.

link
hide preview

What's next? verify your email address for reply notifications!


russell 4y, 68d ago

Wondering if you want to see the codebase or help tweak things on the internals. BTW that moderate button was a mistake. I'm not sure why it was there, but it was added back in May 2018. I think I was distracted building out two features at once. I'm shipping a change to remove the moderation link.

link
hide preview

What's next? verify your email address for reply notifications!


russell 4y, 68d ago

The code base is Python, are you familiar?

link
hide preview

What's next? verify your email address for reply notifications!


russell 4y, 68d ago

Ok I was able to reproduce the issue. I will have a fix shortly. Likely after dinner I will pick it up.

link
hide preview

What's next? verify your email address for reply notifications!


russell 4y, 68d ago

Oh you know what, I don't think I've tested the moderation code in a while, I don't have it enabled in my Namespaces so a defect might have found its way into the code base.

I'll follow up shortly, going to look at logs.

link
hide preview

What's next? verify your email address for reply notifications!


russell 4y, 68d ago

This might be useful for dark theme:

https://my.remarkbox.com/embed/ns/sci-hub.41610.org/sci-hub.41610.org.1612547886629.css

You may control CSS from the Namespace settings.

link
hide preview

What's next? verify your email address for reply notifications!