Hacker News new | past | comments | ask | show | jobs | submit | greenpeas's comments login

https://wiki.tcl-lang.org/page/How+do+you+say+%27Tcl%27

> It was a good decision to invent tcltest rather than, say, "testtcl". Or, better yet, do not say the latter, at least in English.


  #!/usr/bin/env tclsh
  
  puts $argv
I kinda wanted to stop reading after this example. It feels dishonest to start with an example for which there is a builtin. Why didn't you show instead how to output arguments joined by a comma or some other separator instead of space. If I were to update the Go or Python examples to use another separator, it'd be just a 1-2 character change, whereas for Tcl I have no idea how that would look.


> Why didn't you show instead how to output arguments joined by a comma or some other separator instead of space.

The Tcl variant to output "comma" as separator (note -- this is not "CSV").

     puts [join $argv ,]
If you wanted "comma space" you'd do:

     puts [join $argv ", "]
If you actually wanted "CSV" then it would be (assuming tcllib is installed):

     package require csv
     puts [csv::join $argv]


Funnily neither version gives the correct result when you have arguments with spaces, e.g. for "-v 5" -d , the tcl one will print {-v 5} -d as a consequence of how tcl represents lists.


The author should have done:

     puts [join $argv]
to avoid that little issue. Doing "puts $argv" triggers Tcl's output of "lists" in a special format that allows the list to be parsed from the text again at a later time.


The author is following examples given in a book, however.


Oh, I missed that. I guess it's alright then. I thought they chose this particular example to "showcase" Tcl by comparison.


Initial Coin Offering


> I don’t consider email to be a legal form of communication.

The flipside of requiring a provider to submit paperwork to terminate your service, is the situation where in order to setup a new server with DO you'd have to file paperwork yourself. Can you imagine sending a paper letter every time you need to spin up a VM?

Which one do you prefer? paperwork in both directions or no paperwork?


Yep, that’s how things are done with my colo. Real papers. Real signatures. I don’t need to send any letters to spin up a vm though. I just click a button. For new servers, I walk in and plug it in.


For physical hosts that makes perfect sense. It would just be annoying with VM-exclusive providers like DO.


How do you deal with customers that don't reply to email notifications and don't have a phone number on file?

I can appreciate how terrible must have been to suddenly find all your servers shut down, and I understand how easy it is to set up billing and forget, especially with the day to day stress of running a startup, but what would you have done if you were DO?

> our site was offline because of DO.

Or maybe it's because of the bank that expired your credit card?


> the first 90% takes 10% of the time, the last 10% takes 90%.

Is the second part of that statement necessary?


Yes. Of the last 10%, 5% could require 29% of the time, and 5% could require 61%.


google translate gives a different translation: data shredder or data destructor

https://translate.google.com/?sl=el&tl=en&text=%CE%BA%CE%B1%...


Dedomenon meant given in the Biblical past, and data now. ("Take is as given", in a logical/mathematical sense).

For a database integrity scientist, "data destroyer" makes sense.


Ha! Well, that's what I get for having studied Classical Greek in school but not Modern Greek.


This is really cool! Could you please add a keyboard shortcut for focusing the input field? (perhaps a forward slash '/' like on Youtube or Github)


Sure thing, I'll add that tonight.


Sometimes I know that a precise word for what I want to say exists, and I'll know it when I see it, but I can't quite remember it in the moment. In those cases I search thesaurus for synonyms to related words; or maybe ask ChatGPT these days.


FIY, you can write `data4.all?(Integer)` because `all?` can take a pattern instead of a block, and it uses the === (just like case...when)

I just learned this myself from another comment in this thread.

UPD: why do you write `obj.<=(16)` instead of `obj <= 16`? is this a performance thing or a matter of style or something else?


Just a style thing. I find it less visually overwhelming when every statement that contributes a true/false is visually contiguous. You can see it in context here if curious: https://github.com/okeeblow/DistorteD/blob/NEW%E2%80%85SENSA...


Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: