fabiochiu/medium-articles huggingface dataset:
Berkeley’s First-Ever Vegan Food Festival Will Debut This Sunday
By: Matt Charnock
Tags: San Francisco, Bay Area News, Food And Drink, Berkeley

California carries with it a certain connotation around its gastronomy — a description populated by trendy terminologies and words tied to lifestyle choices. But without question: The Golden State’s food landscape is unmatched anywhere in the country (no matter what any East Coaster might say). And the Bay Area’s a pressure cooker for the very cheffing and cooking and farming that’s made California’s cuisine synonymous with levity and freshness.

So it’s hard to believe that Berkeley — the region’s bastion for liberalism and all things plant-based — has yet to have a fair dedicated to vegan eats. Well, that will all change this upcoming Sunday.

Photo: Screenshot via The Bizerkeley Food Festival

The Bizerkeley Food Festival, Berkeley’s inaugural vegan food festival, is set to debut Sunday, September 5, from 11 a.m. to 5 p.m. at 2727 Milvia Street, which will feature a long roster of local plant-based, cruelty-free vendors. Organized by Erika Hazel, who founded the like-named resource for all things hyperlocal and vegan back in 2016. (The Bizerkeley Vegan also specializes in crafting and hosting events, making Hazel’s food blogging venture particularly fit to host the city’s first-ever festival dedicated to veganism.)

The happening, too, will also serve as a conduit for charity — one that will help better adoptable fur babies, specifically.

“The festival was created as a way to bring the community together and support local vegan businesses,” Hazel says about the event. “[The Bizerkeley Food Festival’s] commitment to support local causes, a silent auction with 100% of proceeds will benefit nonprofit Friends of Berkeley Animal Care Services, a 501(c)(3) nonprofit organization committed to raising much-needed funds to support critical programs and services at Berkeley’s municipal animal shelter, Berkeley Animal Care Services.”

Sponsored in part by Sportsbasment’s Berkeley store, the festival will feature over a dozen food vendors and more to help bring our community together following over a year-and-a-half of social distancing and isolation. Festival attendees can enjoy free food samples, wine and hard kombuchas (read: high ABV bottlings of the effervescent drink), and much more.

Though The Bizerkeley Food Festival is set to be an all-outdoor event, mask-wearing is recommended when not eating with others in your group; hand sanitizer stations will be plentiful, as well.

Hazel’s also said that the entire proceeds from the event’s silent auction will benefit the animal shelter and that she hand-picked each vendor for the event — which will feature both Black-owned and LGBTQ-owned businesses, in addition to ventures started by young entrepreneurs.

Sign up for The Bold Italic newsletter to get the best of the Bay Area in your inbox every week.

For more information on The Bizerkeley Food Festival, as well as find out more about on-site vendors and events, visit thebizerkeleyvegan.com/foodfest; tickets are $5 each and are available for purchase on Eventbrite.
Berry Data IFO — the Craziest IFO Ever
By: Sam Jia
Tags: Bry, Berry Data, Market, Blockchain, Oracle

Berry Data IFO — the Craziest IFO Ever

A recap of Berry Data IFO and a plan for future developments Sam Jia Follow Feb 17 · 3 min read

What Happened During the IFO

February 16th was Berry Data IFO date, reached a new record of 18760.04% ($187,604,000)overflow, which became one of the craziest IFO ever.

The IFO plan to raise $1,000,000 USD for 2,000,000 BRY, which the $BRY price is $0.5. At 5:10 PM, Feb 16th, Berry Data $BRY IFO started on PancakeSwap (pancakeswap.finance):

1 minute after the IFO started, the raise reached 100%;

2 minutes after the IFO started, the raise reached 200%;

10 minutes after the IFO started, the raise reached 5,324%;

35 minutes after the IFO started, 72 times overflow 7,332%

60 minutes after the IFO started, the final raise overflow reached 18,760.04% ($187,600,400)

The greatest IFO on PancakeSwap so far.

What Happened After the IFO

Right after IFO, $BRY was listed on PancakeSwap immediately, the highest BRY price reached more than $16.5, which 17 times of initial price.

On the same day, BRY was listed on CoinMarketCao and CoinGecko. As of Feb 17, Berry Data entire market cap reached $98,400,000.00, rank #534 on CoinMarketCap; 10,905 token holders. Also, there is just a beginning.

What Will Happen After IFO

Minings

Berry Data has many plans for future development. First, we will definitely enable more ming pools, maximize the benefit for all $BRY holders, here is a BRY mining calendar on Feb 17th, in the future, Berry Data will update the mining calendar daily.

On Feb 22nd, a new mining program will start on TENET Farm, and on March 1st, the mining pool on Berry Data's official website will start.

Product

Besides mining-related events, we will also focus on creating more partnerships with other projects in the BSC ecosystem, to better serve price feeds and on-chain data by polish Berry Data oracle products. By far, Berry Data has created partnerships with PancaksSwap, BakreySwap, Tenet Farm, Helmet.insure, CoinGecko, and CoinMarketCap.

Berry Data will provide them on-chain price feeds, so they can get better and useful data to process and ultimately provide better services and products on the Binance Smart Chain. In addition to on-chain data providing, Berry Data keeps developing on another product — oracle price feeds. When it goes live, more Oracle mining will be enabled as well, stay tuned.

Team

Right now, Berry Data is relatively a small team. In the next stage, we will expand the team and have more field experts join the team, alone to realize our slogan “Committed to becoming the most widely used oracle on BSC”.

Summary

Thanks, all Berry fans, we cannot come to this step without any of you; thanks for being with us at the beginning, and hopefully we can walk on this great journey together and become the most widely used oracle on BSC.

BRY to the Moon!

—

Sam Jia

Berry Data CMO

February 17th, 2021
Sector 14 Huda Market, Gurgaon
By: Ankita Rathore
Tags: Sector, Gurgaon, Market, Shopping, Gurugram

If you ever wanted to visit any Huda Market of Gurgaon you will be amazed to see these little sector-wise markets. These market serve a purpose to the people of the nearby area or living inside of that sector itself. Sector 14 Huda Market, Gurgaon is one of the popular and very busy places in the Gurgaon. The footfall here is just incredible. This place has got everything from food to lifestyle to even amazing street food.

The variety of food available there was simply exquisite. You can get small vendors to restaurants like Om sweets and Gulab. One can notice all sorts of crowd visiting there from young ones to even senior citizens. A big thing about sector 14 market is that it has free parking which is in the centre of the market. Most of the famous street food can be spotted at this Huda market.

The market is well spread and organised and the entry can be taken from any corner of this market. So let's start with the types of food outlets you can see in the one can get Chinese food corners and there are Om sweets and its competitor Gulab is also present there along with these ones have Dominos, KFC, Wow Momos.

Let's talk about street food here, one has south Indian dishes, momos, pav bhaji, pizza, chap and a coffee point and very famous mangal ki chai which one can get in kulhad. To reach sector 14 Huda market by metro then you have to deboard at MG Road metro station or if you get down at Huda City Centre then you have to go via sharing autos or individual autos.
Knowing your audience — How to write for the UK and American markets
By: Craig Smith, Crs Editorial
Tags: Language, Market, UK, English, America

Target market.

An oft used phrase, but what does it mean?

Communicating with fellow human beings is a key ingredient in the rich tapestry of life. Be it on a personal or business level, the volume of information readily available for consumption is profound. Though when the time arrives to translate those conversations to words on a page, do you give consideration to the people you are writing for — your target market?

Having completed work for both British and American clients, I want to share with you a couple of tips on how to ensure your content is fit for its intended audience.

Tech — no!



Software and apps (and their settings) can only help you to a certain point.

It is important you are mindful of who you are writing for. On which side of the Atlantic Ocean will your text be read?

Spellbound

To ensure you hold the complete attention of those you are writing for (your target market), it is imperative to address even the slightest difference. After all, if you are writing for a British magazine your content should not be awash with Americanisms, and vice versa.

Understanding the British English and the American English ways of referring to words will help you captivate your audience.

Here are a few points to consider:

· Should it be ‘organisation’ (UK) or ‘organization’ (American)?

· Is it ‘colour’ (UK) or ‘color’ (American)?

· Do you mean ‘flavour’ (UK) or ‘flavor’ (American)?

Be mindful of the differences that exist, as one thing is for sure, your audience will!

Mind your language

Vocabulary can also differ depending on which side of ‘the pond’ your work is for. Being conscious of particular names attributed to items and the phrases familiar to your audience can be key contributors to the success of your product.

So do your research and understand the terms known to your target market.

Examples may include:

· ‘Anti-clockwise’ (UK) or ‘counter-clockwise’ (American)

· ‘Autumn’ (UK) or ‘fall’ (American)

· ‘Term’ (UK) or ‘semester’ (American).

The take away

Knowing your audience is crucial. If you are unsure, then ask!

After all, it is better to ask questions at the outset than questions being asked of you following document submission.

By Craig Smith of CRS Editorial
Escalating Road Congestion Fueling Demand for Two-Wheeler Sharing Services in India
By: Punit Shah
Tags: Mobility, India, Research, Market, Business

With the growing requirement for affordable and convenient mobility solutions, the popularity of two-wheeler sharing services is rising rapidly in India. The emergence of these services has eliminated the need for vehicle ownership, which has, in turn, reduced the expenditure of people. This is because owning a vehicle is quite expensive because of various associated costs such as insurance costs, maintenance costs, and parking expenses. Due to the surging internet penetration, these sharing services are now accessible to the masses.

Due to the above-mentioned factors, the demand for two-wheeler sharing services is growing rapidly. This is driving the advancement of the Indian two-wheeler sharing market. According to the estimates of P&S Intelligence, a market research company based in India, the value of the market will grow from $31.1 million in 2019 to $94.0 million by 2025. Furthermore, the market is predicted to progress at a CAGR of 20.2% between 2020 and 2025.

Rental, scooter sharing, and bike taxis are the most widely availed two-wheeler sharing services in India. Out of these, the demand for the bike taxi service is predicted to rise rapidly in the years to come. This will be because of the growing popularity of on-demand two-wheeler sharing services and the soaring expansion of the two-wheeler sharing service providing companies in the tier-2 and tier-1 cities all over the country.

Geographically, the Indian two-wheeler sharing market recorded the highest growth in the southern region and this trend is predicted to continue in the forth coming years. This is credited to the fact that several two-wheeler sharing services providing companies and firms are present in various Southern cities such as Chennai, Hyderabad, and Bengaluru. Moreover, many new two-wheeler sharing services providing organizations initially launched their operations in the southern region of the country.

Hence, it is safe to say that the demand for two-wheeler sharing services will shoot-up in India in the coming years, mainly because of the rising requirement for affordable and convenient mobility solutions and the increasing road congestion in the major cities and towns of the country.

Source: P&S Intelligence
Business Dynamic (8)- A Technical War Happening Right Now
Tags: Market, International, Semiconductors, Tsmc, Trading Rule

As of right now, the world is officially embroiled in a 5G war. The Trump administration recently announced that they plan to restrict Huawei’s access related to the purchase of premium quality chip’s from TSMC (Also known as Taiwan Semiconductor Manufacturing Company). This is the spark used to ignite the second wave of the trade war. Based on these factors, an income worth $170 billion from the 5G market will disappear like a puff of smoke in the Chinese market. As a result, Chinese firms will face a massive loss if they are unable to purchase semiconductor products from various firms as they usually would.

According to the Butterfly Effect Theory, however, the loss of the Chinese market would cripple the U.S. market. Eventually, causing the global market to suffer major setbacks. On the other hand, if China fights back by shutting down U.S. tech companies, the aftermath could be catastrophic enough to cause a global economic earthquake that would have aftershocks around the world.

A further consequence resulted when Samsung also announced that it is about to build a 5mm chip manufacturing facility in Pyeongtaek, South Korea. According to a report released on May 22nd, the new facility will be responsible for making high-performance smartphone features like AI-powered and HPC (high-performing computing) chips. This plan may be seen as the silver line for Huawei as they would be able to purchase other semiconductor products when the time comes for the American supply chain to outright reject Chinese purchases. In my opinion, this new Samsung production line is also the bullet that Samsung could use to cripple their competitor, namely TSMC.

This new endeavor from the White House is driving us into the unchartered technological territory. To prepare for the future, the semiconductor industry now combines various aspects of design and manufacturing. So in conclusion, the U.S. ban on the use of Huawei equipment in 5G networks because of security fears, will slash current Chinese dominance in the technology industry by roughly 50%. In effect, by restricting 5 and 7-nanometer chip sales to Huawei, their ability to be competitive in the smartphone industry will be highly impacted both now and in the days to come.
The point of no return: When your post office starts to offer crypto purchase
Tags: Market, Bitcoin, Blockchain, Cryptocurrency, Cryptomarket

The point of no return: When your post office starts to offer crypto purchase CryptoStakers 6 days ago·2 min read

Yeah, you read it right. Recently UK post office started to offer bitcoin purchases. Cryptocoins (and in this case Bitcoin) as the precursor of all of this has won. It is changing the way we are going to interact with money and our finances for ever.

More than that, the technology will make profound changes in the financial market. DeFi (decentralized finance), GameFi (derived from the concept play2earn, where you play games to be rewarded with crypto tokens) and all other sorts of **Fi will become intrinsic part of our lives.

Lots of older financial concepts are being reinvented and applied to crypto. But why? — you maybe asking. Overall, financial services are crap. The whole experience delivered by banks and other financial institutions are not there yet. Even for the new Fintechs. They, for sure, improved a lot over the current competition by digitizing drastically most of their relationships with customers. Will this be enough? I mean, experience is much more than just digitizing the interaction points with your customer.

Some concepts that we know about finance will change for ever, transformed by blockchain.

This is where DeFi starts to play. Blockchain allows for a user to borrow and lend at better interest rates with no intermediaries for instance. It allows you to invest (I am not a financial advisor, beware!) in newly launched products through IEOs (Initial Exchange Offering) or IDOs (Initial Decentralized Exchange Offering) and make some money when the project you invest on grows. Now you even have access to DEX (Decentralized Exchanges), without bureaucratic KYC processes if you are not a whale (investor with lots of money) and just want to get started with crypto. And all of this is available online, at a distance of some clicks (and some knowledge about of cryptomarket and it operates, of course).

If you want to know more, please visit out website CryptoStakers.Network to get started. Happy crypto’ing!

Thanks for reading and have a nice day!
The Business Lessons From A Street Vendor
By: Randomly Useful
Tags: Lessons Learned, Market, Business Lessons, Customer Behavior, Business

They Have The Best Understanding Of The Market Than Anybody Else

Photo by Svetlana Gumerova on Unsplash

Have you ever noticed this quality in the vendors of the street. If you keenly follow any one of the vendor you’d notice that even the MNC’s wouldn’t have such a sustainable supply chain management. Yeah that’s right, the term may be complicated but it’s true.

You see, that there will be a paradigm shift in the behavioural design of the customers. In simple terms customer tend to shift to more practical, affordable and advanced products and also use it according to the surrounding circumstances(climate, season, weather).

Let’s take Netflix for example, it understood the change in the customer behaviour and adjusted it business model. It licensed the films from the makers and gave it at a very affordable price with the luxury of watching anytime. It marked the death of then DVD player. Whereas, Blockbuster a DVD selling company failed to accommodate for the change, so it was bankrupt even though it was a billion dollar company. So the business that improvises itself according to the behaviour of the customer always flourishes.

Getting back to the vendors, they are, as I said are great at understanding the change in the market, so they change their supply chain from time to time and adopt the changes.

As an example, during winter the vendor will be selling sweaters and gloves and during summer she/he will be selling ice cream during the day and cotton clothes or some other commodity during the night.

So you see that the tweak in the supply chain is very very quick in case of the vendor in contrast to MNC’s where for a decision to be made, it has to be done via mail and it takes a lot of time. This is because the MNC’s are very organised while the street vendors or slightly unorganised.

Now if you observe the percentage of the loss incurred during the change in supply chain, the MNC’s numbers would be higher. But the vendor in most cases wouldn’t have been affected by the sudden change.

Lessons I learned from the vendors:

Know you market and customers well.

Don’t be too organised.

Always be ready to tweak your supply chain.

So these are the simple business lessons that you can get form your day-to-day surroundings. Stay tuned for more lessons like this.
Let’s learn how to to build a chat application with Redis, WebSocket and Go
By: Abhishek Gupta
Tags: NoSQL, Go, Redis, Database, Azure

Why Redis?

Let’s consider a chat application. When a user first connects, a corresponding WebSocket connection is created within the application ( WebSocket server) and it is associated with the specific application instance. This WebSocket connection is what enables us to broadcast chat messages between users. We can scale (out) our application (for e.g. to account for a large user base) by running multiple instances. Now, if a new user comes in, they may be connected to a new instance. So we have a scenario where different users (hence their respective WebSocket connections) are associated with different instances. As a result, they will not be able to exchange messages with each other - this is unacceptable, even for our toy chat application 😉

Redis is a versatile key value that supports a variety of rich data structures such as List , Set , Sorted Set , Hash etc. One of the features also includes a PubSub capability using which publishers can send messages to Redis channel(s) and subscribers can listen for messages on these channel(s) - both are completely independent and decoupled from each other. This can be used to solve the problem we have. Now, instead of depending on WebSocket connections only, we can use a Redis channel which each chat application can subscribe to. Thus, the messages sent to the WebSocket connection can be now piped via the Redis channel to ensure that all the application instances (and associated chat users) receive them.

More on this when we dive into the code in the next section. It is available on Github

Please note that instead of plain WebSocket , you can also use technologies such as Azure SignalRthat allows apps to push content updates to connected clients, such as a single page web or mobile application. As a result, clients are updated without the need to poll the server or submit new HTTP requests for updates

To follow along and deploy this solution to Azure, you are going to need a Microsoft Azure account. You can grab one for free if you don’t have it already!
GraphQL with JWT authentication for Redis using Flask in Python
By: Raul Alves
Tags: Flask, Python, GraphQL, Redis, Jwt

2 — Basic concepts

Why GraphQL ?

Nowadays, most companies are using GraphQL, replacing the old REST endpoints. There are two main reasons for that:

Gives more control to the frontend to request exactly the data needed

Removes the process of when changing the endpoints parameters, the Swagger or other tool should also be modified for generating the JS interfaces.

A GraphQL query is simply acquiring information from the database. A GraphQL mutation is just like a POST, where data is inserted in the database.

In Python, we will use Graphene, which is the API for GraphQL.

Why Redis ?

Redis is an open source database. The data is stored as a key-value, being extremally simple and fast to save and access data during runtime in productions servers. It is also used as a message broker for queueing.

I chose to explore redis with GraphQL because other databases already have tons of code available (eg. Graphene with SQL and Graphene with Mongo).

Why Flask ?

Flask is a Python API that makes it easy to create the backend of a web application or a microsservice. Despite Django being more recommended for production development of large applications, I chose Flask because I think it’s simpler =).

Flask-GraphQL is the API used in this article.

Why JWT ?

JWT stands for Json Web Token. For security reasons, each endpoint of any application or microservice needs to have authentication/authorization mechanisms.

First, the user needs to say who he/she is, performing the login through a GraphQL mutation. That login generates a token, that holds information about the user, its privileges and its expiration date. That is basically the authentication mechanism adopted in this article.

Then, that token is going to be used in each GraphQL query. The token is placed in the header of the requisition. In the code, before actually performing the query, the backend needs to evaluate the authorization of the provided token, to make sure it has the privileges to access those resources.

That is a simple way to controll access of the resources of your microservices.
Rails — Shared Redis connection pool between Sidekiq and Application
By: Anurag Tiwari
Tags: Redis, Connection Pool, Rails, Sidekiq

