Saturday, February 18, 2023

How did Elon Musk end up owning x.com?


I ran this through ChatGPT, so far it looks like it might be accurate. 


How did Elon Musk end up owning x.com?

In 1999, Elon Musk founded a company called X.com, which was an online payment company that eventually became PayPal. At that time, Musk was the majority shareholder and CEO of the company.

As part of the company's branding efforts, Musk wanted to secure the domain name X.com. He initially tried to buy it from its owner, a man named Jack Selby, but Selby wasn't interested in selling. Instead, Selby suggested that they play a game of "extreme poker" to determine who would get the domain name.

According to Musk, they played the game, and Musk won, which allowed him to take control of the X.com domain. Musk later sold PayPal to eBay for $1.5 billion in 2002, and he retained ownership of the X.com domain.

In 2017, Musk announced that he had reacquired the domain name X.com, but he has not yet announced any specific plans for how he intends to use it.

 

How did Jack Selby end up with X.com before Elon?

X.com was initially registered in 1987 by a software engineer named Elizabeth Feinler, who was responsible for assigning domain names and IP addresses at the time. The domain name was used for a variety of purposes over the years, including as an email service for members of the online community The WELL.

In the late 1990s, the domain name was acquired by a company called Confinity, which was co-founded by Max Levchin, Peter Thiel, and Luke Nosek. Confinity created a product called PayPal, which was an online payment system, and in 1999, the company was renamed PayPal.

Around this time, Jack Selby, who was an early PayPal employee and a friend of Elon Musk, became the manager of the X.com domain. Selby was responsible for maintaining the domain and managing its DNS records.

When Musk founded X.com in 1999, he wanted to use the X.com domain name for his new company, but it was already in use by PayPal. Musk eventually convinced Selby to transfer ownership of the X.com domain to him so that he could use it for his new venture.

Sunday, February 12, 2023

Tox, secure open source P2P communication


Decentralized Skype








Tox uses UDP for its underlying transport protocol. Tox was designed to be lightweight, fast, and secure, and using UDP helps to achieve these goals. Unlike TCP, which is a reliable transport protocol that requires that all packets be acknowledged, UDP is an unreliable protocol that does not guarantee delivery of packets. This means that packets can be lost or arrive out of order, but it also means that UDP is faster and less resource-intensive than TCP.

In Tox, the well-known servers that are used to start the initial communications are called bootstrap nodes. The bootstrap nodes are publicly accessible servers that are run by Tox community members and are used by Tox clients to join the Tox network and find other Tox clients.

When a Tox client starts up for the first time, it connects to one or more bootstrap nodes and uses them to join the Tox Distributed Hash Table (DHT). The DHT is a decentralized, distributed database that is used by Tox clients to find and connect to each other. Once the client has joined the DHT, it can use it to find other Tox clients and to publish its own IP address and public key so that other clients can find and connect to it.




Python3 client. 

Java Client. 

Tuesday, February 07, 2023

Decentralized Storage and p2p databases.



https://www.youtube.com/watch?v=AbvxEOG2EWU

Decentralized Storage Summit 2019 
Moderator: Raymond Cheng (former CTO at Oasis Labs) 
GunDB: Mark Nadal 
Textile: Carson Farmer 
Fluence: Dmitry Kurinskiy 
VulcanizeDB: Rick Dudley


https://gun.eco/
GunDB: GunDB ii an open-source, decentralized, NoSQL database, real-time, distributed database  that is written in JavaScript. It provides a simple and intuitive API for storing and retrieving data. GunDB is designed to be highly scalable, easy to use, and secure, making it a good choice for a wide range of applications, including social networks, messaging apps, and other real-time applications.

https://github.com/textileio/go-threads
https://docs.textile.io/threads/
Textile: Server-less p2p database built on libp2p. Textile is a decentralized, end-to-end encrypted, and peer-to-peer database that provides a simple and intuitive API for storing and retrieving data. Textile is designed to be highly secure, with end-to-end encryption, and is a good choice for applications that require a high degree of privacy and security, such as healthcare or financial applications.

https://fluence.network/
Fluence: Fluence is a decentralized, blockchain-based database that provides a simple and intuitive API for storing and retrieving data. Fluence is designed to be highly scalable, secure, and fast, making it a good choice for applications that require a high degree of reliability, such as financial applications.

https://github.com/vulcanize/vulcanizedb
VulcanizeDB: VulcanizeDB is a blockchain-based database that provides a simple and intuitive API for storing and retrieving data. VulcanizeDB is designed to be highly scalable, secure, and fast, making it a good choice for applications that require a high degree of reliability, such as financial applications.



