HN user

reacocard

258 karma

I am a Site Reliability Engineer at Google. All opinions expressed here are my own and not those of my employer.

Email: reacocard@gmail.com

Web: http://www.reacocard.com

[ my public key: https://keybase.io/reacocard; my proof: https://keybase.io/reacocard/sigs/58J-fdzvRNkpTYOuimzEjF8YASNMFLsenkcmtC7aKas ]

Posts7
Comments14
View on HN
Plastc Card 12 years ago

Not quite - many ATMs I've seen size the slot so the raised numbers only go in one place so you can't insert the card the wrong way around.

At least back when I was doing mindstorms stuff (pre-NXT), there were a number of projects that would let you compile alternative languages into mindstorms bytecode, therby giving you a rather more capable environment than LEGO's. I used NQC[1], some quick googling suggests it's been succeeded by NXC[2] for the newer NXT mindstorms stuff.

I wouldn't say it's necessarily a good idea to jump right into a language like this though - even LEGO's normal graphical mindstorms environment will still serve to teach basic programming skills, and it's probably more approachable for a novice.

[1] http://bricxcc.sourceforge.net/nqc/ [2] - http://bricxcc.sourceforge.net/nbc/

The theater in my hometown[1] took a different approach. About 3 years after its original closing in 2000 due to money issues, it was reopened as a nonprofit volunteer-run theater. Since then it has been successful enough to have been able to refurnish the seating and other parts of the theater, upgrade to a digital projector, and provide sponsorships and scholarships to the community.

[1] http://www.lakecitycapri.org/

Imagine a case like this:

  def example(input_data):
    l = list(input_data)
    # code that uses list-specific stuff and returns a result
The function 'example' doesn't want to touch the original input data, so it needs to make a copy of it. It also contains code that assumes operation on a list, so the copied value needs to support list-like operators. If you assume input_data is a list, you can use [:] or copy() to copy just fine, but if input_data is NOT a list then you cannot feed example a generator or some other list-like object or iterable and know for sure that it is going to work. By explicitly converting to list, you can take anything that implements __iter__, and then safely assume that the rest of your code will be working with lists. This adds a pretty bit of extra flexibility to the function and can make it much easier and/or cleaner to use.

Obviously as with anything the choice of list copy method is situation-dependent. Using [:] makes sense if you can guarantee the input is a list and you need maximal speed. Using copy() makes sense if you just want a copy of the input object and don't specifically care that the copy is itself a list. Using list() makes sense if you want to be able to take in all kinds of input values and be assured that the copy is a list. Use what is best for the situation at hand.

From http://republicwireless.com/how:

  I have DSL at home.  Will it work on that or will I have to upgrade to
  something faster?

  You need about 80kbps both ways to hold a call. The more bandwidth the better
  for improved call quality. Don’t forget that streaming video or downloading
  large files all use bandwidth, so your mileage may vary if you are trying to
  make or receive calls and watch Netflix at the same time.
Sounds like it's more likely that your gaming or Netflix would adversely affect the phone than the other way around, though a router with QoS should fix that easily enough.

Because copy won't necessarily work the same way on things that are not lists, which removes some of the flexibility afforded by python's duck typing. Unless you have good reason to require a list specifically, why should you?