Connection Pooling is a cache of database connections that can be reused when future requests to the database are required. So, does that mean you open all the connections on the application boot up? No, you would rather just define the minimum pool of connection required and then lazy load them.

Just in case you’re not familiar with Sidekiq read my previous article.

We will connection pool and use it both for the application requirements and background jobs processors like Sidekiq, Resque, ActiveJob, etc.

Install Connection Pool gem (not required if you already have sidekiq installed.)

gem install connection_pool

Now in your sidekiq initializer define the Redis configuration as:

# frozen_string_literal: true

# sidekiq required minimum connection of (2 + concurrency)

# https://github.com/mperham/sidekiq/blob/master/lib/sidekiq/redis_connection.rb#L51 # using pool to share connection b/w application and sidekiq# sidekiq required minimum connection of (2 + concurrency) REDIS_POOL = ConnectionPool.new(size: 10) { Redis.new(url: ENV['REDIS_URL']) } Sidekiq.configure_server do |config|

config.redis = REDIS_POOL

end Sidekiq.configure_client do |config|

config.redis = REDIS_POOL

end

Note: Sidekiq needs 2 connections by default for a bunch of stuff like a heartbeat, maintain sentinel, etc. Read here. That’s why if you have max threads or concurrency of for ex. 5 then you need to have at least 7 connections in your pool.

The sidekiq workers will utilize the Redis pool for processing background jobs. To use the pool in the application —

# store `foo` with value `bar` in redis

REDIS_POOL.with do |client|

client.set('foo', 'bar')

end # retrieve value of key `foo`

REDIS_POOL.with do |client|

client.get('foo')

end

All Redis operations can be performed inside the block. Brush up on Redis here.
Redis Keyspace Notifications for Expired Keys:
By: Saurav Omar
Tags: Redis, Keyspacenotification, Keyspaceexpiredevents, Expire Events

Actually, I was trying to figuring out how to listen or subscribe on expired keys in Redis, then I came across notifications events in Redis. In this article, I will give you an overview of how to configure key space notifications events.

Enable keyspace notifications:

By default keyspace notifications are disabled in Redis due to performance impact. There are two ways we can enable this either using redis-cli or redis.conf file.

Enable Using Redis-CLI:

$ redis-cli config set notify-keyspace-events Ex OK

Here we are only configured for expired events on keys so we used Ex

E: key events or events happening on keys

x: expired events

check for more events type these are the events which are present are copied from Redis documentation.

K Keyspace events, published with __keyspace@<db>__ prefix.

E Keyevent events, published with __keyevent@<db>__ prefix.

g Generic commands (non-type specific) like DEL, EXPIRE, RENAME, ...

$ String commands

l List commands

s Set commands

h Hash commands

z Sorted set commands

x Expired events (events generated every time a key expires)

e Evicted events (events generated when a key is evicted for maxmemory)

A Alias for g$lshzxe, so that the "AKE" string means all the events.

Enable Using Redis.conf:

Add line notify-keyspace-events Ex in redis.conf

See the second last line which is uncommented. We have configured this let’s see with an example.

Let’s set value and expire time as 5 sec for key redis first and subscriber for expired events

127.0.0.1:6379> SETEX redis 5 test OK

Now adding subscriber for expired events.

$redis-cli — csv psubscribe ‘__key*__:*’

Reading messages... (press Ctrl-C to quit)

"psubscribe","__key*__:*",1

After 5 seconds

redis-cli — csv psubscribe ‘__key*__:*’ Reading messages… (press Ctrl-C to quit) “psubscribe”,”__key*__:*”,1 “pmessage”,”__key*__:*”,”__keyevent@0__:expired”,”redis”

Yay !!! it’s working.

That’s it.

PS: If you like these articles please clap and share it, It motivates to write more articles.
Building a Notification Framework for Microservice-based Application
By: Sohom Majumdar
Tags: Engineering, Java, Microservices, Redis, Expressjs

Frontend Implementation

To enable the frontend, we use an Express server that acts as a middleware between the user’s browser and the backend microservices to perform authentication and session management. We piggybacked on this server to read the notifications from Redis and push them to the user.

Pushing the notification to the browser

Server-Sent Events (SSE) is a technology built on top of HTTP. For every user that logs in to the system, we establish a persistent HTTP connection for the duration of the user session. SSE’s protocol specs dictate that the JSON data is converted to a string and each event ends with two newline characters. You can check this tutorial to read more about how to use SSE using Javascript.

Once the connection is established, we leverage Node.js event model to push data to the client as and when new notifications become available from Redis. We emit a notification event that is attached to an event listener within the scope of the HTTP SSE handler. We use the logged-in user’s unique id to match the message from Redis to the user’s connection.

This GitHub code snippet describes how it is accomplished.

Receiving the notification in the browser

