SEARCH KEYWORD -- NULL safe



  Add ContextMenu to a customized View in Android

In Android, we may sometimes need to add ContextMenu to a View, it's not so easy to add ContextMenu to a customized View. Here we explain how to add ContextMenu to a customized View. First, we may need to create View.OnCreateContextMenuListener so that the customized view can register for it. Here is the class definition: public class GraphView extends View {     private View.OnCreateContextMenuListener vC = new View.OnCreateContextMenuListener() {       &...

   Android, ContextMenu,Customized view     2012-11-04 07:10:40

  An experience of fixing a memory-corruption bug

During the last 4 months, I was disturbed by a memory-corruption bug, and this bug will cause program crash. Until last Monday, I found the root cause and fixed it. This debug process is a difficult but memorable experience, so I will share it in this article.   My program works as a SMS Hub. When it receives a SMS, it will allocate a structure in heap memory like this: typedef struct { ...... int *a[8]; ...... } info; After processing the SMS, the program will free the m...

   c, debug, unix, solaris, multi-thread     2014-05-04 03:52:43

  How Can Your Data Be Stolen Online?

In 2019, according to Statista, nearly 165 million sensitive records were exposed in the US due to data breaches. Unfortunately, data theft is not going anywhere. Hackers are using increasingly sophisticated methods to steal information, but thankfully there are measures you can take to ensure your data stays safe. Here are some of the most common ways people get their data stolen online and how you can take precautions against the methods cybercriminals use. Human Error Hacking is one of the m...

   DATA SECURITY,PROTECTION KID     2021-01-27 19:46:05

  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

  Use of log in programming

Usually, The purposes of log are for troubleshooting and displaying program running status. Good log will help us locate the error easier. Many programmers think log in programs is very simple, but it's not an easy task to write log codes to efficiently locate the error. Here we discuss about program log in three aspects: Where to log What to log Log styles to be avoided Where to log 1. When calling external functions When your program is calling some external functions which are not written b...

   Log, Programming,Debug     2012-11-28 11:42:23

  PHP to get access token for Sina Weibo app

Previously I wrote two articles about getting access token for Facebook and Twitter apps using PHP. Today I will write one more article about getting access token for Sina Weibo app using PHP. OAuth 2.0 is now the authorization mechanism of Sina Weibo API. The API authorization process is similar to the process of Twitter. It has basically two steps: 1. Authorization; 2. Get access token. 1. Create an app. I hope you know how to create an app in Sina Weibo now. If not. You can access this page ...

   PHP,access token,Sina Weibo     2013-05-16 12:07:39

  The danger of target=_blank and opener

When want to open a new page in a new tab on clicking a link on a page, the usual way of achieving this is to use target="_blank" property in a tag. However, the use of this leaves space for phishing website. Background parent and opener Before talking about the opener object, let's know a bit about parent object when using iframe. HTML provides a parent object which is used to communicate between the parent page and the embedded iframe element. This parent object can be accessed using...

   HTML,TARGET BLANK,REL NOOPENER,REL NOREFERRER     2018-09-15 04:53:56

  Do NOT use boolean variable as function parameters

We follow lots of coding styles and coding standards when we do programming, but we may frequently forget one. The forgotten one is that do not use boolean parameter as the function parameters. The reason is it would greatly reduce the readability of the code. Don't believe it? When you read the following code, what does this code mean? widget->repaint(false); Do not repaint? Or what does this mean? After looking at the document, we know that this parameter is whether ...

   CODING STYLE,BOOLEAN,FUNCTION PARAMETER,CODING STANDARD,METHOD PARAMETER     2012-04-22 02:38:45

  Java code to retrieve Bing background image path

When Microsoft presented their search engine Bing, this new design gave us some surprise, especially its background images, they are very beautiful and it will change every day. But   unfortunately we cannot save the image onto our PC by right clicking the mouse.  After some research on its source code, I found a feasible but not so sophisticated way to achieve this, we can retrieve the image path from the source code and then use this path we can download the image. This is just to sh...

   Java,Bing,Background image path,URL,Download,Save     2012-05-02 10:51:51

  MySQL Index Merge Optimization Practices

In production environment databases, it is often seen that some SQL where conditions include: equal condition on a normal index + primary key range query + order by limit Although using a normal index would be more efficient, the system chooses to use index merge instead in some cases. This article explores such index merge situations. Index Merge Official Introduction   The Index Merge access method retrieves rows with multiple range scans and merges their results into one. Generall...

   INDEX MERGE,MYSQL,PRIMARY INDEX,SECONDARY INDEX     2024-09-10 04:52:26