Square has announced that it is rebranding its company name to “Block” in a move that would see it give its full square brand to its seller business. This will also give the new company a distinct corporate entity from its other businesses, giving it the muscle to expand into other ventures. The company also hinted at building its own fully-fledged metaverse, joining the likes of Meta and Roblox in the crowded field of online gaming companies. This development comes just days after Dorsey stepped down as Twitter C.E.O in what he termed as “critical” to allow Twitter to stand on its own. The move was largely seen by the crypto community as well-timed, allowing Dorsey to concentrate more on building blockchain-based products.
The price of Shiba Inu jumped 25% on the Kraken exchange after whale bought 24.8 billion SHIB tokens. This made the meme token surpass Avalanche’s (AVAX) and pushed it closer to flipping its rival, Dogecoin, once again. On-chain data suggests that short-term traders have not yet entered the market, which means whales are still in control of the current trend.
Borderless Capital has launched a $500 million fund investing in digital assets powering the next generation of decentralized applications on top of Algorand (ALGO). The Miami-based company started its first Alogorand-focused fund in June 2019. It initially raised $200 million and invested in more than 100 companies, including BlockDaemon, Six Clovers and Osprey Funds. “There is a huge room to grow from here,” David Garcia, Borderless Capital’s founding managing partner said. Borderless Capital has announced a new fund that will invest in the Algorand ecosystem specifically for products involving DeFi liquidity mining, yield farming, lending, borrowing and trading
The firm will be announcing specific investments of the new fund in the coming months. SkyBridge Capital and NAX revealed a partnership in September to offer decentralized applications and institutional investment opportunities that will be part of the initiative using Algorand.
According to a popular crypto analyst Avalanche has still more room to grow. He says he’s still bullish on the smart contract platform and said it has more room to grow up to more than 280 USD. He’s comparing the movement of Avalanche to Solana’s parabolic move.
Also quoted from the crypto analyst “If the $SOL (Solana) run is anything to go by, then $AVAX (Avalanche) should have plenty of gas left in the tank.”.
Zooming in the crypto analyst chart, seems he plotted that it will go up to 280 USD with a potential of 110% from its current price 128-133 USD.
At the time of the writing the price of Avalanche still swinging from 120-140 USD with an ATR (Average True Range) of 4.2.
Stay updated always in the crypto space!
Rebasing is one of the features you probably want to have, if you plan to work on a neat git based project.
🍣 Where To Rebase?
If you know how many commits you make, to rebase you use
git rebase with
-i flag to enable interactive rebasing. The
HEAD~<n> corresponds to the number of commits you have done (e.g. HEAD~4 if you have 4 commits to rollback to get to common ancestor commit).
git rebase -i HEAD~<n>
Sometimes, you commit a lot and forgot how many commits you’d make. To know the least common anscestor you have with master, you do
git merge-base with your branch name as parameter.
git merge-base <your-branch> master
The above command will return a git hash which you can use on the
git rebase command.
If you already know the git hash, then you can rollback to that specific commit and moving all current changes to unstaged. Once, the editor pop-ups you will choose which commit to retain, squash, and reword.
git rebase -i <git-ref-hash>
🍣 Merge Latest From Master
If you’ve already rebased your changes and needed to get lastest changes from master. All you have to do is rebase to the latest changes from master.
This command will do that.
git rebase origin/master
In any case, you’ve encountered some conflict first resolve it then continue in rebasing instead of creating new merge commit.
git rebase --continue
🍣 Overwriting Remote Repo Changes
Once all is done, overwrite your remote repo latest changes if you’ve pushed it. This will do a force push ignoring current ref on remote repo.
git push -f
🍣 Did Something Wrong? In Need Of Rollback
Did something wrong on merging conflicts? Don’t worry you can still see your previous changes using the command
git reflog short for reference log.
You can checkout the reference hash then re-merge your changes.
Window Subsystem Linux v2 (WSL2) is an iteration of the VM created by Microsoft, from Hyper-V to WSL and this the second generation of WSL. If it’s your first time accessing WSL2, it automatically provide you with the default setup which doesn’t provide any limits accessing your full workstation resources (CPU, RAM and other HDD). It means that if you have 8 cores cpu and 16Gb memory, it will use all that up. The problem with it is sometimes it affects your host computer and it gets slow. So to solve that problem we try to limit the resource consumption of WSL2.
Limit WSL Resource Consumption
On your profile directory
%USERPROFILE% create a new file named
.wslconfig. Set it’s content to the following:
[wsl2] memory=8GB processors=8
Change the settings base on your workstation capability, and this is what works for me.
Next, open up a powershell terminal in administrator mode and restart the LxssManager as this manages WSL2.
Get-Service LxssManager | Restart-Service
You could also use the
wsl --shutdown method to restart WSL. Check if the
vmmem process still consumes beyond its limit.
If the changes still not reflecting, try to restart your machine and also restart Docker Desktop.
Rust mutation can be somewhat confusing if your a beginner. Its similar to C++ way of doing things on where to put the asterisk (*) and ampersand (&) sign in variable declaration. Moving the asterisk sign and ampersand sign makes the declaration sometimes more mutable and also can make it less mutable.
Here is a simple diagram on Rust mutation that I found on StackOverflow (SO). I can’t find the exact link to reference as this one is stored in my notes.
a: &T == const T* const a; // can't mutate either mut a: &T == const T* a; // can't mutate what is pointed to a: &mut T == T* const a; // can't mutate pointer mut a: &mut T == T* a; // can mutate both
String is different in a sense that
str is static, owned and fix sized while
String can be dynamically allocated once and be converted to mutable to be appended. Most of the time you’ll be working with
String on Rust when re-allocating and moving values between
There are times you may need to convert dynamic string to char bytes and static string. Here are ways to do it:
&str -> Stringhas many equally valid methods:
- But I suggest you stick with one of them within a single project. The major advantage of
String::fromis that you can use it as an argument to a
mapmethod. So instead of
x.map(|s| String::from(s))you can often use
- But I suggest you stick with one of them within a single project. The major advantage of
&[u8]is done by
Vec<u8>is a combination of
&str -> &[u8] -> Vec<u8>, i.e.
String -> &strshould just be
&swhere coercion is available or
s.as_str()where it is not.
String -> &[u8]is the same as
&str -> &[u8]:
String -> Vec<u8>has a custom method:
&[u8] -> Vec<u8>is done by
u.to_vec(). They do the same thing, but
to_vechas the slight advantage of being unambiguous about the type it returns.
&[u8] -> &strdoesn’t actually exist, that would be
&[u8] -> Result<&str, Error>, provided via
str::from_utf8(u).unwrap()works, but you should prefer better error handling (see Error handling – The Result type).
&[u8] -> Stringis the combination of
&[u8] -> Result<&str, Error> -> Result<String, Error>
Vec<u8> -> &[u8]should be just
&vwhere coercion is available, or
as_slicewhere it’s not.
Vec<u8> -> &stris the same as
Vec<u8> -> &[u8] -> Result<&str, Error>i.e.
str::from_utf8(&v).unwrap()works, but prefer better error handling (see Error handling – The Result type)
Vec<u8> -> Stringdoesn’t actually exist, that would be
Vec<u8> -> Result<String, Error>via
String::from_utf8(v).unwrap()works, but prefer better error handling (see Error handling – The Result type).
Coercion is available whenever the target is not generic but explicitly typed as
&[u8], respectively. The Rustonomicon has a chapter on coercions with more details about coercion sites.
&str -> String | String::from(s) or s.to_string() or s.to_owned() &str -> &[u8] | s.as_bytes() &str -> Vec<u8> | s.as_bytes().to_vec() or s.as_bytes().to_owned() String -> &str | &s if possible* else s.as_str() String -> &[u8] | s.as_bytes() String -> Vec<u8> | s.into_bytes() &[u8] -> &str | s.to_vec() or s.to_owned() &[u8] -> String | std::str::from_utf8(s).unwrap(), but don't** &[u8] -> Vec<u8> | String::from_utf8(s).unwrap(), but don't** Vec<u8> -> &str | &s if possible* else s.as_slice() Vec<u8> -> String | std::str::from_utf8(&s).unwrap(), but don't** Vec<u8> -> &[u8] | String::from_utf8(s).unwrap(), but don't** * target should have explicit type (i.e., checker can't infer that) ** handle the error properly instead
In Docker Desktop for Windows the WSL2 version, you don’t usually have options to increase memory and diskspace as it will be managed directly by Windows.
The Docker Desktop data can be found originally in this location
🚚 Export Docker Data
In order to make this work, first shutdown Docker Desktop. This can be done by right-clicking the system tray icon of Docker then from the context menu Quit Docker Destop.
Next is open your command prompt and type the following:
wsl --list -v
On which, when run will return to you the state of all WSL images.
NAME STATE VERSION * docker-desktop Stopped 2 docker-desktop-data Stopped 2
After that we export the
docker-desktop-data into a tar archive. We will assume you are planning to move the docker data into
D: drive, and within the drive you have already created a folder named
wsl --export docker-desktop-data "D:\docker-desktop-data.tar"
Next, is to unregister
docker-desktop-data from WSL.
This command below will delete
%USERPROFILE%\AppData\Local\Docker\wsl\data\ext4.vhdx, so make sure you back it up first.
wsl --unregister docker-desktop-data
🚛 Import Docker Data
After export, we do import
docker-desktop-data back to WSL.
wsl --import docker-desktop-data "D:\Docker" "D:\docker-desktop-data.tar" --version 2
ext4.vhdx will now reside in the
D:\Docker folder. Start Docker Desktop and verify the changes.
If everything works out, you can now delete the tar archive you created earlier
D:\docker-desktop-data.tar. Please don’t delete the
ext4.vhdx, otherwise you would lose all your images and containers in docker.
In case docker icon turns red in Docker Desktop, clear the docker cache which can be found in Docker Desktop settings.
Istio is an open source service mesh. The documentation for installing it on windows is a bit vague, and the website only provides documentation for nix based systems.
istioctl.exe executable from the official istio releases page and extract then place it in a folder your choice. Next will be adding it to your environment variable.
Adding the to environment variable will be straight-forward, add the directory location of the istioctl to
Install the istio namespace and services in kubernetes.
istioctl install --set profile=default -y
Also set istio to automatically inject Envoy sidecar proxies when deploying applications and services to default namespace.
kubectl label namespace default istio-injection=enabled
Determine if Kubernetes cluster is running in an environment that supports external load balancer.
kubectl get svc istio-ingressgateway -n istio-system
Check if there are any problems presented in
Also, check the endpoint if its empty or returning any headers and data.
curl -H curl -s -I -HHost:keycloak.7f000101.nip.io http://127.0.0.1