SEARCH KEYWORD -- type system
Books for entry level C programmers
In computing, C is a general-purpose programming language initially developed by Dennis Ritchie between 1969 and 1973 at Bell Labs Its design provides constructs that map efficiently to typical machine instructions, and therefore it found lasting use in applications that had formerly been coded in assembly language, most notably system software like the Unix computer operating system.To learn C, we need to read many C books and have many practices. Here we summarize a list of C books which may h...
How to write your own DSL in Ruby
DSL(Domain Specific Language) is a language defined to fulfill some domain specific requirements to ease people's work. It can be used to define attributes and actions of a domain easily and cleanly. And it is often created based on some common observations or micro patterns of some domain. In Ruby world, there are quite a few places people can find DSL. For example, Ruby itself, Chef recipes. To create a class in Ruby, the traditional OOP way would look like. class User @name = nil @email =...
Different module types in Java 9
Java 9 is going to introduce a disruptive change to the Java platform -- Module System. The module system will change how Java applications work in the future. It's like changing the foundation of a house without impacting the house functionality and its top level structure. This obviously is a big challenge for the whole Java community. To bring as little pain as possible to migrate existing applications to Java 9 without refactoring the whole application, Java 9 will introduce a few diff...
JAVA,JAVA 9,JIGSAW,MODULE SYSTEM,UNNAMED MODULE,AUTOMATIC MODULE,NAMED MODULE 2016-04-15 07:15:23
My frequently used Linux commands
In our day to day work. We may have many chances working on Linux/Unix systems. There are many things we may need to do, checking logs, navigating in directories, creating file or installing software. We may use many commands to complete the work, such as ls, mkdir, cd etc. Below are my frequently used Linux commands or programs recently: pwd : print working directory, sometimes I need to check which working directory I am in in order to know where to go next. ls : List current directory files,...
Install Kubernetes with minikube and docker on Ubuntu
When someone just wants to play around Kubernetes on its local environment without accessing to Cloud provider resources, one can set Kubernetes up on local environment with minikube with single node mode. This post will provide a simple guideline on how to set up KUbernetes with minikube and docker on Ubuntu. Before all the steps can be started, you may need to first set up kubectl which is a command line tool to operate on Kubernetes resources. Post that, can ensure that docker is installed on...
KUBERNETES,MINIKUBE,DOCKER,UBUNTU 2021-06-01 05:37:40
What is the use of empty struct in GoLang
In Go, an empty struct struct{} is a struct with no fields that may appear to be of little use, but in reality, it can be useful in certain situations and become a simple and efficient solution in code. As a semaphore or lock Because the empty struct has no fields, it can be conveniently used to implement some concurrency control functions, such as mutex locks, read-write locks. We can use chan struct{} to implement an unbuffered channel for controlling concurrent access. package main import ( ...
GOLANG,EMPTY STRUCT 2024-04-05 23:54:03
Deep Dive into Spin Locks in Golang
In concurrent programming, a Mutex is a commonly used synchronization mechanism to protect critical resources and prevent data races. However, in certain specific scenarios, especially when the lock-holding time is short and the number of threads is limited, a more lightweight lock known as a Spin Lock can provide higher performance. What is a Spin Lock A Spin Lock is a form of busy-wait lock. When a thread attempts to acquire a lock held by another thread, it continuously checks the lock's stat...
Why no max/min function for integer in GoLang
You may notice that there is no max/min function provided to compare the maximum/minimum of two or more integers if you are a GoLang developer with some experience . In other languages, these functions are provided as part of the core lib functions. Have you wondered why? Indeed GoLang provides max/min function in math package, but they are used for comparing float64 data type. The signature of these two functions are math.Min(float64, float64) float64 math.Max(float64, float64) float...
Find files by size in Linux
In Linux systems, you may encounter a situation where there is no enough space on the system while you are trying to install some new packages or writing some data. In this case, you may want to clear some unneeded files. A frequent need will be find the largest files in the system so that they can be deleted first and disk space can be released quickly. In this post, we will show a simple command to find files by size so that we know what files are taking the specified space on the system, This...
Restore mocked variables in GoLang unit test
One of the guarding principles of writing unit test is that there should be no real external calls for dependant services. Unit test should run by its own and can run without issues on any environment including local, build, test environment. This indicates there should be some mock responses whenever an external call is needed so that different unit test scenarios can be covered. How can this be done in GoLang? In GoLang, anything can be assigned to a variable even including functions. A variab...
GOLANG,UNIT TEST,MOCK FUNCTION,RESTORE MOCK 2021-12-10 20:43:00
RECENT
- How Artificial Intelligence Is Helping Fight Environmental Challenges
- How to Deal with Accusations of Negligence as a Business
- Google's Business Operations in China Amid Antitrust Scrutiny
- Deploying DeepSeek-R1 Locally with a Custom RAG Knowledge Data Base
- Balancing Convenience and Security in the Digital World
- My AI Learning Journey: Exploring the Future of Technology
- Power Grid Simulation System 02 : FDI Power Outage Attack Case Study
- Be Careful When Using Cursor to Help Build Application
- Calculating Token Count for Claude API Using Go: A Step-by-Step Guide
- Understanding Cursor and WindSurf's Code Indexing Logic
- more>>