On the client side, SSE provides an EventSource API that allows us to connect to the server and receive updates from it. SSE has a limitation that it can support six concurrent connections at a time. Since we open a new connection in each browser tab, it limited our users to six open tabs at a time. To circumvent this limitation, we use SharedWorkers. This enables us to create one persistent connection in a SharedWorker and access it across different browser tabs and iframes. One downside of shared workers is that it is not supported on Safari and IE, but since the majority of our user base was on Chrome and Firefox this was taken as an acceptable solution. In case a user is using IE or Safari, we fall back to the SSE model where only 6 tabs are permitted.

When a user logs in for the first time, a new shared worker instance is instantiated, which is then attached to the window instance. This can then be accessed in all browser contexts. Web pages can then communicate to the shared worker using a MessagePort object and attach an event handler that will be called every time the shared worker pushes a message.

Following snippet in github has the code for receiving the notifications in the browser.

Showing the notification to the user

Every time a new tab or browser window is opened, the shared worker assigns a port number to each new tab. These port numbers are kept in an array for each user. Whenever a new notification is generated, it is pushed to all the ports to make it consistent across the tabs. On closing the tab a beforeUnload event is triggered, in which we remove the corresponding port from the array.
Fastest Redis Client Library for Go
By: Rizal Widyarta Gowandy
Tags: Development, Golang, Benchmark, Technology, Redis

Benchmarking some popular Redis client libraries for Go to find the fastest one.

Motivation

Increasing RPS (request per second) is not an easy task. Changing your code to increase performance is even more challenging. There are several popular libraries out there, and almost every single one claims to be the fastest. The problem arises when the benchmarking result is out of date. Even worse when the one who did the benchmark tunes the library in a non-general way. Hence, the achieve the same performance is pretty much impossible for the general user.

The purpose of the benchmark is to find the fastest Redis client library for Go with a controlled environment and without any magic hack to tune any of the libraries.

Environment

Go client libraries used:

Max connection pool size 100 and 1000.

Cluster mode on and off with replica size of 5. Except for gomodule/redigo which currently do not support a cluster client mode.

Benchmarking Result

The result below is the average result after running the benchmark 25 times.

Understanding the Result

There are four columns on the right side of each Redis operation like GET included in the result above. The meaning for each one of them is:

iteration => the number of iterations of the operation run, a higher value is better .

=> the number of iterations of the operation run, . ns/op => this is the average time each function call takes to complete, a smaller value is better .

=> this is the average time each function call takes to complete, . B/op => this is the average memory used for each function call, a smaller value is better.

=> this is the average memory used for each function call, allocs/o => this is the average memory allocation for each function call, a smaller value is better.

We can see go-redis/redis/v8/cluster-pool:1000 outperformed other libraries almost across all the operation benchmarks. Excluding the EXPIRE operation where mediocregopher/radix/v3/cluster-pool:1000 actually outperformed it by a small margin.

Another interesting result such as that gomodule/redigo-pool:100 actually outperformed gomodule/redigo-pool:1000 on a certain operation like HGET. This is most likely because the increase of the connection pool increases the competition for resource allocation in a limited resource environment. Having a small connection pool allows the previous operation to be done first before handling the next one. Since there is no resource allocation competition it actually can perform better than one with a higher connection pool. It means we shouldn’t blindly increase the max connection pool and believe that the operation will go faster.

Conclusion

By looking at the result above, we can conclude that go-redis/redis/v8 with cluster mode on is the overall fastest Redis client library for Go. It’s recommended to use it with cluster mode on, and with dedicated max connection pool size based on your own environment. Some testing is required to find the balance max connection pool size depending on your most heavy operations.
An Introduction to Redis
By: Kumaran Kugesh
Tags: Message, Redis, Database, In Memory, Software

Redis as an in-memory database

We all know in every computer we have two types of memory — non-volatile or secondary memory (ex. hardisk) and volatile or primary memory (ex. RAM, ROM). Whenever we open an application the data will be fetched by the CPU from secondary memory and fed into RAM to make further accessing faster.Because, fetching from secondary memory will take more time compared to fetching from RAM.

Normally our RDBMS (Relational Database Management System) or any other data which we want to persist permanently will be stored in secondary memory. But, fetching from those will cost some delay. To rectify that we can store the data in RAM and using that primary memory as a database can be called in-memory database. But, as everyone knows it is transient because RAM itself is transient.

The accessing will be much faster fromRAM than from the secondary memory. In-memory database is nothing but storing the data in primary memory that is RAM or cache(we will discuss later about this). We can use redis the same as other databases like storing key and value pairs, sets, etc.., except persisting the data in secondary memory. There are ways to persist data in secondary memory with redis but that is not in our scope today.
Serverless with Redis Database(less)
By: Dhaval Nagar
Tags: Serverless, Serverless Architecture, Redis, Redis Serverless, Database

Upstash is giving an easy to set up and different endpoints (Redis client, REST, and GraphQL) to use Redis in a pure Serverless way — PAY FOR WHAT YOU CONSUME (Query, Storage, and Data Transfer).

Pay Per Request — You can create the Redis database and access it via the Redis CLI, Redis clients like ioredis, or REST APIs. Upstash does the metering against the commands and you pay only for the APIs called along with Data Storage and Data Transfer cost.