OrbitDB: OrbitDB is an open-source, decentralized, NoSQL database that is built on top of IPFS. It uses a distributed peer-to-peer network to store and manage data, making it a highly scalable and secure option for decentralized applications. 



GUN vs. OrbitDB

GUN (Graph Universe Network) has been around since 2016 and is focused on providing a simple and intuitive API for building decentralized apps. It uses a novel data structure called the "Radix tree" for storing data, which enables GUN to handle large amounts of data and maintain a high level of performance even in decentralized scenarios. GUN is designed to be easy to use, and it doesn't require a deep understanding of blockchain technology.

OrbitDB is a database on IPFS (InterPlanetary File System), and it uses a distributed ledger technology (DLT) called IPDB (InterPlanetary Database) for data storage. OrbitDB provides a higher level of control over data storage, consistency, and versioning compared to GUN. OrbitDB is designed for more complex use cases, and it requires a deeper understanding of the underlying technology.



IPFS: IPFS (InterPlanetary File System) is a decentralized, peer-to-peer file storage network that is written in JavaScript. It allows users to store and share files on a distributed network, making it a secure and scalable option for decentralized applications. 

Accessing IPFS (InterPlanetary File System) does require a proxy server. IPFS is a decentralized peer-to-peer file storage network, and it doesn't have a centralized server to access its content. To access IPFS content, you need to use a gateway or a proxy server that acts as an intermediary between your client and the IPFS network.

There are several public IPFS gateways that you can use for free, such as ipfs.io, gateway.ipfs.io, and many others. These gateways allow you to access IPFS content by simply specifying the hash of the content in the URL. For example, you can access a file stored on IPFS using a URL like this: https://ipfs.io/ipfs/<hash>.

You can also run your own IPFS gateway if you need more control over the access to your IPFS content. This requires setting up an IPFS node and configuring it as a gateway. This option may be more suitable for applications that require more control over the access to the content, higher performance, or lower latency.





Beaker: Beaker is an open-source, decentralized browser that provides a built-in database for storing and retrieving data. It uses a peer-to-peer network to store and manage data, making it a highly scalable and secure option for decentralized applications.
Hi friends! This won't come as a huge shock, but the time has finally come that I archive the Beaker Browser repo. In 2022 I moved on to working at Bluesky, and, while the Beaker project is coming to an official end, the heart of Beaker continues with Bluesky. I hope the work we do will make Beaker's end a little less painful in the long run.


Free Online FPGA simulator.


Just like the Online html.css.js editor and test environments,  I found one for FPGA hardware development


 https://www.edaplayground.com/



LEARN FPGA FAST WITH HACKADAY’S FPGA BOOT CAMP

https://hackaday.io/project/159720-fpga-bootcamp-0

https://hackaday.io/project/159191-fpga-bootcamp-1

https://hackaday.io/project/159216-fpga-bootcamp-2

https://hackaday.io/project/159692-fpga-bootcamp-3

Monday, February 06, 2023

Online Hybrid Mobile App development & hosting

Both of these are a bit more serious in that you need a real account before you an play with code.

replit.com
Replit is a web-based platform that provides a coding environment for various programming languages, including JavaScript. It allows developers to quickly write, run, and share code snippets, small projects, and full applications with others. It provides a basic text editor and a command-line interface to run code, and allows you to save your projects to the cloud.

https://replit.com/site/hosting


expo.dev
Expo, on the other hand, is a free and open-source platform for building native mobile apps using JavaScript and React Native. It provides a development environment, build tools, and a library of pre-built components and services that help you build and deploy your apps to both iOS and Android platforms. Expo also provides an online client, which is similar to Replit, for writing and testing your React Native code in the browser.


https://codepen.io
CodePen: a social development environment for front-end developers. It allows you to write, test, and share your HTML, CSS, and JavaScript code snippets.

A processing p5.js example
https://codepen.io/johnsokol/pen/eYMgjgV


https://glitch.com/
Glitch: a web-based platform that provides a full-featured code editor and a development environment for various programming languages, including JavaScript. It also provides a simple way to host and share your web apps.
play with React, or build new worlds with WebXR. 


https://jsfiddle.net
JSFiddle: a web-based platform that allows you to write, test, and share your HTML, CSS, and JavaScript code snippets.

Three.js example
https://jsfiddle.net/7u84j6kp/


https://stackblitz.com/
StackBlitz: a web-based development environment that provides a full-featured code editor and a live preview of your code. It supports multiple programming languages, including JavaScript.


https://codesandbox.io/
CodeSandbox is an online code editor and development environment for web applications. It provides a simple way to write, run, and share your web projects, including full-stack applications, React and React Native apps, and more. CodeSandbox supports multiple programming languages, including JavaScript, HTML, and CSS, and provides a live preview of your code as you type. It also integrates with popular tools and libraries, such as GitHub, and allows you to share your projects with others by providing a unique URL. CodeSandbox is often compared to other online development environments like Replit and JSFiddle, but it is specifically geared towards web development.


