SEARCH KEYWORD -- Memory model



  Go channel explained

In Go, a channel is a type of concurrent data structure that allows two or more goroutines (Go's term for lightweight threads) to communicate with each other. Channels provide a way for goroutines to send and receive values, and they are an essential part of Go's concurrency model. Here's a simple example that demonstrates how to use channels in Go: package main import ( "fmt" ) func main() { // Create a new channel with the `make` function ch := make(chan int) // Start a new ...

   GOLANG,CHANNEL     2022-12-10 22:24:26

  Embrace open source

In past few days, there are many tech news which are related to open source. For example, Microsoft enables Linux on its Windows Azure cloud, Facebook open sourced its C++ library Folly and Samsung joined Linux foundation. Now more and more big companies realize the power of open source and are willing to contribute to the open source community. It will benefit not only developers but also these big companies as well.By providing some open source libraries or projects, developer may reduce their...

   Open source,Microsoft,Samsung,Facebook,Linux     2012-06-06 05:37:59

  What Separates Good Designers from Great Ones

Most of the design books you read, including my own, are about how to be a good, competent designer. They are about how to make strong, reasoned design decisions and about design methods and tools. But what they won’t—can’t—teach you is how to become a great designer. The only way to be a great designer is to produce great products. Everything else is…well, everything else. I’m convinced that the people who are great designers, while assure...

   Designer,Feature,Great designer,Good designer,Comparison     2011-12-06 02:25:17

  Taking C Seriously

Dennis Ritchie, a co-creator of Unix and C, passed away a few weeks ago, and was honored with many online tributes this weekend for a Dennis Ritchie Day advocated by Tim O’Reilly.It should hardly be necessary to state the importance of Ritchie’s work. C is the #2 language in use today according to the TIOBE rankings (which, while criticized in some quarters, are at least the best system we currently have for gauging such things). In fact, TIOBE’s pre...

   C,Efficiency,Memorization,Dennis Ritchie     2011-11-03 13:42:14

  When to use STDERR instead of STDOUT

Every process is initialized with three open file descriptors, stdin, stdout, and stderr. stdin is an abstraction for accepting input (from the keyboard or from pipes) and stdout is an abstraction for giving output (to a file, to a pipe, to a console). That's a very simplified explanation but true nonetheless. Those three file descriptors are collectively called 'The Standard Streams'. Where does stderr come from? It's fairly straightforward to understand why stdin and stdout exist, however ...

   UNIX,STDERR,STDOUT,Difference     2012-01-14 12:07:43

  How To Make The Most of Your Least Productive Time

Everybody talks about mastering the art of staying productive. Not many people willingly accept that such efforts are futile. It’s impossible to stay productive 100% of the time, and this will never change. Something that I believe to be just as important, if not more so, is what we make of our least productive time. We all have the capacity to be extremely productive for some part of the day. Even the world’s grandest underachievers. But I believe that to be successful runni...

   Productive time,Limit time,Effort     2012-02-06 07:49:47

  Why do C++ folks make things so complicated?

This morning Miroslav Bajtoš asked “Why do C++ folks make things so complicated?” in response to my article on regular expressions in C++. Other people asked similar questions yesterday. My response has two parts: Why I believe C++ libraries are often complicated.Why I don’t think it has to be that way. Why would someone be using C++ in the first place? Most likely because they need performance or fine-grained control that they cannot get somewhere else. A Ruby programmer...

   C++,Complicated,C++ PRogrammer,Design pattern     2011-12-31 15:45:39

  Transparency in Cloud Services

37signals recently launched public “Uptime Reports” for their applications (announcement). The reaction on Hacker News was rather tepid, but I think it’s a positive development, and I applaud 37signals for stepping forward. Reliability of cloud applications is a real concern, and there’s not nearly enough hard data out there. Not all products are equally reliable; even within 37signals, the new reports show a 3:1 variation in downtime across apps. That said, ...

   Cloud,Transapency,37signals,Announcement     2012-01-10 07:24:02

  Signs that you're a bad programmer

1. Inability to reason about codeReasoning about code means being able to follow the execution path ("running the program in your head") while knowing what the goal of the code is.SymptomsThe presence of "voodoo code", or code that has no effect on the goal of the program but is diligently maintained anyway (such as initializing variables that are never used, calling functions that are irrelevant to the goal, producing output that is not used, etc.)Executing idempotent functions multiple times (...

   Sign,Programmer,Characteristics,Knowledge,Skill     2011-10-20 08:56:16

  20 Database Design Best Practices

Use well defined and consistent names for tables and columns (e.g. School, StudentCourse, CourseID ...).Use singular for table names (i.e. use StudentCourse instead of StudentCourses). Table represents a collection of entities, there is no need for plural names.Don’t use spaces for table names. Otherwise you will have to use ‘{‘, ‘[‘, ‘“’ etc. characters to define tables (i.e. for accesing table Student Course you'll write “Student Cour...

   Database design,20 tips,Well defined name,Design pattern     2012-02-07 12:10:48