Low Latency — The latency is the biggest advantage of Redis, because of the in-memory data format. Upstash maintains a similar submillisecond level of latency with the no-servers-to-manage format.

Durable Storage — Upstash has added a durable layer underneath the Redis server. Once you save the data, it is also saved on the storage provided by the Cloud provider. For example, if you select the AWS option, the data is also stored on EBS. This helps against server failure.

Edge Caching — REST APIs allow leveraging the Edge-enabled cache to further reduce the latency. This feature increases the per-request cost.

The REST endpoint also offers the Read Only token to make limited READ API calls.

The idea of having a Cache server in front of the Database is also undergoing a lot of discussion. With the breadth of use cases and the newer features, the Cache itself can serve as the primary database.

Please do check the Redis API Compatibility before you decide to use the service.

Pricing

Now the most important part, how is this Serverless!!

Setup

In Upstash, you can create a Redis database via the UI Console, API, or the Terraform provider (https://blog.upstash.com/redis-terraform).
A Preview of Maestro Muti’s Return to Chicago: 2021–2022 CSO Season Highlights
By: Claire Liu
Tags: Culture, Chicago, Music, Classical Music, Art

Well, that was quick! Less than a week after the final program of the CSO’s abridged 2020–2021 season concluded, the CSO released a sneak peek preview of the upcoming 2021–2022 season, which will herald the return of Maestro Muti back to the podium in Orchestra Hall! Some highlights to note:

First, and foremost, the finale of the season (~June 2022) will feature Maestro Muti leading an opera of Verdi’s in concert format, and that opera is Un Ballo in Maschera (otherwise known as “A Masked Ball”)! So many fantastic moments in that opera, whether it’s the famous love duet between Riccardo/Amelia (“Teco io sto”), Renato’s aria (“Eri tu…”)-which is one of the great arias written for the baritone-I am most definitely looking forward to getting back into studying Verdi’s scores w/ Maestro Muti again, and I’m sure there will be a lot of new things to learn about 😀

The first three programs of the season, starting in September 2021, will yield a mixture of the classical standard repertoire with some premiere performances. I’m most looking forward to hearing the works in the first program, by Saint-Georges (Overture to L’amant anonyme), Price ( Andante moderato), along with Beethoven’s Symphony №3 ( Eroica), as well as Beethoven’s №7, Brahms’ Violin Concerto (w/ Kavakos!!), and Tchaikovsky’s Symphony №6 ( Pathetique).

Also in other good news, the ongoing recording of the full Beethoven symphony cycle-that was interrupted by the pandemic-will still continue into this new season, with planned performances of Symphonies №4, 6, and 9 (although not sure what’s the deal with 8?…).

Anyways, I’m looking forward to all that’s coming up later on in the year! A more detailed look at the full CSO ‘21-’22 season will be coming up next month, so I’ll be sure to update once that’s out. Until then, happy summer!

I’m currently a PhD student at Northwestern University, working on developing bio-integrated devices for health applications. I’m also an avid listener of classical music and am particularly interested in the musicology of 19th century Italian opera, especially those of Giuseppe Verdi. View all posts by Claire Liu
Cityscape receives grant to launch a “Data Equity Cohort”
By: Steven Vance
Tags: Data Equity, Real Estate, Chicago

This is an announcement about a grant-supported program we are launching.

Chicago Cityscape is a real estate information platform designed to spark and inspire more equitable development in overlooked and underinvested neighborhoods by organizing and aggregating property data, policy information, and market insights into one platform — equalizing access to information for underrepresented and resourced property professional and nonprofit organizations.

Chicago-based organizations and individuals who work to build housing and promote economic and neighborhood development should have equal access to property data, policy information, and market insights to shape a more equity-minded built environment.

From Cityscape’s perspective, this cohort includes emerging, less experienced, and mission-oriented real estate developers (especially people of color who, as a group, receive less funding and investment for their projects); non-profit organizations such as Chambers of Commerce, Special Service Areas (SSA), Community Development Corporations (CDC); housing development & advocacy organizations; and nascent land ownership models like cooperatives and land trusts.

Chicago Cityscape recently received a capacity building grant from Searle Funds through the Chicago Community Trust. With these funds we will work alongside the “focus” organizations and individuals mentioned above to:

We will coach focus organizations and individuals on how to leverage our current tools on the Cityscape platform — for free — in exchange for their feedback.,

We’re going to learn from them what needs to be added, adjusted, and improved on our platform to co-design solutions that help meet their missions.

We’re going to continue to reduce barriers to access data and technology in the community development process.

Steven and Casey will present at Chi Hack Night (on Zoom) on Tuesday, June 22, 2021, about new data and tools on Chicago Cityscape that have been developed to “spark and inspire more equitable development” as well as our plans for this grant-funded program.

Watch the video recording on YouTube.
2018 Chicago’s Problem Landlords
By: Jumoke Taiwo
Tags: Tenant Rights, Chicago

Based on data from the Chicago data portal, the chart shows a list of areas “problem landlords” hold properties within.

What if you had a public list to shame all of those who bore the responsibility of owning a building and failed to protect their tenants? That’s the idea behind the City of Chicago’s problem landlord list. Problem landlords, according to the city’s data portal, are those who fail to meet basic property and housing standards, and found liable for two or more serious violations on their buildings within two years. Chicago established its problem landlord list in 2015, some months after a fire killed four children in a Roseland apartment that had no working smoke detectors.

Other serious violations are listed within Chicago’s rules and regulations, shown below. In creating the list the city administration hopes it will allow potential tenants the transparency and knowledge of the buildings and landlords in their neighborhood.

excerpt from “City of Chicago Rules — Problem Landlord list” 2015 /City of Chicago Department of Buildings

Though the problem landlord list “has problems of its own” — namely the lack of updates (claiming to update yearly but last updated in 2018) — it shows an interesting and startling pattern. Most buildings and properties on this list are within Chicago’s south and west sides, meaning those the city is most likely to find violating serious codes are in historically poorer, and Blacker neighborhoods.

The data collected from Chicago’s data portal is designed to show wards and neighborhoods, a bar per property owners, some owning more than one. Austin, Roseland, and Morgan Park having the highest concentration.

In 2021, with quarantine lifting and eviction moratoriums with them, current problem landlords are an even bigger question — who’s keeping track of them now?
Affordable Rental Housing for all?
By: Clare Tendian
Tags: Affordable Housing, Housing Crisis, Housing, Chicago, Units For Sale

Every day, people are trying to buy houses and sometimes have to struggle to purchase one. Those people end up taking a loan from a bank because they could not afford it right away. This is where affordable rental homes fall into place. Affordable rental homes also known as affordable housing are for people who have an average household income or below what is stated by the national government or a local government using a housing affordability index. The local or national government would provide affordable housing developments for people with average or low household income for them to move into.

You might be wondering if this sounds similar to public housing. Both public housing and affordable rental housing are used interchangeably, so people get confused between those terms. Public housing is housing that the government owns to provide housing for low-income families. In this case, affordable housing is housing or properties that are available to lower-income families at a less than market value. These developers of these properties can receive a tax credit from the government to provide a specific number of residential units. These specific units would host families that are under 60% of the area median income. Although, as you may have suspected, the cost of affordable housing and rent subsidies depend on the location you are trying to move to.

This information ties into the chart below. The chart below is data that shows areas that have developments of where affordable housing is in Chicago and it shows the total number of units in those developments. The data is from the Chicago Data Portal under Communities. As you can see in the bar graph, the area Oakland, has the most units for affordable housing. The area with the least number of units is Lincoln Square with 6 units of affordable housing.

Chart of affordable rental housing developments listed and the number of units.
Chicagoans Get Vaccinated as the City Prepares for a Full Reopening
By: Ashley Vong
Tags: Vaccine, Reopening, Chicago, Covid 19, Lollapalooza

Chicagoans Get Vaccinated as the City Prepares for a Full Reopening

As the business and beaches gear up for June 11, so do the residents. Ashley Vong Jun 8·1 min read

According to Chicago.gov, Mayor Lori Lightfoot has planned to implement the city into Phase 5: Illinois Restored on June 11. Capacity limits, restricted hours, and mandatory masks (still applicable to non-vaccinated/half vaccinated individuals) will be no longer be required by law. Furthermore, large events like Lollapalooza can take place safely.

By: Ashley Vongphakdy

Looking at the graph above, we can see that around ~1.2 million Chicago residents have been reported as fully vaccinated, alongside ~1.4 million who have received their first dose. With an estimated population of 2.7 million from a United States Census Bureau 2019 report, the city is set to reopen with 43% of civilians being fully vaccinated.

One of the most anticipated events of the summer, Lollapalooza, has released a statement that “full COVID-19 vaccination or negative COVID-19 test results will be required to attend Lollapalooza 2021”. For attendees who are not fully vaccinated, a negative COVID test must be obtained 24 hours before attending the festival each day. More information on Lollapalooza’s COVID rules and regulations can be found here.

The possibility of reopening would not be possible without the hard work of Chicagoans.
Chicago Covid-19 Community Vulnerability
By: Andrea Lares
Tags: Covid 19, Chicago

Chicago Covid-19 Community Vulnerability

South neighborhoods rank highest across vulnerability factors like socioeconomic status and incidents Andrea Lares Jun 8·1 min read

The Department of Public Health has compiled data on Covid-19 vulnerability across several Chicago neighborhoods. The vulnerability score (CCVI) is averaged through the rankings of several factors like socioeconomic status, comorbid conditions, and Covid-19 incidence rates (to name a few).

The data shows certain neighborhoods — typically Southside — are disproportionately affected by Covid-19. Northside areas like Hyde Park or Uptown ranked significantly lower.

Most of the higher CCVI scores coincide with high socioeconomic vulnerability rankings as well as a high amount of Covid hospitalizations and higher resulting mortality rates. This could indicate a lack of resources available to these communities on the Southside due to lack of funding and accessibility.

The data was last updated in March of 2021. More detailed information on the affects of Covid-19 on Chicago can be found on the Chicago Data Portal.