SEARCH KEYWORD -- BLOCKED



  China has blocked Wikipedia again

Recently lots of Chinese found they experienced problems while trying to access Wikipedia, the world's largest and most well-known free encyclopedia. It turns out that the notorious Chinese GFW(Great Firewall) is playing the critical role here. It blocks the Chinese version of Wikipedia. The reason why the Chinese version of Wikipedia is blocked is said to be that Wikipedia has changed its default protocol from HTTP to HTTPS. This change made it difficult for the GFW to filter some sensiti...

   CHINA,WIKIPEDIA,GFW,BLOCKED,NEWS     2015-12-05 19:04:12

  JavaScript to open link in new window without being popup blocked

To ensure security and reduce spamming, modern browsers have implemented very strict rules on when a new window can be opened in a web page. Currently browsers restrict that any new web page to be opened in a new window must be initiated with an user action. The action is usually an user click event. Otherwise, a popup blocker would show on the browser address bar which indicates that something is blocked. To workaround this issue, normally you should implement the window open logic in a click e...

   JAVASCRIPT,IFRAME,NEW WINDOW,OPEN LINK     2018-09-22 04:29:30

  How to improve website rank in search engine?

Want to let people know your website? Want to get much web traffic ? Then you need to make sure that people can find your website. Currently, many people are using search engine to find what they are interested in. So besides good content, you need to spend some time on getting your website shown at the first few pages of the search engine. Here are 10 suggestions to improve your website rank in search engine.1. Webpage response speedSimilar to human beings, search engine hates waiting. Webpage ...

   Website rank,Suggestions,SEO     2012-07-23 13:28:27

  Go channel explained

In Go, a channel is a type of concurrent data structure that allows two or more goroutines (Go's term for lightweight threads) to communicate with each other. Channels provide a way for goroutines to send and receive values, and they are an essential part of Go's concurrency model. Here's a simple example that demonstrates how to use channels in Go: package main import ( "fmt" ) func main() { // Create a new channel with the `make` function ch := make(chan int) // Start a new ...

   GOLANG,CHANNEL     2022-12-10 22:24:26

  Deep Understanding of ReentrantLock: Unlocking the Mysteries of Java Concurrent Programming

ReentrantLock introduction ReentrantLock is a class in the Java concurrent package, java.util.concurrent.locks, and is an implementation of the Lock interface. As its name suggests, it is a reentrant mutual exclusion lock. A mutual exclusion lock is a synchronization tool used to protect shared resources, ensuring that only one thread can access the resource at a given time. Reentrant means that a thread can acquire the same lock multiple times without causing a deadlock. This lock provides some...

   JAVA,REENTRANTLOCK,CONCURRENCY,MULTITHREADING     2023-05-22 08:01:13

  Why is single threaded Redis so fast

Redis is a high-performance, in-memory key-value database. According to official test reports, it can support around 100,000 QPS (queries per second) on a single machine. However, Redis uses a single-threaded architecture in its design. Why does Redis still have such high performance with a single-threaded design? Wouldn't it be better to use multiple threads for concurrent request processing? In this article, let's explore why Redis has a single-threaded architecture and still maintains its spe...

   REDIS,SINGLE-THREADED,MULTI-THREADING     2023-02-28 05:16:22

  3 preconditions for Facebook to enter China

It's well known that Mark Zuckerberg has a big interest in the Chinese market. Recently, the founder of Facebook visited China to attend a development forum held by the Chinese government. Along with the trip, he also paid a trip to some famous places in Beijing such as The Great Wall. He even did a morning run in front of the Tian'an men Square, the symbol of China.  In past few years, Zuckerberg also learned Chinese and read Chinese books, showed his love to the Chinese culture....

   FACEBOOK,CHINA,MARK ZUCKERBERG     2016-03-25 01:32:51

  gethostbyname vs getaddrinfo

getaddrinfo is slower than ping when resolving domain names. I think ping uses gethostbyname to resolve a domain name. The question becomes whether getaddrinfo is slower than gethostbyname. After testing with both functions, we find that getaddrinfo is really slow compared to gethostbyname. By strace tracking,  we find getaddrinfo will communicate with DNS server 10 times and gethostbyname will communicate with DNS server communication twice.gethostbyname is an old way to resolve domain nam...

   C++,network,DNS     2012-08-15 14:06:34

  The evolving history of asynchronous operation in JavaScript

JavaScript is single threaded, it means there would be only one task running at any point of time. But this would slow down the overall program execution if there is long running task, hence asynchronous task execution is desired in complex cases. To achieve asynchronous task execution, there are a few options introduced in JavaScript. setTimeout/setInterval Event Promise Async/Await setTimeout/setInterval is one of the first mechanisms introduced in JavaScript to simulate asynchronous operati...

   JAVASCRIPT,ASYNC,PROMISE,AWAIT     2019-11-09 08:21:56

  A journey to investigate a goroutine leakage case

In Go, creating goroutines is straightforward, but improper usage may result in a large number of goroutines unable to terminate, leading to resource leakage and memory leaks over time. The key to avoiding goroutine leaks is to manage the lifecycle of goroutines properly. By exporting runtime metrics and utilizing pprof, one can detect and resolve goroutine leakage issues. This post will go through one real case encountered by the author. The author maintains a service that connects to a targe...

   TIMEOUT,SSH,GUIDE,DEBUG,LEAK,GOROUTINE,PPROF,GOLANG     2024-03-16 11:00:23