SEARCH KEYWORD -- CODE CONFERENCE
The 7 stages of refactoring
You have wanted to fix that module for ages. Just one look at it and you cringe. The documentation, the weird naming of functions, classes that are just plain weird. The module hobbeles along, but it is just plain dirty. The real programmer in you cringe, and when there finally is some time to refactor the module, you jump at it. Step 1 - Desperation So you start to have a real good look at what you need to. Fix a class here, rename a few functions there, tear out a few function...
Refactoring,Software,Desperation 2011-08-16 08:35:57
JSON unmarshal in GoLang
In almost all mainstream programming languages, there is either built-in or third-party library to support parse JSON data because it is so popular for organizing and transferring data among different services. In GoLang, the built in json package also provides functions for marshalling and unmarshalling JSON data. Marshalling GoLang struct to a JSON string is relatively simple, just need to call json.Marshal(), it's a bit complicated to unmarshal an arbitrary JSON string into a GoLang struct ob...
GOLANG,JSON,UNMARSHAL,EMPTY INTERFACE 2019-11-09 21:57:30
JavaScript JVM runs Java
The world of software is made slightly crazy because of the huge flexibility within any computer language. Once you have absorbed the idea of a compiler written in the language it compiles what else is there left to gawp at? But... a Java Virtual Machine JVM written in JavaScript seems like another level of insanity.In fact it is a quite reasonable idea which is only made mad by the usual positions that Java, the top dog, and JavaScript the underling, usually occupy. Java is compiled not to mach...
JavaScript,JVM,BicaVM,Cross platform,JavaScript written JVM 2011-11-22 02:51:38
git reset vs git revert
When maintaining code using version control systems such as git, it is unavoidable that we need to rollback some wrong commits either due to bugs or temp code revert. In this case, rookie developers would be very nervous because they may get lost on what they should do to rollback their changes without affecting others, but to veteran developers, this is their routine work and they can show you different ways of doing that. In this post, we will introduce two major ones used frequently by develo...
GIT,GIT RESET,GIT REVERT 2019-02-02 08:26:39
A Peek Inside the Erlang Compiler
Erlang is a complex system, and I can’t do its inner workings justice in a short article, but I wanted to give some insight into what goes on when a module is compiled and loaded. As with most compilers, the first step is to convert the textual source to an abstract syntax tree, but that’s unremarkable. What is interesting is that the code goes through three major representations, and you can look at each of them. Erlang is unique among functional languages in its casual scop...
Erlang,Peek,Erlang compiler 2012-02-08 10:12:04
How the Go language improves expressiveness without sacrificing runtime performance
This week there was a discussion on the golang-nuts mailing list about an idiomatic way to update a slice of structs. For example, consider this struct representing a set of counters. type E struct { A, B, C, D int } var e = make([]E, 1000) Updating these counters may take the form for i := range e { e[i].A += 1 e[i].B += 2 e[i].C += 3 e[i].D += 4 } Which is good idiomatic Go code. It's pretty fast too BenchmarkManual 500000 ...
Go,Expressiveness,Performace,Sacrifice 2012-02-12 04:53:55
Lisp: It's Not About Macros, It's About Read
Note: the examples here only work with outlet lisp. Refer to your version of lisp/scheme’s documentation for how read works (and possibly other forms) I know it’s an old post by now, but something about the article Why I love Common Lisp and hate Java, part II rubbed me the wrong way. The examples just aren’t that good. The usage of macros is plain baffling, when a function would have been fine. The author admits this, but still does it. There’s a follow-up post wh...
Understanding PGO in GoLang 1.20
Background The Go 1.20 version was officially released in February 2023, it introduced the PGO(Profile Guided Optimization) mechanism. The basic principle of PGO can be divided into the following two steps: First, profiling is performed on the program to collect data about the program's runtime and generate a profiling file. When compiling the program, enable the PGO option, and the compiler will optimize the program's performance based on the content in the .pgo file. When compiling a program...
An Object is not a Hash
Following my article A String is not an Error, I want to bring attention to an issue that similarly applies to JavaScript in general, but has special relevance in the Node.JS environment. The problem boils down to the usage of {} as a data-structure where the keys are supplied by untrusted user input, and the mechanisms that are normally used to assert whether a key exists. Consider the example of a simple blog created with Express. We decide to store blog posts in memory in a {}, indexed ...
Object,Hash,Node.js,JavaScript 2012-01-19 10:16:10
Why does LinkedIn migrate to NodeJS from Ruby?
Node.js, the server-side JavaScript-based software platform used to build scalable network applications, has been all the rage among many developers for the past couple of years. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices. Because of these advantages, there are many websites are migrating to Node.js.One of them is LinkedIn. LinkedIn was initially built on Ruby...
RECENT
- EtsiosApp Release Date: All You Need to Know
- SIEM Big Data Visualization [03]:Graph-Based SIEM Log Analysis Dashboard
- How AI is Changing Web Development: A New Era of Digital Innovation
- SIEM Big Data Visualization [02]: National Cyber Threats Dashboard
- Exploring the Impact of a Loan Origination System on Financial Institutions
- Power Grid OT Simulation System
- Why is Golang's Compilation Speed So Fast?
- SIEM Big Data Visualization : Dashboard for Monitoring Scam Events in Critical Infrastructure
- Introduction to the Application of eBPF in Golang
- Flows.network: Writing an LLM Application in Rust
- more>>