10,000 Matching Annotations
  1. Apr 2021
    1. Why your original solution does not work: exec 2>&1 will redirect the standard error output to the standard output of your shell, which, if you run your script from the console, will be your console. the pipe redirection on commands will only redirect the standart output of the command.
    1. Once more we see greedy mobile devs trying to scam PC gamers. On Steam, this is an insane $15 USD, on app stores, it's free. Mobile devs must learn PC gamers are not here to be gouged, and can't be expected to pay a premium for a free mobile app just because it's been lazily dumped on Steam. This is unacceptable disrespect for PC gamers.
    1. Eine wunderschön in Szene gesetzte Geschichte mit abwechslungsreichen Puzzle-Elementen in einer liebevoll gestalteten und mit grandioser musikalischer Untermalung verfeinerten Spielwelt. Leider nur in Englischer Sprache (deutsche Untertitel), diese aber in sehr guter Qualität. Ein Bisschen kurz vielleicht, aber in seiner Umsetzung so rund und geschliffen, dass die Spieldauer meines Erachtens nur ein geringes Manko darstellt. Wer Spiele im Graphic-Novel-Stil mit individueller Graphik und herzerwärmenden Geschichten mag, darf Figment nicht verpassen.Definitive Empfehlung! (ggf. im Sale)
    1. Don’t replace words with emojis One thing you definitely don’t want to do is have your emojis get in the way of people being able to comprehend your subject lines. Emojis should be a complement to the words in your subject lines – they should never replace words themselves. It’s when people leave out words, right?
    1. It should be defined inline. If you are using the img tag, that image should have semantic value to the content, which is why the alt attribute is required for validation. If the image is to be part of the layout or template, you should use a tag other than the img tag and assign the image as a CSS background to the element. In this case, the image has no semantic meaning and therefore doesn't require the alt attribute. I'm fairly certain that most screen readers would not even know that a CSS image exists.

      I believed this when I first read it, but changed my mind when I read this good rebuttal: https://hyp.is/f1ndKJ5eEeu_IBtubiLybA/stackoverflow.com/questions/640190/image-width-height-as-an-attribute-or-in-css

    2. They cause completely different behavior for auto margins. If you have a fixed element for example with top/bottom/left/right set to zero and you stick an image in it you want to center wrapped in a div, then in order to center that div with auto margins, you MUST specify a CSS width/height, because specifying an HTML attribute width/height has no effect and the margins remain zero. I have no idea why the difference exists.
    3. Whether to specify in html or css is best judged on individual circumstances. A large number of images of the same size would probably be best served with css, a single image with html. That said, if you are specifying other styles for the image (border colour, style or radius, float etc) it would make sense to add width & height to the css.
    4. From a practical point of view it's highly desirable to specify them to prevent page reflows as mentioned above. However those suggesting it should be in the html because of this are missing the fact browsers use css when building the page initially. If they didn't the page would have to be redrawn for floated elements, specified padding, margins etc.
    5. I think that depends on HOW you are using the attribute. If you're styling multiple images within a list or table so that they lay out correctly, then put the width/height in your CSS to avoid the need to add another set of tags to every image in the list. Use something like ul.gallery img: { width:117px; } On the other hand, if you are inserting an image into some content and it needs to be a certain size to make the document flow properly, then put it in the HTML. That way you don't have to muck up the style sheet for each different image in the html. And this way, if you change the content to a different image, of remove the image all together, you don't have remnants of code scattered in your CSS to remember to delete.
    6. Neither question nor answer appears to understand the notion of semantic HTML. Height and width are presentational attributes regardless of where you put them. For semantics we establish what the image means to content in the alt tag. I don't remember why it was so important to width/height in the HTML but I suspect it was in case you hit browsers without CSS rendering. It's not a semantics issue. If anything it thwarts separation of concerns to a degree.

      claim: that the OP's question and this answer are incorrect

      Could we say that this answer (that this comment replies to) missed the point?

      I actually believed and thought this answer was spot on ... until I read this comment, and then I reversed my opinion.

    1. Graceful Explosion Machine is the gaming equivalent of empty calories. It's pretty to look at, super smooth, and has some interesting weapons, but there's no real hook to keep you sustained beyond the act of moving around and blowing up aliens.
    1. Though few in number, these tiles create a dizzying array of possible situations, from the reemergence of Mughal authority, the rise of new kingdoms, or the aggressive rejection of the Company's efforts.
    2. We know the audience for such games is limited. In order for us to produce games up to our standards, we rely on a direct sales model. Our games are not designed for traditional distribution or retail channels. The vast majority of all copies produced will be sent to Kickstarter backers or to people who purchase games through our store.  This means we can spend many more resources on the game's physical production without having to worry about retail viability.
    3. We are are continuing our commitment to creating our games that are free and widely accessible anyone that is curious by making our game files available under Creative Commons license BY–NC–SA 4.0. That means we will continue offering a full, free print-and-play kit for Pax Pamir, and later this campaign, John Company! Anyone can use, remix, and share the game, so long as they do not use it for commercial purposes. 
    4. Just about everything players own can be exchanged at any time. The old promise system has been redesigned to provide players with the ability to give away future favors for crucial leverage in the heat of a negotiation. Players have never had so many ways to make a deal. 
    5. John Company offers players a new understanding of British history in the eighteenth and nineteenth century that reflects contemporary scholarship on the subject and extensive research into primary documents. John Company attempts to put the critical events of that time in their proper context and show how the imperial experience transformed the domestic culture of Britain. The East India Company lurked behind every building of a textile mill and every bit of wealth in a Jane Austen novel.  John Company is an uncompromising portrait of the people who made the Company and the British Empire what it was. It is as frank as it is cutting in its satire.  Accordingly, the game wrestles with many of the key themes of imperialism and globalization in the eighteenth and nineteenth centuries and how those developments were felt domestically. As such, this game might not be suitable for all players. Please make sure everyone in your group consents to this exploration before playing. 
    1. I really like the ideas in this game: the theme, what it's trying to accomplish (explore the problems with imperialism, if I understood correctly), the game board, the game in general. I want to like it.

      but, I don't think I would like this one enough due to the luck and relying on other players' whims (trading) mechanisms:

      • Dice Rolling
      • Push Your Luck

      You can risk a lot getting an expensive estate, but if you push your luck too much, your risk/gamble won't pay off and you'll permanently lose that [pawn] and those victory points.

    1. Unfortunately, there is some urgency to this effort. As Shashi Tharoor writes in his book Inglorious Empire (2018), over the past 30 years, there has been a tremendous bout of collective amnesia, espeically in the UK, about the history of empire and its consequences. Into this vacuum, revisionist historians of the worst kind like Niall Ferguson have capitalized on historical blind spots of people living today to make an absurd case for the benefits of empire. This cannot be allowed to happen. Tharoor believes that one of the best bulwarks against this erasure is to do the work of inquiry and to make the history of empire accessible and apparent to the widest audience. It is into this effort that I submit my work. John Company is an unsparing portrait that hopefully will give its players a sense of the nature of empire and the long half-life of its cultural production. It is certainly not the only way to make a game about empire, but I hope that it does its part in adding to our understanding of that subject and its continued legacy.
    1. The term COVID-19 denialism or new coronavirus denialism[31] (or viral denialism)[32] refers to the thinking of those who deny[33][34][35] the reality of the COVID-19 pandemic [36][37][38][39][40] or, at the very least, deny that deaths are happening in the manner or proportions scientifically recognized by the World Health Organization
    1. Sustainable DistributionGavin uses an electric scooter to transport the games to the drop off points. He would use his electric bike but he is nervous of someone nicking it when He is in the post office. Gavin has a plant based diet. The diet reduces his carbon footprint and his emissions, which his wife is very happy about.
    2. Environmentally friendly factoriesGavin uses the Cubiko Games workshop ‘factory’. Yes, it is a bit cold in the winter but, hey, I built it myself. Transporting goods from the ‘factory’ is very economical, it is about 20 metres from the factory to Gavins house via the garden. The worker in the ‘factory’ (Gavin) is committed to looking after the environment and tries his best to use every piece of wood to the best of his ability. The working conditions are great. (Flexi-time, unlimited food and drink breaks). No child labour. (Samuel sometimes ventures into the factory but we don’t put him to work).
    3. Very slow, very cheap shipping via Royal Mail. Royal Mail advertises an ‘online’ international 12 week ’no rush’ service (not trackable). The price of the service is dependant on weight. It may be possible for international shipping to be achieved for around £15 GBP, may be even less! (This is not a typing error).  If you are interested in this service you will need to contact us before the campaign ends.

      Why do we need to contact you before the campaign ends if we want cheap shipping? Why wouldn't we want cheap shipping? What will shipping be if we don't choose that? How do we choose that? Why can't we choose shipping directly after the campaign ends?

    4. We, at Cubiko Games, would love for Foundation to reach as many people as possible because it’s such a great game. We hope that the ‘stretch goals’, ’2 x reward‘ tiers and ’voucher codes’ will encourage people to back and share the campaign so that it reaches its full potential.  Then, hopefully, with more backers comes more exposure which, in turn, leads to the ultimate goal..... Foundation gets signed by a leading game manufacturer.
    1. What you want is not to detect if stdin is a pipe, but if stdin/stdout is a terminal.

      The OP wasn't wrong in exactly the way this comment implies: he didn't just ask how to detect whether stdin is a pipe. The OP actaully asked how to detect whether it is a terminal or a pipe. The only mistake he made, then, was in assuming those were the only two possible alternatives, when in fact there is (apparently) a 3rd one: that stdin is redirected from a file (not sure why the OS would need to treat that any differently from a pipe/stream but apparently it does).

      This omission is answered/corrected more clearly here:

      stdin can be a pipe or redirected from a file. Better to check if it is interactive than to check if it is not.

    1. (Ideally the run-time library would treat a pipe in the same way as a console, but it seems that most don't.)

      Often/usually treating a pipe/redirect differently is in fact what you want.

      Like if you output to a file, you don't necessarily want colors or real-time progress/status outputted along with it: you want just the bare data to be saved, which can then be filtered in useful ways with other standard tools like grep and sed.

    1. unbuffer disables the output buffering that occurs when program output is redirected. For example, suppose you are watching the output from a fifo by running it through od and then more.    od -c /tmp/fifo | more You will not see anything until a full page of output has been produced. You can disable this automatic buffering as follows:    unbuffer od -c /tmp/fifo | more
    1. To prevent race conditions and deadlocks, we highly recommend that each of the communication channels is serviced on a separate thread that maintains its own client buffer state and messaging queue inside your application. Servicing all of the pseudoconsole activities on the same thread may result in a deadlock where one of the communications buffers is filled and waiting for your action while you attempt to dispatch a blocking request on another channel.
    2. How is a pseudoconsole different from a pseudoterminal ?

      I'm guessing that's just a Microsoftism to make it easier to search/find things that are specifically about Microsoft's flavor of pseudoterminal.

      I see they don't use the word "pseudoterminal" at all, but they do mention

      ConPTY, or the Windows PTY

      where PTY is another synonym/name for pseudoterminal. So I think we're safe in saying that this is talking about a pseudoterminal.

    1. In this practice, only errors from outside the program's control are to be handled (such as user input); the software itself, as well as data from within the program's line of defense, are to be trusted in this methodology.
    1. It has two very different meanings, that you would have to distinguish by context. One meaning is just expressing that we have limitations. If you don't know something, that's just tough, you don't know it and you have to live with that. You don't have information if you don't have that information. The other meaning is that not only are there gaps in our knowledge, but often we don't even know what the gaps in our knowledge are. I don't know how to speak Finnish. That's a gap in my knowledge that I know about. I know that I don't know how to speak Finnish. But there are gaps in my knowledge that I'm not even aware of. That's where you can say "You don't know what you don't know" meaning that you don't even know what knowledge you are missing.

      I had this thought too.

    2. Socrates' dictum may be wise, but I think there's a world of difference between OP's acknowledgement that the amount of things one doesn't know is indeterminate, and Socrates' assertion that, for him, everything falls into that category.
    3. This is the essence of "You don't know what you don't know," only it's being expressed in a comical way, much like Yogi Berra might have said. (To those unfamiliar with the Yogi Berra reference, he was a professional baseball player who was reknowned for his wry way of saying things, such as, "It ain't over 'til it's over," and, "You can observe a lot by watching."
    1. I intend to live forever. So far, so good. Whenever I think of the past, it brings back so many memories. I think it's wrong that only one company makes the game Monopoly. If it's a penny for your thoughts and you put in your two cents worth, then someone, somewhere is making a penny. What's another word for Thesaurus? I used to work in a fire hydrant factory. You couldn't park anywhere near the place.
    2. Some humor is just funny on a surface level, or incorporates words that sound funny. What makes dry humor unique is that it isn't always obviously funny, especially with a deadpan delivery; you often need to think about it. The humor is entirely within the meaning of the words.
    3. "Wry" evolved from a meaning of "to twist". Applied to humor, it refers to humor that is bitterly or disdainfully ironic or amusing; distorted or perverted in meaning; warped, misdirected, or perverse; words that are unsuitable or wrong; scornful and mocking in a humorous way--it covers a lot of territory (see WordReference.com).
    1. British HumorDry humor is particularly associated with British humor. Fawlty Towers, a British television comedy that aired from 1975 to 1979 is considered an unusually good example of dry humor. The series is set in a family run seaside hotel operated by a cynical and snobbish man, played by John Cleese, who finds himself in constant conflict with hotel guests. No matter how outlandishly silly each episode becomes, there is never any sense that the characters are trying to be funny.
    1. Of course you must not use plain-text passwords and place them directly into scripts. You even must not use telnet protocol at all. And avoid ftp, too. I needn’t say why you should use ssh, instead, need I? And you also must not plug your fingers into 220 voltage AC-output. Telnet was chosen for examples as less harmless alternative, because it’s getting rare in real life, but it can show all basic functions of expect-like tools, even abilities to send passwords. BUT, you can use “Expect and Co” to do other things, I just show the direction.
    2. Certainly, if for some reason Python doesn't suit you either you can install, let us say, PHP language. Well, I think you realize that the searching of suitable solution can go on for a long time and may be only MS Visual Basic will be lacking in the list of results. So, I believe the time has already approached to put it all aside and come to to the Point.
    3. However, if in spite of all the attractiveness of the foregoing method and all the arguments of the expect authors (see FAQ) you have made up your mind not to use expect, then you are either too lazy or entirely poisoned by Perl. Well, in this case your salvation lies in the installation of the corresponding Perl-module (http://sourceforge.net/projects/expectperl), which is supposed to support all the functions of the original expect

      integration

      unwanted dependency

      Perl

      funny

    4. By the way, the README file of the expect says there is a libexpect library that can be used to write programs on C/C++ which allows to avoid the use of TCL itself. But I'm afraid, this subject is beyond this article. Besides authors of expect themselves seem to prefer expect-scripts to the library.

      possible but doesn't seem preferred

      looking at what the authors themselves use

    5. But in all this incongruous abundance you'll certanly find the links to expect It's just what is wanted: the tool, which is traditionally used to communicate automatically with interactive programs. And as it always occurs, there is unfortunately a little fault in it: expect needs the programming language TCL to be present. Nevertheless if it doesn't discourage you to install and learn one more, though very powerful language, then you can stop your search, because expect and TCL with or without TK have everything and even more for you to write scripts.
    1. can be easily invoked directly from shell prompt or script

      Can't expect / unbuffer / etc. (whatever this is attempting to contrast itself with) be easily invoked directly from shell prompt or script too??

      Okay, I guess you have to know more about how expect is invoked to understand what they mean. One glance at the examples, comparing them, and all becomes clear:

      #!/bin/sh
      empty -f -i in -o out telnet foo.bar.com
      empty -w -i out -o in "ogin:" "luser\n"
      

      I didn't realize that expect required/expected (no pun intended) to be used in scripts with its own shebang line:

      #!/usr/bin/expect
      
      spawn telnet foo.bar.com 
      expect ogin {send luser\r}
      

      That does make it less easy/normal to use expect within a shell script.

      I was coming to the expect project from/for the unbuffer command, which by contrast, is quite easy to include/use in a shell script -- almost the same as empty, in fact. (Seems like almost a mismatch to have unbuffer command in expect toolkit then. Or is expect command the only odd one out in that toolkit?)

    1. TTY is right there in the name, but this article makes no attempt to clarify what exactly the relationship between a pseudoterminal and a TTY. I feel like a whole paragraph about the relation to TTY would be warranted, including a link to TTY article, of course, which does link [back] to and explain some of the relation to pseudoterminal:

      In many computing contexts, "TTY" has become the name for any text terminal, such as an external console device, a user dialing into the system on a modem on a serial port device, a printing or graphical computer terminal on a computer's serial port or the RS-232 port on a USB-to-RS-232 converter attached to a computer's USB port, or even a terminal emulator application in the window system using a pseudoterminal device.

    1. Is there an OS agnostic way of doing this? I like the script command on macOS because you don't have to wrap the command in quotes. The script runs and sends output to the tty which is duplicated in the supplied file, but I can't seem to get the linux version to behave the same way... I'm probably doing something wrong. So what's the equivalent linux script command for this on macOS: script -q -t 0 tmp.out perl -e 'print "Test\n"' Test cat tmp.out Test
    2. If you want to pipe it into something interactive, like less -R, where terminal input goes to less -R, then you need some extra trickery. For example, I wanted a colourful version of git status | less. You need to pass -R to less in order that it respect the colours, and you need to use script to get git status to output colour. But we don't want script to keep ownership of the keyboard, we want this to go to less. So I use this now and it works well: 0<&- script -qfc "git status" /dev/null | less -R . Those first few characters close stdin for this one commmand.

      Just git status | less -R worked for me without any additional trickery, but I see now that's because I told it to "always" use color in my .gitconfig:

      .[color]
        ui = always
        status = always
      

      I tried disabling that and then trying the

      0<&- script -qfc "git status" /dev/null | less -R
      

      trick, but it didn't work for me. It didn't show any output and I couldn't exit out with Ctrl-C or anything I tried. Had to force kill from another terminal.

      But it's a good example of the related but different problems:

      1. forcing less to respect colors (easy)
      2. force/trick git status to think it has a terminal
      3. force/trick it so you can control keyboard with less
    1. In many computing contexts, "TTY" has become the name for any text terminal, such as an external console device, a user dialing into the system on a modem on a serial port device, a printing or graphical computer terminal on a computer's serial port or the RS-232 port on a USB-to-RS-232 converter attached to a computer's USB port, or even a terminal emulator application in the window system using a pseudoterminal device.

      It's still confusing, but this at least helps/tries to clarify.

    1. Your Open Source Supply Chain Is Bigger Than You Think.Reduce your security, risk, and compliance load. Let us scan your Python, Perl, and Tcl application for you and help you gain the transparency you need to reduce open source risk.
    1. Work-life balance However, I recently understood that while we were working on the game, I broke the one and only rule I set for the founders of the company: always family first. My wife was expecting our second child and I was working long days at the office, and I became obsessed with making sure the game is as good as possible. The same probably applies to everyone in the team, since we shared love and passion for the franchise.