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

SEARCH KEYWORD -- Loop



  Why I switched from Ruby back to C++

After two months of Sol Trader development in Ruby, I took a difficult decision last Wednesday morning: I’ve decided to rewrite the game code from scratch in C++. Let me explain my reasons. If you'd like to receive announcements about Sol Trader or be part of the beta program, sign up at soltrader.net. Why I did it Slow frames: When working with Ruby, I use the excellent Gosu library to do all my game specific coding. This initially worked great, but occasionally I’d just...

   C++,Ruby,Advantage,Feature     2012-01-09 08:56:21

  Resolve SystemStackError issue when resolving IP address in Ruby

In Ruby, Resolv is the default DNS resolution implementation. It can be used to resolve IP address of a hostname. To use it, one just needs to require 'resolv' in the code. But sometimes, a user would want to check /etc/hosts first or some other mechanisms to resolve an IP address. In this case, one can require 'resolv-replace' and then replace the default DNS resolvers with customized DNS resolvers. For example, using resolv-replace, one would write require 'resolv-replace' Resolv::DefaultResol...

   RUBY,RUBY ON RAILS,NETWORK     2017-07-08 09:54:35

  Method chaining and lazy evaluation in Ruby

Method chaining has been all the rage lately and every database wrapper or aything else that’s uses queries seems to be doing it. But, how does it work? To figure that out, we’ll write a library that can chain method calls to build up a MongoDB query in this article. Let’s get started! Oh, and don’t worry if you haven’t used MongoDB before, I’m just using it as an example to query on. If you’re using this guide to build a querying library...

   Ruby,Method chaining,Lazy evaluation,Implementation     2011-11-29 08:51:17

  Top Ten Tips for Correct C++ Coding

Brian Overland, long-time Microsoft veteran and author of C++ Without Fear: A Beginner's Guide That Makes You Feel Smart, 2nd Edition, shares 10 of his most hard-earned, time-saving insights from decades of writing and debugging C++ code.My first introduction to the C family of languages was decades ago (yes, I know this dates me horribly). Later I learned C++. I wish someone back then had steered me around the most obvious potholes; it might have saved me hundreds of frustrating hours.I ca...

   C++,Tips,Top,Ten,Magic number,Integer di     2011-09-03 10:58:35

  A Python assignment trap

Python has no assignment, it only has reference. Assume, we have following code snippet: >>> values = [0, 1, 2] >>> values[1] = values >>> values [0, [...], 2] Why the result is not [0, [0, 1, 2], 2], instead it goes into an infinite loop? To understand this, we need to understand some basics about Python. Python has no variables, it only has labels. When we run: values = [0, 1, 2] Python will first create a list object [0,1,2], then it labels it as values. If we later...

   Python,Assignment,Trap,Shallow copy     2013-07-19 22:08:36

  Spurring the Consumer Feedback Loop with Connected Devices

In a press release from earlier this year, Gartner had predicted that by the year 2018 mobile devices would account for initiating 5% of consumer services cases, registering a marginal rise of 0.02% from 2014. Research shows that most businesses lose around a whopping $83 billion owing to poor consumer services (Source: kissmetrics) in the US alone while globally, the average cost of losing a consumer is $243. It is only viable to think of automating support services as a way to lower the costs ...

   Big Data Analytics Solutions, Loyalty Programs for Customers     2015-08-18 07:11:35

  The "C is Efficient" Language Fallacy

I came across an article yesterday about programming languages, which hit on one of my major peeves, so I can't resist responding. The article is at greythumb.org, and it's called Programmer's rant: what should and should not be added to C/C++. It's a variation on the extremely common belief that C and C++ are the best languages to use when you need code to run fast. They're not. They're good at things that need to get very close to the hardware - not in the efficiency sense, but in the...

   C,GCC,Fallacy,Evolvement     2012-01-09 08:54:46

  Understand GoLang WaitGroup internals and how it works

Background Before getting into the main content, let me give a brief introduction to WaitGroup and its related background knowledge. Here, the focus is on the basic usage of WaitGroup and the fundamental knowledge of system semaphores. For those who are familiar with these, you can skip this section directly. WaitGroup WaitGroup is one of the most common concurrency control techniques in Golang, and its function can be roughly compared to the join() in concurrency control of other languages' mul...

   GOLANG,WAITGROUP,SOURCE CODE     2023-04-26 08:02:01

  Macro vs. Micro Optimisation

So there's recently been a bit of hype about another Colebourne article: http://blog.joda.org/2011/11/real-life-scala-feedback-from-yammer.html I'd like to respond to a few points he makes. First - You should evaluate Scala and pay attention to its benefits and flaws before adopting it.  Yes, there are flaws to Scala.   Working at typesafe makes you more aware of some of them.  We're actively working to reduce/minimize/get rid of these.   In my opinion, the negat...

   Optimization,Performance,Micro,Macro,Software     2011-11-30 12:04:25

  How Query Optimizer Works in RDBMS

In a previous post, we discussed how the various relational operators are implemented in relational database systems. If you have read that post, you probably still remember that there are a few alternative implementations for every operator. Thus, how should RDBMS determine which algorithm (or implementation) to use? Obviously, to optimize the performance for any query, RDBMS has to select the correct the algorithm based on the query. It would not be desirable to always use the same algori...

   DATABASE,DATABASE DESIGN,DATABASE OPTIMIZATION     2019-04-20 07:26:32