https://monaca.io/
Monaca: a cloud-based platform that provides a complete development environment for Cordova app development, including a code editor, debugging tools, and live-reload functionality.

https://en.wikipedia.org/wiki/Monaca_(software)



https://codeanywhere.com/
Codeanywhere is a cross-platform cloud integrated development environment created by Codeanywhere, Inc. Codeanywhere enables users to write, edit, collaborate, and run web development projects from a web browser or mobile device. Codeanywhere is written in JavaScript

Codeanywhere: a cloud-based development environment that provides a code editor, file management, and collaboration tools, as well as support for Cordova app development.



Sunday, February 05, 2023

How would I just insert my three.js visualization in to a react native app?



So I found this website that had a real time editor for react native apps 

https://expo.dev/

https://snack.expo.dev/@johnsokol/basic-ar-with-three.js

Except every demo was broken and failed. No amount of debugging would bring any back to life. 

I update the library version and security things break just one problem after the next. 

I am really upset with it really because it's so cool if it actually worked. 

I tried the gyro, magnetometer, light sensor, all just read 0... Zip nada.  

three.js just will not run for anything. 

This one is working after mashing library version numbers for 2 hours: 
https://snack.expo.dev/@johnsokol/react-three-fiber-example  

It react native itself broken? or just expo? and it expo a library or this website?


Response from ChatGPT.  

In order to integrate a Three.js visualization into a React Native app, you will need to wrap your Three.js code in a React Native component. Here are the steps you can follow:

  1. Install the react-three-fiber library: React-three-fiber is a React renderer for Three.js that makes it easy to use Three.js in React Native. You can install it using npm by running the following command: npm install react-three-fiber.

  2. Create a React Native component: Create a new React Native component that will render your Three.js visualization. You can use the useThree hook provided by react-three-fiber to access the Three.js renderer and scene.

  3. Wrap your Three.js code: Wrap your existing Three.js code in the React Native component you created in step 2. You can use the Canvas component provided by react-three-fiber to create a Three.js renderer, and the useRender hook to trigger updates to your Three.js scene.

  4. Import the React Native component: Import the React Native component you created in step 2 into your main React Native app, and use it to render your Three.js visualization.

Here is an example of what your React Native component might look like:

javascript
import React from 'react'; import { Canvas, useThree } from 'react-three-fiber'; const ThreeJSVisualization = () => { const { gl, scene, camera } = useThree(); // Your Three.js code here return ( <Canvas gl={gl} camera={camera}> <ambientLight /> <pointLight position={[10, 10, 10]} /> {/* Your Three.js scene here */} </Canvas> ); }; export default ThreeJSVisualization;

This is a basic example of how you can integrate a Three.js visualization into a React Native app using react-three-fiber. You can learn more about react-three-fiber and how to use it to create Three.js scenes in React Native by visiting the official documentation at https://github.com/react-spring/react-three-fiber.


Below is the actual code that worked in Expo https://snack.expo.dev/@johnsokol/react-three-fiber-example

javascript
import React, { useRef, useState } from 'react'; import { StyleSheet, View } from 'react-native'; import { Canvas, useRender, useFrame } from 'react-three-fiber'; function Box(props) { // This reference will give us direct access to the mesh const mesh = useRef(); // Set up state for the hovered and active state const [hovered, setHover] = useState(false); const [active, setActive] = useState(false); // Rotate mesh every frame, this is outside of React without overhead useFrame(() => (mesh.current.rotation.x = mesh.current.rotation.y += 0.01)); return ( <mesh {...props} ref={mesh} scale={active ? [1.5, 1.5, 1.5] : [1, 1, 1]} onClick={e => setActive(!active)} onPointerOver={e => setHover(true)} onPointerOut={e => setHover(false)}> <boxBufferGeometry attach="geometry" args={[1, 1, 1]} /> <meshStandardMaterial attach="material" color={hovered ? 'hotpink' : 'orange'} /> </mesh> ); } export default function App() { return ( <View style={styles.container}> <Canvas> <ambientLight /> <pointLight position={[10, 10, 10]} /> <Box position={[-1.2, 0, 0]} /> <Box position={[1.2, 0, 0]} /> </Canvas> </View> ); } const styles = StyleSheet.create({ container: { flex: 1, backgroundColor: 'black', }, });

Package.json { "dependencies": { "three": "^0.108.0", "expo-gl": "8.0.0", "scheduler": "0.13.3", "expo-three": "5.0.0", "react-reconciler": "0.20.4", "react-three-fiber": "4.0.17" } }