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

SEARCH KEYWORD -- Random



  In praise of impractical programming

Although it’s become a cultural mainstay now, I still remember when I first saw that thick book — the one with the wizard on the cover — about a school for magic where wonders are easily conjured by those who know the proper spells. Of course, I’m talking about the Structure and Interpretation of Computer Programs. There was that other book with the spells, but the “Wizard Book” sincerely claimed to teach magic. For the past few years, I’ve been ...

   Impractical Programming,Structure,Scheme,Practical     2011-12-05 12:28:58

  HeartBleed: Inside the heart, what happens to a normal WEB user?

To be brief, our email, IM, facebook etc. are at the risk, so try to minimize the access in these few days. Especially we should try to avoid log into our internet-banking, because we may expose our user id and password. Also later when the service providers fix the bug, we would better to change a new password for all the web accounts that are important to us. Here comes the technical explanation. You might notice before that a lot of websites use URL starting with "https". For example, https:/...

   HeartBleed,Analysis     2014-04-09 22:41:43

  Something you should know about programming even if you are not a programmer

Out daily life are deeply affected by software and web. More and more people are realizing the importance of software, For example, you want to travel to Brazil for the world cup, right? You should first book the ticket online, when you book the ticket, you should pay for the ticket with your credit card, after successfully booking your ticket, you will get a e-ticket in your mailbox. When you arrive at the airport, your identity information will checked against the immigration database system, ...

   Programming,Programmer     2014-06-11 10:06:40

  SkipList in Go

Algorithmic thinking is the must-have in the coding world, so I have been keeping the routine of algorithm practice every week, consolidating my knowledge of data structures on one hand, and improving my coding skills as well. A difficult one happened to be stuck in my mind- Implement SkipList with Go, which took me quite a weekend. Below is the front-line report of how I finally got the hang of it. First, from its concept. Wiki has explained it well. a skip list is a probab...

   GOLANG,SKIPLIST     2022-04-05 02:21:59

  Some tricks and tips for using for range in GoLang

GoLang provides two major ways to loop through elements of array, slice and map. They are for and for range. Many people find that for range is very convenient when don't care about the index of the element. In this post, some tricks and tips would be talked about regarding for range. 1. Loop and get pointer of each element Assume there is a code snippet like below which is to get the pointer of each element in an array and create a new array with the corresponding pointer. arr := [2]int{1, 2} r...

   POINTER,FOR LOOP,GOLANG,FOR RANGE     2020-03-08 01:07:00

  Some frequently used ES6 code snippets

Below are a list of ES6 code snippets which are used frequently. Hope that it will be helpful. 1. Shuffle array elements let arr = [67, true, false, '55'] arr = arr.sort(() => 0.5 - Math.random()) console.log(arr) // [ '55', 67, false, true ] 2. Remove characters which are not numbers const str = 'xieyezi 23213 is 95994 so hansome 223333' const numbers = str.replace(/\D/g, '') console.log(numbers) // 2321395994223333 3. Reverse sequence or words const sentence = 'xieyezi js so handsome, lol.'...

   JAVASCRIPT,ES6,CODE SNIPPET,TIPS     2022-04-10 07:56:07

  Dos and Don’ts in Test automation in your project

Test automation is a vital step for any digital solution. With time, its architecture gets more complex, new features are added, and it acquires more users. Thus, your QA team needs to spend more time and effort to ensure the application usability and smooth user experience with no bugs and defects. So here are the things you need to consider before the start of the automation initiative: Define Success Metrics It’s hard to measure success until you haven’t set up clear goals from t...

   TESTING,TEST AUTOMATION     2021-01-12 05:57:45

  People, processes and tools

Some years ago, one of my managers used to repeat this "Accenture truism" (or so he designated it): to fix or improve something, first you need the right people, then you need the right processes to help those people work together, then finally you need the right tools to support those processes. People, processes, and tools - in that order.This is even more true for tech startups than for corporations. As geeks, whenever we face a problem, we often start by looking for a tool to fix it. "Our te...

   Work,People,Process,Tool,Importance,Priority     2011-10-24 11:36:14

  Find the kth smallest number in an array

This is an classical question, the general solution to this question is first using sorting algorithm to sort the array, then get the kth number in the array, the complexity is O(nlogn), we can also use selective sort or head sort to, the complexity of selective sort is O(kn) and heap sort is O(nlogk). The better solution is to use quick sort to find the kth smallest number, the complexity is O(n), the worst case cost is O(n^2). But today we introduce one more solution which has the worst case c...

   Sort, Quick sort, Search,Smallest     2013-01-09 06:20:54

  Optimization Tricks used by the Lockless Memory Allocator

With the releasing of the Lockless Memory Allocator under the GPL version 3.0 license, we can now discuss more of the optimization tricks used inside it. Many of these are things you wouldn't want to use in normal code. However, when speed is the ultimate goal, sometimes we need to break a few rules and use code that is a little sneaky.The SlabA slab is a well-known technique for allocating fixed size objects. For a given object size, a chunk of memory is divided up into smaller regions of that ...

   Optimization,Memory allocation     2011-11-16 08:02:16