Add to Watchlist

Terminal Whispering

4 views

Citation of segment
Embed Code
Purchasing a DVD Cite video

Formal Metadata

Title Terminal Whispering
Title of Series EuroPython 2015
Part Number 47
Number of Parts 173
Author Ballinger, Thomas
License CC Attribution - NonCommercial - ShareAlike 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this license.
DOI 10.5446/20211
Publisher EuroPython
Release Date 2015
Language English
Production Place Bilbao, Euskadi, Spain

Content Metadata

Subject Area Computer Science
Abstract Thomas Ballinger - Terminal Whispering The terminal emulators we run so many of our programming tools in are more powerful than we remember to give them credit for, and the key to that power is understanding the interface. This talk will cover terminal colors and styles, writing to arbitrary portions of the screen, handling signals from the terminal, determining the terminal's dimensions and scrollback buffer behavior. Terminal programming can get hairy; along the way we'll deal with encoding issues, consider cross platform concerns, acknowledge 4 decades' worth of standards for terminal communication, and consider that humans at interactive terminals may not be the only users of our interfaces. By gaining an understanding of these issues, we'll be able choose from the abstractions over them offered by Python libraries Urwid, Blessings, and Python Prompt Toolkit. This talk requires minimal Python knowledge, but does assume familiarity with command line tools in a unix environment. An abbreviated version of this talk was presented at PyCon 2015 in Montréal: With the additional time I'd hope to present more code examples, a more in- depth tour of existing libraries and more practical advice about writing programs that use the terminal, and an additional example of a difficult terminal details: dealing with reflowing of text in modern terminal emulators like GNOME Terminal and iTerm.
Keywords EuroPython Conference
EP 2015
EuroPython 2015
Series
Annotations
Transcript
Loading...
and today then we are delighted that much were annotated print and
also thing next slide here's something interesting I just to get status was softened seven-color color ideas not interesting ideas used LS and I should mention for this presentation if you've got a computer with you and you can get to any node Unix-style terminal understand in trying rapidly and 1 of should try ls here and you'll see that as you change the size of your terminal emulator window and the output of less changes dynamically decides how many columns about what to use based on the size of the terminal as another kind of mystery that we'd like to solve today how do color coded to ls so that's doing the things differently also ls using different output the piping and 1st if you're looking at interactively so with some of the things we like to learn how to in shares some of the ways that we use the terminals the that top here which is filled up the whole screen and maybe we can know how to do that by printing a bunch of text really quickly and then waiting and bring again but that's not what's happening because of the scene with when it all goes away so there's something else going on here that there is a 3rd a 4th mystery for people out Germany and another thing is is that once we know how to save build up an interface like this variable stuff like by this went but we don't worry we'll do things like build of fully windowed system we can build basically graphical user interface applications run context
user interfaces this is PUT be it said about like to users have a nice interface for PDB and it is a matter of a lot of opportunities open to use and you want a user interface you don't have to jump the queue to you don't have to go to where you could use something like this anybody that nothing else must talks a great about region which is right water terminals what
what I mean by this is why I say word terminal and I'm talking
about this thing I can see it in that lack thing there is sort of important because this is going to be relevant to units terminals portions of this a relevant to Windows things but not gonna I don't know how much money to go and how much why needed terminal-emulator and we say emulator because the thing were
emulating as these things video terminals but a video channels
already emulating something else and that was originally
a teletype machine maybe by electronic typewriter send signals the 7 around for about a hundred years we had this for a long time we we had a typewriter and the changes such that it sends signals and the reader little bit of text from an ad from
1957 this is the 50th anniversary year of a teletype corporations so it teletype printer is a communications device with a keyboard similar to a typewriter that enables you to send and receive printed messages so this is this is a copy of maybe a businessperson ended in the fifties the fear of a 1 to 1 of the things they say things like with that you can stand with the written word can be sent instantaneously by wire with in the office or planned for or clear across the country to a single destination for many of the time so
we were starting with this model of a terminal as is the typewriter where is not connected anything your finger
fits a key there cause of the you are matched with the thing to hit the put it on paper at the beginning but then we added teletype part we're sending a signal from a lot of applications the that's telegraph operators somewhere else part country maybe that's the a computer program and then maybe we can send signals back somehow I others may be metal wire involved signal processing or something but the
little bit modernized version where with system calls like every 2 returned bytes and we have that right which is going to print things and now there is internal and later there's some gooey stuff that happened the rock and eventually get stuck to the screen and still keypresses right from the terminal because the pipeline talk more about friends and input instead of this a Python 3 talk so input means on the right to the 1st we should look at is what fights we can write to a terminal and what happens when we write and so I can grade out you can tell some of the reading portions there all right we sent 1st topic an ASCII bytes this is kind of boring for most part there we have literals and invite on 3 here you can say since that standard out that buffer got right and then send some bytes those will end up your terminal and try this now if you want and we also control characters we can set these are like really small ASCII bytes art
efficient shot here saying that I was going to kind imports report Sesimbra induces stand out that buffer them right we can write some byte string here and but is a little confusing to look at about return value down here so I something little bit different you can do this to fact computer there are
other on a server over here this is listening for bytes so rapid see the input and
output interleaved and then over here you important topic as you start typing head stuff what we connect things and let stand 4 Mbytes great right so now I can tell that when we send an ASCII byte we get simple things like this where saying them over here's
a table were looking right now the ones on the right hand warnings but there's all the other stuff that and remember this all makes sense in the context of a typewriter ASCII things here this is this is typewriter times so what these do let's look at it of strife few of them now and what we can
try that you probably know what's happened here a set standard what happens we write a new line guesses as to happened there is this way to build predicts we write new lines all the time of the cursor went down the next slide sort of imagine that's what would have happened but let's try something else here were right now if a backslash and the idea what happened here it was used as 1 let you look the cursor is moving backwards and so this is the thing that sort makes sense of a typewriter you could move it back and forth and now we could do something like all right that was based so you can see how can implement the fact that and maybe would
also do a carriage return which means move the carriage of the typewriter back to to where it started and that was a per-server here so we've just unlock the power of love the ability to rewrite aligned and with that lets us do In progress plots
figure program that has a progress bar we can now do this just with this knowledge of being able write a carriage return to rewrite the line how we go about doing that
in Python might be something like this and just the general shape of the code the important parts here are and see that were flushing so there's some buffering going on will look at a little bit later but it may be important flushes right now running online and standard error also were not writing byte strings anymore it's still by country but now we're writing I hope this by country but now we're writing and you know the strings and we'll get a little bit too how that works but this code would work perfectly well for progress now you can add progress bars your interactive tools who writes command-line tools that someone might run an internal sometimes right all of the utilities this all the time it can be funded ads and these features so what else we got actually
determine coding and say that we're terminals generally have an encoding and that we have the whole time but the ASCII overlaps with UTF-8 if you try this out right now but this gives us and and yeah and then we can use a systems that out right before you knew constraints because I will take care of the encoding for but now some
about some things that don't make sense on typewriters these oral an example
is video terminals and in the escape sequences before we look
at them which try 1 here so I'm gonna write flash X 1 if you're not familiar with the syntax is a way of specifying a bite that doesn't have a nice printable representation open 33 and 0 this look like anything happens parts of the lesson here all we have a lot to get less more about the learning is that the terminals have state so what I sent those bytes it said on the start writing in yellow now and then analyse more bites were still stuck in this field mode so this is the kind of thing that yes but there no the way using understood terminal as you said special bytes and some of the bytes don't mean put character from screening changes state for future predictions but some the other
kinds of things we can do here these
aren't you were dancing implies some standardization that happened here right now we can move the cursor around the screen we can clear the entire screen can hide the cursor so that you can print things without seeing with cursive writing right now starting and bolster writing in red so the lot of this and you just stop playing with this now have a great Wikipedia pages the 1 on the escape sequences which describes the here's how to right right here is how to write in blue here is how to make something bold don't know little parable
and say it's it's 19 the service so
it's sort years 1984 into this slide I think he has it up right now you log in the some had BBS system recently Telnet somewhere and start sending you
sequences and it's really cool I mean you 12 you think
it's really cool or maybe 40 thing it's really cool but unfortunately on your friends you terminal at the show correctly by yours don't quite show up right so this is the kind of 1st iteration of the computer uses JavaScript sometimes will but who japery so there's this thing called JavaScript that became popular for this bridge history and telling them have 2 main reasons 1 it papered over differences in browsers and this was a huge right the browser
incompatibilities so we have that same problem with terminals and different
terminals behaved differently we still have is to some extent but like to inquire it's less necessary now because things are more standardized people are more likely be using the same
kinds of animals and the other reason I think became popular is
the nice interface and relative some libraries and on similarly give you a better interface than the native 1 so
we have compatibility concerns talking about the 1st things we did were come up with the databases of different kernels how you can use different capabilities in different terminals long-term Papineni then terminfo did this and then we're wrote in a library for applications to use called persons that accesses these databases and let you say 0 i 1 draw square and it will figure out how to do that and some world thanks to have on your machine you can probably say man team put or try to put space and you have the nose magic sequences and that will look up in that database how to make things red how to move the cursor up and another thing you can look at is foci was a dump the information about these mappings with your particular tunnels here is
an example so some you can do if you don't wanna learn the pipe and ways to do this you can shell out and say hey I want clear screen and that's maybe easier learn but we don't want to do that you can do these kinds of things probably and that's probably system and you have but but instead we will use blessings blessings is a wrapper over curses which is the normal and interface that we use for accessing these databases of how to do different things in different terminal but it's much nicer and you were doing printers something in bold now the important thing to know about lessons that mostly just gives you strength so T . mold of high there is going to be a string and still your job print that strange but it's going to be built for use you have to type in those escape sequences right so let's all the
screen mystery with blessings so we saw before that using top of the entire screen was taken up with the right things and then all went away so 1 more of
these let's try from import terminal did build 1 these things which looks at our settings this looks at our settings of years example you this kind terminal looking at the environment variable terms and then we can say something like we're what we're saying here is T . to enter her full screen and the running code that for a terminal and now recommend screen thing because he kept the current line some some differences have heard of kernels do this but but now we can write stuff and then we could send our eggs and back into our original 1 right so these are some of the
kinds of things we can do by writing bytes the terminals this is just knowing the language speakers and in in the in-band signaling where we send bytes similar bytes don't result on things being on hi sir altered it's great you can read them for yourself and then you can read many pages that will tell you more about these now about what
happens when the user types in the keyboard and you probably are familiar with you can say raw input or input in Python and it's going to wait until the user types a whole line of text and then hit Enter the so how does that I that work 1st of is this thing called the line discipline which describes when you want to use what's gonna do when the use it's become available to the application form a recall and you can have play with CEO how this is included in the kernel you can see how they're implemented by playing with tried to take a cat and types and stuff you'll see that you don't have control and you don't have control he wears you're kind of a Mac-style realize shortcuts and all you have is kind reference is and your Backspace delete word reprint fleet line and ended the application can get that what the contents of that offer until you hit enter
and there are a lot of other terminal settings this is the look of 1 uses example is at so normally right when go back to a typewriter analogy if you've a typewriter your finger hits the key into goes to the paper right now and then the signals sent and maybe on this maybe copper aligned comes back in the teletypewriter could do something else but it's always going to get there right hitting the key the activating the key causes things a paper so it doesn't make sense of that's where this echoing thing comes from but we're not step without any 1 of and the way we do this is with other interfaces out-of-band signaling the rest get and set here we can get set is a actually it's about the terminal and say you know I don't actually when you do that every time you could achieve show that but look at those here again the relevant managers from the best place to have read exactly about how to do this but there is a skip that and talk in detail about economic SEC Y minus echo turns off ago so this a command line program you probably have and and then you can write it was turned off so we can try this real quick but
not can type you can't see it um and then we can life ago we're back when a year from a little weird state state you probably want type reset like this if it doesn't help so it was cattle a binary file or somehow determine in a pretty weird state weird part maybe and you get messed up much simpler do OK want a set and then when that doesn't work people want again because something already in the buffer that made it so you will you actually I was log and so that's that's the other big hint from this type reset twice that feeling that if you want so
you turn back on echo here but it I don't know when using light on there is get past the standard library which uses this so let's look at the source get past the work I mostly this is real code from the consent of library and I would worry about just the shape of this generally try my West TC get added is the thing that were saying show me the status of all those knobs and use that mass stuff is a 2nd obs in these ways and I'm fun and not mention we have our value channel right here maybe there's a novel and it comes through its says hey please that your terminal in this mode you say OK all of that that's what we're doing here and then really important give a try finally and so the terminal is a resource external to your program so if you don't wanna mess it up in that way that that happens to us all the time then you should be careful about you you wouldn't have and haven't had an error without and not the other actors often and not restore the terminal to that echo state and that's when you have to type receptors so we want this but it's quite so this is the a good fit for a context manager and in fact will look at some libraries that do provide these kinds of context matters but the sort of thing we wanna do is say 0 i won't modify standard and I want change in these ways and once we're done I wanna under the changes there's using that context manager right so here the kinds of things that we can do by setting these knots and I'm going to exactly what they are because we're these libraries that paper over them but if you know that using the possibly look up out of the number of traffickers and you knew reading again always that is adding to this is great this is does it look like a TTY and is the thing that you're wired up to terminal interactive 1 and that's how ls is saying 0 shoot I displayed things and columns based on the with the screen or should I be just William out your typing this the graph and you want each thing on a different line and it's your responsibility you start doing these fancy terminal things to make sure that your program still works well with typing it's supposed to and probably should but if it doesn't then you get a situation where you have a program that only works interactively and now someone else has to try using a script and the with the ways to do that will look at the set that have been nice if you could just work checkers see if you should be doing fancy formatting or not with this is that the like of also have echoing characters mapping bites the keys so again you can do this with cat you type cat enter and then use your arrow keys you'll see that 1st of all Europe's don't work exactly that several bites of the retina and so there's this mapping of bytes if you hit a yet to be a but if you hit F 11 you get something funny if you do Shift-Tab you have something so if you're running a program exposed to interpret these it's your job to figure out how to deal with this and again the libraries you probably used but they it can be helpful to to see that this is what happens changed right without being type this is a what will look at this quickly this is a fun exercise would you really understand how your from kind of working on right some fights to work you interest now where right these bytes toward terminal and what the Charleston In response to this is right some bites on standard in that were supposed to read figure out they didn't come from the user at their response for query interprets and uses only makes sense if you're in that buffering you only make the data available the application when it hit enter mode you should be in C breakthrough and other modes of thought about that try this now the problem is something like this and that prompts purpose on the prompt and there will be characters so the a non-standard and it is it's it's funny to think about that a program could write a standard and or that you could end up with characters there period of the I was really trying to say is like this is a cursor queries same where is the cursor on the screen and you don't need this for much occasionally you do when you're doing interesting resizing thing briefly signals this is just another thing we can get set we can say hey you know what when he do control the I don't want that to cause a signal that will you because the single-ended around and I have set that up I would rather have this other thing happened I just want the control let me figure it out some of signals we can get that elements it's against patrols see Jesse is that suspend thing winches a window change and the thing to know about this are these 3 different modes cooked Robinson break-up is the normal terminal mode were in line buffering echo was on here groups of different settings you might wanna use if you're writing an interactive program on wrong is this mode where all signal and was turned off at me I think all of and heating she's just passes those keys immediately directly your program you could save read you would get them immediately and the break is a hybrid where you still have a signal handling this is probably where you wanna use because you still want users the ability to break out program control but you still get the keys right away right now I can go through summaries 1st of all the questions later but these are what I found useful some tools that are useful for this how we should actually doing as good it's fun to experiment with the actual codes but then once you know that you should be using some library staff and the 1st of blessings that air grows roads and we looked at earlier if you wanna be using this is baseless of the library use a nice wrapper over curses lets you say things like to see here right in bold move the cursor over here right this text but there's some
cooler stuff it's in last which is a fork of blessings by just class and it's almost merged with almost merged for about a year or so if you wanna go play with this right now I would use blast and then hopefully next month or something you all the features we merge back in there's a branch on the blessed you know how to get home for blessings that has all these features have been refactored a little bit errors refactoring changed a little bit this lets you cool stuff like that t si break so that puts doesn't see break motor is available to us immediately T . int he translates the bytes in the buffer into a press with a pretty name and music take on that was based on that we shift control to you and also some interesting formatting things there it is just a great job is really cool stuff and and if you just wanna play with this now I would start with less and then calls will be merged blessings and er with
that's how we were going PTB and this is a true this is the end of his last name now on the wrote this and it's a which are like it's like if you want to be using a terminal for some kind of full-screen application this is probably what you want it works like a gooey library familiar with 2 2 something can be kind like that for by but here again I want to
remind you that you school
perpendicular to that the but the result is critical and some other tools that use for getting out there some other ones the use similar pretty
right you wanna write things like this this is pretty clans and click or
2 command-line utility libraries so you're still writing this column response style applications but you want proper but you want to print something as wide as the terminal and you want to have something in red you when I wait for a key the emitter libraries you wanna use I don't use is much that can talk about the money but I've heard buzz about all of that there there are good I realize that if you want fancy editing on the command line this is probably what you want you don't wanna re-implement this from scratch this gives you control a controlled I'm I think in Python 3 4 now this is kind enabled by default as with the tab completion things but if you want your own tab completion you can use this
and a lot of times
when people I think 1 advantage for most of the thinking of the things they get for free with real life story a way to put in user space what usually happens crawlspace normally the kernel is in charge of buffering up these characters letting you do a few things like leading word clean line but really line says are routine I'm going to put us in seal break modes of we get those signals immediately and then you know so I get T and then you can say 0 you control a I know that means move the cursor back to the beginning of the line for you to control the L. or modify this way so you're in user space while you're doing that stuff and you can modify remind I've done a little bit of this 14 replying to do interesting things with it and it's kind of fun has lots of programs the next up OK this is foreign I rotation spend too much time on but we wrote it for the
Python which is the thing I had in the last had before and it's an older version where we're having a little demo of what he's repressing but similarly to with the idea is that if you had a whole terminal as a canvas and just take over and accepted more a hybrid where you still have to use a
common response kind of thing but you get a pop-up windows over or but you get to read and 2nd rewind back so that you troll are here comes so getting lots of text
1st but you can do things very
variables we rewound back up so the things that don't make sense you know to do in this kind of thing you can using realize the more you can be in the normal that you need for control the terminal and I should spend too much time on this because Python
prompt toolkit and by Jonathan someone other but is much better this is better code it's better than library that I wrote and went on to bring migrate be pipeline anytime soon but this is great and if you wanted to have some great interactive my sequel and samples press interfaces library interface tools have been written with this this is great for I want command line tool but I want pop-up auto-completion but I want and editor in my mind and
here's a pool of reflected a demo that's the cool thing that they're doing there is this whole you editing anywhere and I style of hierarchal spread all the way from here so pops up what looks like an editor you still in Europe and there's a O'Connell rebel called you topic some of this and the Julia grapple has some of these things but is just my services next area a pop me back up to where this index there was this is pretty cool I don't know much about get a concept which should be familiar with is a p t why is a pseudo terminal and this is what you use when you run 1 run another program in such a way that it looks like it's using the term probably using library over it's called encylopedia why lets you kind of need things like take the output of a program and re-rendering what we're doing here this looks kind of like I wanted work Python interpreter except that there is a case transformation thing going on every 5 seconds or something it flips the case so is this is kind of funny but you can imagine have transforming the output of some programs so this is what a pseudo terminals also how terminal emulators are written on and that's where I 1st saw this with people writing tools for assisted net happy place so they're they're they're writing they're playing a game and and and I can hear you change the code for not happen all this 1 of the rogue like overhead things but they once to modify the input and the output so this consent between you and some of program and you probably will
get key expects which is a Python version of the expects program for this for interacting with line tools that want want to be attractive they want have user at the helm but you want to script of course and again cool tool here if you got a computer open you might try right now typing tell based on past bio on Jesse did write the original term cast but rather by the emergence and by the Conference so here is an easy check these out is written this this is the idea that because the terminal sessions are just a series of bytes in the bytes everybody you could say hey check out these vitamins which tries this now and what was Thomas so
I I think I'm not aligned right so it's
not something you already right and that's
I will skip this but the just
as you can see if someone else has a session and they're sending always had this and the bike and makes red I sent the by the move the cursor over here you just get those bytes and then replay than your own terminal you have very high fidelity kind of low bandwidth screencasting basically of just a so it in check this out also you can it's easy to broadcast your own internal session if you will see working terminal regions team accessions that
and that is the more Web-friendly version and user friendly version of this is 1 of the remember how to pronounce it anybody ask asking among there's a nice way to pronounce it has the words mind ASCII in it and doesn't have access and in other words but this is a cool tool for recording internal session and then making a playable in a browser and finally I want to talk about
the ways that I've used the an interesting terrible things here's
1 where I'm using and this is a very common possible use for interesting escape sequences and formatting of things which is formatting test failures and this is 1 were written in the Python with a like a something funny instead of any it as armadillo and highlight those and if you do it your own terminal it also blinks just have fun and and then I have another program where I needed to test that the window resizing working correctly so as a program called T much P which such a script to Marx in Python and have some tests that open at the next session and then try resizing the window and see referring and and this is what I just found out to be the easiest terminal emulator that was scriptable so use running these tests that nite if there aren't 2nd and we'll see resizing 2 months window to test to see if it works correctly treat these things and that's about it I have some
reading things this is not posted anywhere yet but I will let you know on where when I finally have a blog post up that lists all these resources were at least a version original slides of successful I think that it I think we have a few minutes for questions
the it's maybe another good question but how does the syntax for the special characters work like the slash x you brackets shortly after that so just there is
that when you have a constant representations you can do stuff like what's you can there there are multiple recommendations for strength and where it is written or impact on 3 so is the you know those things here but if you say slash x 61 and then you say yeah these are identical flash next 61 so flatter 61 is a way of describing that made it clear we tried word you board of this so you know this is Textron right exactly as accessible but the in those special characters you could like uh all the letters like 1 N and N is it's not the text of the small digits so what is right right so it just went renders strings and some of them end up so prices slash x
61 flashbacks 0 2 some of the words and sometimes they renders them sometimes some letters have 3 renderings like 61 some delta x 61 and some don't like go to so is in Python wrapper code where says on this 1 is isn't if we tried printing it and then it's going to it's not grant sorry the system well value right we just don't see it because it's not like a printable things and that to a terminal doesn't do anything so it's the different way it's just like you can put a single quotes or double quotes around the strength of the different way of describing the same literal and then in the print method it's as hot as the Sun have a pretty representation on not exactly 0 sorry I get that but you had those the special characters ladies those less X 1 brackets 1
and something and I don't know
if they're not yet available on what is it about to because of the problems with it because I have a set
of i have a Windows machine talking to remotely mixed
with within that he through teamwork
stands for midnight commanders and this you have problems with character encoding all the time like your this
kind of things here yet yeah so that is the the 1st 1 is state right so it's that that rendered by the next 1 is a real open square bracket that's it's a real 3 real 1 and so they really are those characters here the difficult 1 to deal with I think is the 1st 1 is the character which and I have similarly Somerset's with that this thing in about the marks and ionization somewhere you have to trace it through each level on and hope passes it through so that what we're looking at really is so the start writing in red is 1 2 3 4 5 bytes because the first one is the escape by and then the real open square bracket and if you read the Wikipedia article on the ANSI escape sequences is please hand waves about a little bit says are when we have more a sequence can be more than 2 bytes we use this longer escape thing instead of just escape character reuse the open square brackets well so yeah and get the pass through is difficult but I agree I had trouble with that as well to the trace it at each level are you really get those lights and are not visible light so you have to do it like to file and then use something that can read displayed looking into the when the catapults to do read line library mentioned a set of key binding like control a eventually of what would be 3 of authoritative source for all those people and it's because of like you've seen it probably single DB the support the immigrants but it's sort of something to something some of them don't what would you do you were not aware of that rule for real line binary what side of the arrow was at the by the school for the blind shortcuts and I found 1 that looks kind of authoritative and so I get this for me I we re-implemented all remind basically and so I learned a lot about remind chart that I didn't know about whatever is the matter uh close bracket is there
is something that is business slash that runs copies down the previous word or something there's a lot of these island right sure yeah yeah so it's using real reminded it might think it should then looking at your data input our c and things like that so I I don't know but I would blame whoever implement that were wrote that program you not using remind directly or re implemented it can only implemented some of the we still have time for 1 short questions what was the name of the cold interactive Python Call it exactly the question a little yet and this is all of the
lifetime of the data is the to it's great should also get out really good for the Catalan those the look at that and capitalized how's that work the doctor library data that I can undo now is not defined anymore holiday should great always printing on this under they're just ignored some issues important come up so at least on Saturday I'll be looking at this that and the we bite size but that 1 wants it can help interview with this
when the wind and theft the
Slide rule
Context awareness
Function (mathematics)
Computer
Emulator
4 (number)
Mathematics
Lecture/Conference
Smart card
Gamma function
Graphical user interface
Physical system
Window
Metropolitan area network
Touchscreen
Shared memory
Interface (computing)
Cartesian coordinate system
Bookmark (World Wide Web)
Demoscene
Maxima and minima
Computer animation
Graph coloring
Vertex (graph theory)
Window
User interface
Metropolitan area network
Interior (topology)
Interface (computing)
Water vapor
Bookmark (World Wide Web)
Maxima and minima
Sima (architecture)
Emulator
Word
Computer animation
Queue (abstract data type)
Right angle
Window
Units of measurement
Window
Message passing
Word
Lecture/Conference
Multiplication sign
Keyboard shortcut
Videoconferencing
Bit
Office suite
Bookmark (World Wide Web)
Portable communications device
Window
Meta element
Computer programming
Scientific modelling
Computer file
Mereology
Cartesian coordinate system
Bookmark (World Wide Web)
Signal processing
Dressing (medical)
Computer animation
Causality
Operator (mathematics)
Graphical user interface
Key (cryptography)
Directed graph
Window
Metropolitan area network
Keyboard shortcut
Standard deviation
Touchscreen
Gradient
Abstract syntax tree
Bit
Port scanner
Mereology
Bookmark (World Wide Web)
System call
Computer
Revision control
Computer animation
String (computer science)
Buffer solution
output
Right angle
Gastropod shell
ASCII
Reading (process)
Window
Metropolitan area network
Server (computing)
Context awareness
Multiplication sign
1 (number)
Abstract syntax tree
Function (mathematics)
Disk read-and-write head
Bookmark (World Wide Web)
Table (information)
Computer animation
Right angle
Gastropod shell
ASCII
Window
Metropolitan area network
Slide rule
Standard deviation
Multiplication sign
Line (geometry)
Term (mathematics)
Cursor (computers)
Power (physics)
Plot (narrative)
Computer animation
Hash function
Right angle
Gastropod shell
Quicksort
Arithmetic progression
Window
Computer programming
Standard error
Code
Set (mathematics)
Multiplication sign
Shape (magazine)
Mereology
Automatic differentiation
Connected space
Escape character
String (computer science)
Utility software
Dependent and independent variables
Window
Computer file
Code
Bit
Line (geometry)
Multilateration
Bookmark (World Wide Web)
Maxima and minima
Quantum state
Explosion
Computer animation
Figurate number
Arithmetic progression
Writing
Constraint (mathematics)
Computer animation
Code
Multiplication sign
Computer file
Code
Bookmark (World Wide Web)
ASCII
Linear map
Physical system
Window
State of matter
Computer file
Flash memory
Code
Abstract syntax tree
Term (mathematics)
Mereology
Bookmark (World Wide Web)
Sequence
Field (computer science)
Single-precision floating-point format
Escape character
Mathematics
Computer animation
Hash function
Representation (politics)
Gastropod shell
Escape character
Prediction
ASCII
Writing
Asynchronous Transfer Mode
Window
Web page
Standard deviation
Touchscreen
Computer file
Code
Cursor (computers)
Cursor (computers)
Bookmark (World Wide Web)
Sequence
Single-precision floating-point format
Escape character
Computer animation
Escape character
ASCII
Linear map
Window
Metropolitan area network
Slide rule
Service (economics)
Computer file
Code
Password
Login
Web browser
Bulletin board system
Bookmark (World Wide Web)
Sequence
Computer
Connected space
Computer animation
Telnet
Bridging (networking)
Graphical user interface
Right angle
Iteration
Subtraction
Physical system
Window
Equaliser (mathematics)
File format
Virtual machine
Password
Abstract syntax tree
Electronic mailing list
Connected space
Whiteboard
Database
Core dump
Square number
Information systems
Subtraction
Metropolitan area network
Linear map
Window
Metropolitan area network
Musical ensemble
Focus (optics)
Spacetime
Information
Mapping
Computer file
Code
Interface (computing)
Login
Cursor (computers)
Cartesian coordinate system
Bookmark (World Wide Web)
Sequence
Wind tunnel
Computer animation
Boom (sailing)
Graphical user interface
Library (computing)
Touchscreen
Wrapper (data mining)
Computer file
Letterpress printing
Interface (computing)
Bookmark (World Wide Web)
Greatest element
Sequence
Process (computing)
Sample (statistics)
Computer animation
Database
String (computer science)
Graphical user interface
Escape character
output
Data type
Subtraction
Linear map
Physical system
Window
Web page
Similarity (geometry)
Cursor (computers)
Formal language
Term (mathematics)
Oval
Hash function
output
Subtraction
Window
Metropolitan area network
Electronic data interchange
Touchscreen
Computer file
Set (mathematics)
Line (geometry)
Term (mathematics)
Variable (mathematics)
Bookmark (World Wide Web)
Sign (mathematics)
Position operator
Kernel (computing)
Computer animation
Integrated development environment
Right angle
Gastropod shell
Resultant
Computer programming
Keyboard shortcut
Game controller
Line (geometry)
Multiplication sign
Mathematical singularity
Raw image format
Sima (architecture)
Word
Type theory
Causality
Analogy
Computer-assisted translation
Linear map
Directed graph
Form (programming)
Window
Metropolitan area network
Key (cryptography)
Computer file
Keyboard shortcut
Content (media)
Interface (computing)
Line (geometry)
Set (mathematics)
Cartesian coordinate system
Bookmark (World Wide Web)
Word
Kernel (computing)
Computer animation
output
Graphical user interface
Key (cryptography)
Data type
Data management
Metropolitan area network
Computer animation
State of matter
Buffer solution
Online help
Gastropod shell
Set (mathematics)
Mereology
Data type
Binary file
Sima (architecture)
Keyboard shortcut
Context awareness
Musical ensemble
State of matter
Code
Interior (topology)
Multiplication sign
Shape (magazine)
Mathematics
Type theory
Arrow of time
Social class
Metropolitan area network
Touchscreen
Mapping
Wrapper (data mining)
File format
Computer file
Fitness function
Staff (military)
Bit
Port scanner
Control flow
Term (mathematics)
Bookmark (World Wide Web)
Shooting method
Process (computing)
Oval
Buffer solution
Normal (geometry)
Right angle
Quicksort
Figurate number
Data type
Data management
Asynchronous Transfer Mode
Computer programming
Game controller
Line (geometry)
Password
Control flow
Branch (computer science)
Mass
Shift operator
Number
Sima (architecture)
Frequency
Goodness of fit
Escape character
Knot
Scripting language
output
Computer-assisted translation
Subtraction
Window
Data type
Beer stein
Standard deviation
Graph (mathematics)
Key (cryptography)
Bit error rate
Element (mathematics)
Line (geometry)
Set (mathematics)
Density of states
Cartesian coordinate system
Cursor (computers)
System call
Local Group
Computer animation
Query language
Hybrid computer
Dependent and independent variables
Key (cryptography)
Window
Library (computing)
Metropolitan area network
Escape character
Computer animation
Computer file
1 (number)
Graphical user interface
Cartesian coordinate system
Bookmark (World Wide Web)
Resultant
Library (computing)
Metropolitan area network
Computer file
Stack (abstract data type)
Complete metric space
Cartesian coordinate system
Bookmark (World Wide Web)
Total S.A.
Hand fan
Maxima and minima
Computer animation
Utility software
Dependent and independent variables
Damping
Library (computing)
Window
Computer programming
Spacetime
Multiplication sign
Real number
Control flow
Bit
Line (geometry)
Cursor (computers)
Word
Video game
Kernel (computing)
Computer animation
Asynchronous Transfer Mode
Revision control
Metropolitan area network
Modulo (jargon)
Sic
Computer animation
Demo (music)
Function (mathematics)
Hybrid computer
Dependent and independent variables
Text editor
Metropolitan area network
Game controller
Electronic data interchange
Sequel
Code
Multiplication sign
Programmable read-only memory
Sampling (statistics)
Interface (computing)
Binary file
Variable (mathematics)
Maxima and minima
Social class
Computer animation
Revision control
Text editor
Implementation
Text editor
Library (computing)
Computer programming
Service (economics)
Overhead (computing)
Code
Transformation (genetics)
Hierarchy
Function (mathematics)
Computer
2 (number)
Revision control
Emulator
Casting (performing arts)
Term (mathematics)
Scripting language
Area
Metropolitan area network
Series (mathematics)
Zoom lens
Demo (music)
Line (geometry)
Subject indexing
Computer animation
Personal digital assistant
Interpreter (computing)
output
Text editor
Library (computing)
Band matrix
Metropolitan area network
Computer animation
Client (computing)
Gastropod shell
Cursor (computers)
Window
Metropolitan area network
Computer programming
File format
Ext functor
Grand Unified Theory
Web browser
Sequence
Usability
Revision control
Emulator
Word
Computer animation
Software testing
Software testing
Scripting language
Escape character
Videoconferencing
Window
Revision control
Data model
Slide rule
Computer animation
Blog
Blog
Video game console
Gastropod shell
Videoconferencing
Metropolitan area network
Software engineering
Multiplication
Wrapper (data mining)
Code
Poisson-Klammer
Flash memory
Letterpress printing
Perturbation theory
Term (mathematics)
Host Identity Protocol
Word
Computer animation
Doubling the cube
String (computer science)
Single-precision floating-point format
Hash function
Volumenvisualisierung
Representation (politics)
Right angle
Gastropod shell
Whiteboard
Digitizing
Physical system
Keyboard shortcut
Game controller
State of matter
Line (geometry)
Multiplication sign
Real number
Programmable read-only memory
Mathematical singularity
Source code
Virtual machine
Cursor (computers)
Rule of inference
Open set
Word
Escape character
Type theory
Square number
Energy level
Arrow of time
output
Relief
Linear map
Data type
Window
Metropolitan area network
Sequel
Poisson-Klammer
Computer file
Keyboard shortcut
Bit
Set (mathematics)
Line (geometry)
Port scanner
Greatest element
Bookmark (World Wide Web)
Sequence
Wave
Message passing
Computer animation
Graphical user interface
Right angle
Key (cryptography)
Escape character
Quicksort
Window
Reading (process)
Library (computing)
Metropolitan area network
Computer programming
Word
Computer animation
Multiplication sign
output
Right angle
Gastropod shell
Term (mathematics)
Library (computing)
Loading...
Feedback

Timings

  923 ms - page object

Version

AV-Portal 3.8.0 (dec2fe8b0ce2e718d55d6f23ab68f0b2424a1f3f)