Today's Question:  What does your personal desk look like?        GIVE A SHOUT

SEARCH KEYWORD -- Post



  Why accessing Java HashMap may cause infinite loop in concurrent environment

HashMap in Java is frequently used to handle key/value pairs. But it is not a good candidate to be used in concurrent environment where ConcurrentHashMap should be used instead. If used in concurrent environment, it may cause lots of unexpected behavior even including make the program getting into an infinite loop situation. To understand how this can happen, let's first discuss how HaspMap works internally. In this post we will use implementation of HashMap before Java 8 as example, Java 8 prov...

   JAVA,HASHMAP,INFINITE LOOP     2020-03-29 01:47:00

  Understand Virtual DOM

With the popularity of React, the internals and implementation of Virtual DOM has becoming top discussed topic in tech communities and interviews. This post will give an introduction of Virtual DOM and how to implement a simple Virtual DOM logic. How to understand Virtual DOM In early days, front end developers would update a webpage view based on the data status change(usually after making AJAX call). But it brings performance penalties when there is frequent update as it would cause page reflo...

   JAVASCRIPT,DOM,VIRTUAL DOM     2019-12-07 23:43:04

  Linux Command Line tips that every Linux user should know t

Below is the collection of Linux command line tips which I’ve found useful for Linux users. To get more information about the command mentioned below just open your terminal and type man <command>.Things a Linux user must learnLearn bash: No need to refer a lengthy bash guide or something else. Just read the complete man page of bash (man bash).Learn vim: You might be using Emacs or Eclipse for your work all the time but nothing can compete vim.Learn ssh: Learn the basics of passw...

   Linux,Unix,Command line,Tips     2012-03-21 09:27:03

  Consistency between Redis Cache and SQL Database

Nowadays, Redis has become one of the most popular cache solution in the Internet industry. Although relational database systems (SQL) bring many awesome properties such as ACID, the performance of the database would degrade under high load in order to maintain these properties. In order to fix this problem, many companies & websites have decided to add a cache layer between the application layer (i.e., the backend code which handles the business logic) and the storage layer (i.e., the SQL d...

   REDIS,CACHE,DATABASE     2019-07-07 08:14:16

  What can CSS :has pseudo class be used for?

CSS's :has is a pseudo-class representing an element if any of the selectors passed as parameters matching at least one element. From the name, it's also easy to understand how it matches elements. The syntax is pretty easy as well: :has([some-selector]) With this pseudo class, it can do lots of things which previously would be challenging or need tweaking the DOM elements with JavaScript. This post will demonstrate what :has can be used for. Introduction Below are a few simple ex...

   CSS,:HAS,:NOT,PSEUDO CLASS     2022-09-18 01:40:54

   Opinion: The Elusive 'Quick Iteration' - Tips for Indie Devs

[In this reprinted #altdevblogaday-opinion piece, WB Games/Kindling Games' Kristen Bornemann offers independent developers advice on iterating and shipping their projects as fast as possible.] From agile and scrum to extreme programming, everyone's trying to nail down what it takes to iterate on products quickly and efficiently. There are a lot of methodologies that you can employ to guide you through shipping products. But today, I'll be talking specifically about video games and how, as a...

   Game,Electronic,Efficient,Development me     2011-08-15 07:41:47

  String.length() vs String.getBytes().length in Java

In Java, String.length() is to return the number of characters in the string, while String.getBytes().length is to return the number of bytes to represent the string with the specified encoding. By default, the encoding will be the value of system property file.encoding, the encoding name can be set manually as well by calling System.setProperty("file.encoding", "XXX"). For example, UTF-8, Cp1252. In many cases, String.length() will return the same value as String.getBytes().length, but in some ...

   Java,UTF8,String,Encoding,Sample     2015-04-01 22:22:23

  Using JavaScript to operate clipboard

Browsers allow JavaScript to read and write data on clipboard. Generally script should not modify user's clipboard to avoid impacting user expectation, but there are cases where this can indeed bring convenience to users. For example, for some code snippet, user can copy it to clipboard with one click instead of select and copy manually. There are three options for clipboard operation provided in JavaScript/browser: document.execCommand() Asynchronous Clipboard API copy and paste events This p...

   JAVASCRIPT,CLIPBOARD,NAVIGATOR.CLIPBOARD     2021-01-23 23:23:34

  Go Error Best Practice

Being indulged in Go for quite a while and having implemented web-related programs, grpc interfaces and Operators, I seem to be an advanced beginner now. However, I am still a raw hand in production-environmental debugging, which is cumbersome if done by querying logs or error messages. Imagine the scenario that a full-text search is called when the specific location of the error log is missing. Then what happens when those error logs are not only in one place? Yes, my error logs can no longer h...

   GO ERROR,ERROR HANDLING     2021-10-07 07:38:28

  Fear of Ignorance

This past week, I was interviewing a candidate for a VP role along with two of our engineering leads. Everyone in the room excluding myself was classically “technical” – they could write code, had experience solving hard software problems and a background in computer science. I wrote my last line of PHP in 2004, and it had to be rewritten by a real programmer within 6 months.During the interview, we had the following exchange (due to an imperfect memory, I’ll ...

   Leader,Team,Technical,Leadership,Ignorence     2011-11-21 10:03:03