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

SEARCH KEYWORD -- Character



  About short URL and its implementation

IntroductionURL shortening is a kind of technique to convert a long URL to a short URL. There are many companies now providing this kind of service, we now take Google's URL shortener service http://goo.gl/ as an example.First we navigate to http://goo.gl/, then we enter a random URL into the text field, here we use http://www.url-to-be-shortened.com as the input, it will return us an shortened URL : http://goo.gl/ZSVMM. URL ParsingWhen we type http://goo.gl/ZSVMM in browser address bar, the DNS...

       2012-07-02 07:15:09

  Understand diff in Unix

diff is an important tool program in Unix. It is used to compare differences of two files, it is the foundation for code version control. If you type : $ diff <file_before_change> <file_after_change> diff will tell you what's the difference between these two files. The result may not be so easy to understand, so now I will show you how to understand diff. 1. 3 formats of diff diff has 3 formats due to historic reasons. normal diff context diff unified diff 2. Demo files For easy d...

   diff,Unix,version control,git     2012-09-03 10:49:36

  Speed Hashing

A given hash uniquely represents a file, or any arbitrary collection of data. At least in theory. This is a 128-bit MD5 hash you're looking at above, so it can represent at most 2128 unique items, or 340 trillion trillion trillion. In reality the usable space is substantially less; you can start seeing significant collisions once you've filled half the space, but half of an impossibly large number is still impossibly large. Back in 2005, I wondered about the difference between a checksum and...

   Speed hashing,Security,MD5     2012-04-07 10:35:15

  Cool HTML5 matrix effect

Do you still remember the movie The Matrix? Do you still remember the cool matrix effect in that movie? How is that effect achieved? Shaun Dunne shared a piece of HTML5 code which displays a cool matrix effect. The matrix demo can be found here. Below is the code which he achieves this effect: with var s = window.screen; var width = q.width = s.width; var height = q.height = s.height; var letters = Array(256).join(1).split(''); var draw = function () { q.getContext('2d').fillStyle='rgba(0,0,...

   Matrix,HTML5     2013-08-14 08:03:34

  What are some lesser known but useful Unix commands?

A few that come to mind, some less known, some more: xargs or parallel: run things in parallel, with lots of options sed and awk: more well-known but still super useful for processing text files, and faster than Python or Ruby m4: simple macro processor screen: powerful terminal multiplexing and session persistence yes: print a string a lot cal: nice calendar env: run a command (useful in scripts) look: find English words (or lines in a file) beginning with a string cut and paste and join: data...

   Linux,Unix,Command,Less used     2011-12-27 09:27:49

  Permutation implementation in Java

Permutation is a very basic and important mathematic concept we learned in school. It has very practical applications in real world. For example, in football. In simple, permutation describes all possible ways of doing something. For example, there are six permutations of the set {1,2,3}, namely: (1,2,3), (1,3,2), (2,1,3), (2,3,1), (3,1,2), and (3,2,1). In general, for n items, there are n! number of permutations to arrange these items. How can we implement this algorithm in programming programm...

   Permutation,Implementation,Java,Sample     2015-03-26 02:18:14

  Learning Go

This year I'm going to try a new programming language - Go. I had this notion that compiled, type based languages are overly complex and reduces developer efficiency. However, after doing some reading about Go, it appeared to take a different path from the rest and felt like something worth trying. Acquainting a programming language is a journey. First few steps you take with it will define your perception about it. These first few steps went well for me with Go and it felt lik...

   Go,Google,Learning,Resource     2012-01-05 08:09:55

  Not better, but different

The most important feature of Apple products is usability--Simple, aesthetic, easy to use.Their products may not necessarily the most powerful, but they usually are the easiest to use. Following picture show a Mac (left) and a PC(right), which one looks better?Many products are trying to mimic these features, but one problem comes out:It's hard to keep a product simple while providing so many new features.If you continuously add new features to your product,  your product will become more c...

   Market positioning,Product manager     2012-05-19 13:29:20

  Never create Ruby strings longer than 23 characters

Looking at things through a microscopesometimes leads to surprising discoveries Obviously this is an utterly preposterous statement: it’s hard to think of a more ridiculous and esoteric coding requirement. I can just imagine all sorts of amusing conversations with designers and business sponsors: “No… the size of this <input> field should be 23… 24 is just too long!” Or: “We need to explain to users that their subject lines should be les...

   Ruby,Specification,String,Interpreter,Optimization,23     2012-01-05 07:58:07

  Some hidden XSS injection vulnerabilities

XSS injection refers to a Web page generates some unexpected executable js codes based on user input  and these executable codes are executed by web browser,i.e, the source code sent to web browser by the server contains some illegal js codes, and these illegal js codes are related to user's input. Common XSS injection vulnerabilities can be fixed with some functions such as htmlspecialchars(escaping HTML special characters) and strip_tags() or similar, but there are some hidden XSS injecti...

   XSS,PHP,Security,Code,JavaScript     2012-08-27 20:32:08