Skip navigation.

The Stripy Strudel's Journal

Posts tagged with "humor"

All Absentees Assume Formation

,

In a boring lecture, only three students are in the classroom. While the professor turns to the blackboard to write a long formula, five students slip away. The professor turns to the class and says disappointedly: “If two latecomers walk in, there'll be nobody left!”

This joke was funny the first time I heard it. But why is it funny, indeed? Common sense tells us that it's impossible that there are −2 students in a room. But the professor was somehow not surprised; to him −2 easily adds up with two latecomers and yields “nobody”. The problem is that we have no idea what negative two students look like and what properties they have, but it's natural for us to assume that they annihilate with positive two students.

Where does our “common sense” regarding to quantities come from? Natural numbers have properties (such as the possibility to increase any natural number by one) defined by a set of axioms, but why are these axioms exactly what they are? Natural numbers are called natural for the very reason that human invented, or, to be precise, apprehended them directly from the properties of the environment. One doesn't have to know math even at elementary school level to perceive empirically certain properties of natural numbers, for example, that 2 > 1.

For a long time, negative numbers were thought to not exist (and even zero took time to come into use), but as soon as at the dawn of Common era, such an extension to the set of numbers was first mentioned. It's not that somebody actually saw −2 students, but in bookkeeping of debts negative amounts of money or goods turned out to be quite conceivable. But if negative two swords, oxen or even slaves are possible, negative two students shouldn't seem something incomprehensible either.

The setting in the joke still seems absurd because nobody has ever witnessed a pair of positive one and negative one students being produced from nothing. But the very existence of a negative one student, or, to put it that way, lack of a student, is not absurd. One can even imagine that whole galaxies exist with negative quantities of stars, planets, universities and students. They probably call their half of the numeber axes “positive” and theorize about our existence, or, to be precise, the lack of us. (This is not the same as antimatter, despite some similarity. Antimatter exists in positive quantities, but this is rather about negative amounts of matter.)

By the way, while we're telling existential jokes, physicists shamelessly use negative quantities of electrons. A lack of electron, or −1 electron, is called an electron hole and used in analysis of semiconductors on par with an electron. Unfortunately, the number of studies of this kind in other areas of physics is negative with a large absolute value.

See also: Is logic empirical?

По-русски: Всех отсутствующих построить в одну шеренгу

A Brief Classification of Realities

,

Under one of the possible interpretations of existence, every fiction is somebody's reality. Each time a thought crosses your mind that it would be good if that nice girl looked your way, you create a reality where exactly that happens. That reality has both past and future, and it's inhabited by people with real consciousness who have no idea that their existence is caused by someone from another world.

But if a reality spawned by someone's imagination is as existentially complete as the “real” one, how can you tell in what kind of universe you live? For those reading my blog in alternative worlds, here are some tips; though they won't give a definite answer, in many cases they help rule out improbable options. So what isn't your reality?

  • If your speech doesn't rhyme, you're not a hero of a poem.
  • If you have no horse, you're not in a western.
  • If you say something funny and don't hear any laughter, it's not a sitcom.
  • If there is crime, poverty, corruption in your country, you're not in pre-election promises.
  • If you have genitals, you're not in a children's book.
  • If you can see anybody who isn't sexually attractive, you're not in someone's erotic fantasy.
  • If you have at least one pimple, you're not in a commercial.
  • If your mouth takes intermediate positions between completely open and completely closed when you speak, you're not an anime character.
  • If neither you nor your relatives are famous, you're most likely not in a newspaper hoax.
  • If you work at least sometimes, you're hardly a character in a Latin American TV series.
  • If your or your friends' names don't begin with the first three or four letters of the alphabet, you're not in a cryptography book.
  • If there are people with the same first name around you, it's quite unlikely that you are a character in fiction or cinema at all.
По-русски: Краткий определитель реальностей

Barest Necessity

, , ,

It's well known that while the population of the planet grows, the total IQ stays the same. This applies to Internet users, too. As the number of users grows, the average intelligence plummets, and the software has to adapt. Let's continue the trend into the future and imagine what the browser will be like in, say, 2030. Increase this if you're optimistic, decrease if you're pessimistic.

(Close) (Back) Flickr: art (Reload) // Flickr loves you // (Google | lolcatz (103 000)) (Flickr) (LiveJournal | bradfitz) (Gmail | 14) (Opera Software) (eBay) (facebook) (YouTube)

After numerous improvements aimed at achieving user-friendliness, the browser has become as simple as it can be. It has no menus (neither main nor context), no toolbars with many buttons, no sidebars, no status bar, no dialog windows with settings. All of this was too complex for most users anyway, and scared the poor average Joe away from computers. The future browser will hardly be do a tenth of what today's browsers can do, but it will finally be usable by everyone. Speaking about visual appearance, shadows and rounded corners will still be in fashion. Thanks to the lack of any text in the interface, the browser doesn't need translation.

A browser ships with the operating system, an operating system ships with the computer. A regular user has no reason to change any of these, so the only choice among competing products that he makes is when buying a computer. This choice determines both the operating system and the browser. The browser doesn't even have a name because it's not a separately marketed product. The browser window lacks a title bar because nobody cares about the name of the program. The only button pertaining to the window itself is the red close button, and even that one looks superfluous. The window always has standard size, and web pages are usually designed for that size. Saving of pages and images as well as opening of local files is accomplished by dragging between the browser and the file manager, and printing is done by dragging to the printer.

At the top of the window is a universal field that combines an address bar, a security indicator, a window title bar and a search field. The URL is technical information uninteresting to the user; they only care on what website and what page they are. The website name is automatically verified through its certificate. The only security indication is the color of this bar: green means OK, red means problem. The user can't be expected to know about SSL or domain names, and judging whether the web page is safe enough has to be the browser's job. When it's unsafe, the main working area turns red as well because it's not easy to draw the user's attention. When the bar is clicked, it becomes white and empty, and the user can type in it. The text is always looked up in the search engine (the one with which the browser vendor has made an agreement). If an eccentric user types a URL (where would he get one in the first place?), it will work, too.

To the left of the universal field is the Back button. Its size makes it easy to find. To the right there's a button that changes its function. Usually it's Reload, but during loading it turns into a Stop button (red “No entry” sign), and while typing in the bar it's Go (green right arrow). There's no progress indicator. Instead, while the page is loading, the incomplete document isn't rendered, and the main area displays a “loading” animation instead. It's better to not render incomplete documents because their strange behavior confuses users. Fortunately, thanks to future technologies, loading will rarely take long. There are no scrollbars, either; to scroll, one grabs any part of the page that isn't a link and drags. To find text within the current page, it's enough to start typing.

The bottom part of the window contains eight slots replacing both tabs and bookmarks. Technically they're closer to tabs: each of the eight slots is like a separate browser window with its own navigation history. Clicking a slot activates it, dragging reorders, and dragging a link to an inactive slot opens the link in that slot. The active slot is marked with a contour as well as with the arrow-like shape of the main area. There are always eight slots, you can't add or remove one. A regular user doesn't need more than eight, and the controls for adding, removing and scrolling them would add unnecessary complexity. On the first start, the slots are filled with recommended popular websites, and on subsequent starts they keep their content as well as navigation history. This way, they also replace bookmarks: you can simply keep a frequently visited website in one of the slots.

For the future user, pictures are so much better than text, that's why the slots display website logos. For older websites, heuristics will be used to detect where the logo is on the page, while modern sites will be able to take advantage of the new API. The API will allow the page to tell the browser what exactly should be shown in the slot, and even update that dynamically. In the figure, Google shows the search text and the number of hits, LiveJournal shows the name of the user whose journal is open, and Gmail shows the number of unread messages; the latter keeps updating even in an inactive slot.

The split percent users who aren't satisfied with this functionality will be part of a community going further and further away from the mass market. They will have their own browsers and operating systems. Some of those who develop web services for the mass market will be parts of that community, but most webmasters will use rapid visual development tools close in spirit to the “folk's” browser.

The Russian version of this entry (see link below) features a poll. I have included English translations in the poll and encourage all readers to participate. You'll need to register a free LiveJournal account to vote.

По-русски: Минимум необходимого

Business Household Tips

,

The web is full of tips for job candidates on how to write a decent resumé, how to behave in an interview and so on. On the other hand, there's a clear lack of advice for employers looking for good candidates. Here I'm making up for this lack basing on my recent experience from dealing with HR departments of various companies.

  • Healthy competition never harms business. It's only better if two of your HR managers make a go at the same candidate independently of each other.
  • Big companies often hire a staffing agency, and the biggest ones might want to hire several to help each other.
  • A conveyor is the best form of labor management. The better you manage to divide the hiring process into elementary operations and assign them to different people, the more candidates you'll be able to put through the production line in a unit of time.
  • There's no point in storing of the information you can always get from the candidate. Ask them for their full name, address and telephone number every time you need these.
  • Everybody wants to work for you, though not everyone realizes it yet. If you look for prospective candidates and approach them, always ask them to send you a copy of the CV you've found on their personal website, and inquire about why they want to work for your company.
  • Never miss a chance to approach an employee of your competitor. In the end, it's them, not you, who are bound with those non-compete clauses.
  • If you're in USA and arranging a phone interview with a European, write something like 03/04 12pm PST. Everyone knows that the day comes after the month, and that PST stands for Pacific Standard Time.
  • Engineers' work time is too valuable to have them conduct phone interviews. It's enough if an engineer prepares a list of questions with correct answers for the HR employees.
  • Always include a “tricky question” in your phone interviews. Collections of such questions you can easily find on the web.
  • If your teams have fixed interview schedules, assign candidates to teams basing on which interview comes next.
  • If possible, invite a European candidate to your American office, and the other way round.
  • Write an ultimate, ideal letter to a candidate and use it in all cases. Provide for all possibilities ranging from accepting a student for summer practice to enticing a superstar from a competitor. Start with “Dear Sir (Madam)”.
  • Ultimately, replace all your human HR managers with robots. Machines never eat, sleep or make mistakes, and some are even able to reproduce without going on maternity leave.

По-русски: Хозяйке предприятия на заметку

Three Levels of Multidimensional Insanity

, ,

When a programmer has nothing better to do, or he just needs an exercise for the brain, he starts having these weird ideas. Like Esoteric programming languages.

All our boring programs are grossly one-dimensional. The memory is linear, the stack is sequential, the program is transcribed in a serialized form. Even things that are naturally two-dimensional, such as the on-screen picture, are reduced to linear for computer processing. The idea of taking programming beyond the one-dimensional space isn't new and has already generated a whole family of esoteric programming languages called fungeoids after the first of the kind, Befunge. The common feature of these languages is transcription of the program as a two-dimensional matrix containing the operation codes. The interpreter moves proceeds from one cell to another in one of the several possible directions. This way, a loop in Befunge can indeed have a loopy look. Some of these languages use memory registers isolated from the program storage space and are addressed by one-dimensional indices; others use the Von Neumann architecture and store data in the same two-dimensional memory as the code, which also creates interesting possibilities for writing self-modifying programs.

The reader might ask why anyone would need any of it, whether someone indeed has nothing better to do, and what kind of mild drugs the author uses, so I'll have to answer. No particular reason. Simply put, it's for fun. Hey, ask some solid scientists specializing in pure mathematics why they have to study objects like… well, not just an algebra, and not even en algebra of algebræ, but an nth order algebra, an algebra of algebræ of algrebræ… n times. I suppose their elaborate answers can be effectively reduced to something like: “Hey, it's fun!” So is an esoteric programming language fun. It's an original joke, and a complicated mathematical abstraction to study, and a puzzle. Taking something to the point of absurdity is fun in itself, so today I've taken it to my hand to carry the idea of multidimensional programming to absurdity. Let's do it in three nonsensical steps. I'll be writing about the two-dimensional case, but it's trivial (?) to generalize for the case of n dimensions.

First level. Here lie the “arrow programming” languages of the fungeoid family. The memory is two-dimensional. In a more interesting variation, the memory is shared between code and data. On this level, each memory cell stores an ordinary number, such as one byte. Let's call the data unit stored in one cell a word, as in traditional computing. Two-dimensional memory uses two-dimensional addresses, such as (i, j). The current instruction pointer (IP) also looks like this. Most fungeoids allow to change the direction in which IP is incremented to one of the four ways, but it's not necessary for Turing completeness: a single direction and a conditional jump to a two-dimensional address is enough. However, the changeable direction of execution flow is the fungeoids' zest which makes programming in them especially unlike the traditional and allows transcribing of loops as rings and linear programs as spirals. Two-dimensional memory organization inspires thoughts of measurement units such as square kilobytes (Kb2), makes you think about what the operating system should do when it gets a request to allocate a wide memory block while only tall and narrow areas are available, and gives rise to an interesting problem of defragmentation of rectangular files in two-dimensional mass storage. The compiler could optimize code not only for speed but also for the area taken, and storage of raster images would be natural as never before. Finally, programming languages can be described by two-dimensional grammars specified in BNF2.

Second level. Unlike the first level represented by numerous fungeoids, I've never encountered anything that would fit my second or third level. In the second level, something strange happens to the very numbers: they are not simple bytes anymore but rather complex values. Addressing a cell of the two-dimensional memory becomes natural. Addition and subtraction are straightforward, multiplication and division are slightly more complicated, and there is a new operation: complex conjugation. One could even go further and say that the cells contain two-dimensional matrices of bits. For example, a word can be comprised of 16 square bits (4×4), which, of course, spawns a new set of arithmetical operations. With regular addition, the overflow bits are carried in one direction — to the left; with two-dimensional addition, bits can be carried both to the left and up. This makes at least two types of addition and subtraction. Shifts and rotations can be done in four instead of two directions, and new operations are possible, such as turns and transposition. When multiplying, shifts are made in both directions. It's not obvious, though, how a two-dimensional word should be interpreted as a regular number for purposes of addressing and counting. Speaking of data exchange in networks, instead of two possible bit orders (little-endian or big-endian) we get eight equally reasonable ways to serialize a word.

Third level. At the third level of absurdity, time becomes two-dimensional. Who cares that it doesn't apply to our Universe? The model is interesting anyway. A moment of time is described with two variables (t, u) rather than one. With regard to a single moment, there isn't just something that happens before or after; there are some moments to the right from this moment in time, some below, and some both to the right and below. The causality spreads in both directions, and what happens in a moment of time is a consequence of both what happened to the left and above in time. Clock frequency is measured in square Hertz, and the state of the machine at clock (t, u) is derived from its states at clocks (t – 1, u) and (t, u – 1). The program stored in the two-dimensional memory runs both horizontally and vertically. In the next clock by t the CPU proceeds to the command to the right of the current, and in the next clock by u it moves to the command below. A bicyclic algorithm can have toroidal topology. In a square second, a communication channel can be used to transfer a number of square bits, therefore the throughput is measured traditionally, in bits per second. The task of optimizing the speed of an algorithm can be defined more accurately: which of the time dimensions is more important to optimize.

Fourth level. If someone comes up with a fourth level to complement the three above, I'd like to discuss it with you before they come to take both of us away.

По-русски: Три уровня многомерного безумия

Bug Reports of the New Millennium

,

Japan aims to create 3D TV that would allow people to view high-definition images in 3D from any angle, in addition to being able to touch and smell the objects

While you're waiting, just think of all the bug reports the developers of this technology are getting right now from their QA. Such as:

Bug #8654534: Roses in test scene 21 smell onion
Bug #8654535: Cannot feel window glass with fingertips
Bug #8654536: After sneezing, sound disappears
Bug #8654537: Toilet paper perceived as too heavy
Bug #8654538: When trying to drink from the faucet, water does not flow
Bug #8654539: [feature] Smell intensity adjustment needed
Bug #8654540: [security] Test scene 50 has holes in the floor
Bug #8654541: After switching scenes, smells from old scene persist
Bug #8654542: [release notes] Fragments of broken glass cause pain in fingers
Bug #8654543: Cannot tear paper by hand when there is writing on it
Bug #8654544: [feature] Vaporizing liquids must increase perceived humidity
Bug #8654545: Very low performance in scenes with multiple PVC layers
Bug #8654546: Can't feel electrcity by touching battery terminals with tongue
Bug #8654547: Stack overflow error in front of the mirror in test scene 44
Bug #8654548: Adding salt to water does not change its taste
Bug #8654549: Books on shelves in test scene 75 have wrong Cyrillic encoding
Bug #8654550: Debug warnings when clapping hands
Bug #8654551: [security] Non-admin can walk through brick walls
Bug #8654552: Segfault when trying to bite barbed wire
Bug #8654553: Snow in test scene 12 feels hot
Bug #8654554: [release notes] Jumping off a moving car causes a crash
Bug #8654555: Cannot eat more than one sandwich in test scene 64
Bug #8654556: All strings on the guitar in test scene 57 make the same sound
Bug #8654557: [top-bayan] Cannabis plant in test scene 18 is not real

По-русски: Bug Reports of the New Millennium

Let us Consider a Spherical Horse in a Vacuum

,

Note: This entry is based on a joke well known in Russia; here is the English version of it that I could find.

  • A spherical horse has absolutely black body.
  • A spherical horse breathes ideal gas.
  • The neighing of a spherical horse is a simple harmonic and spreads without dispersion.
  • A spherical horse pastures in uniform fields.
  • When a spherical horse prances, its trajectory is parabolic.
  • The hooves of a spherical horse come into elastic collisions with a flat horizontal surface.
  • A spherical horse has a non-zero probability to get out of a potential well it has fallen into.
  • Mounting a spherical horse involves finding the saddle point. The resistance of the horse in this case is negligible.
  • Looking from an infinitely remote stand, a spherical horse appears as a point mass.
  • You can't comb the hair on a spherical horse.
UPDATE: The ideas have been used for an article in the Russian edition of Uncyclopedia.

По-русски: «На сегодняшний день у нас есть только модель победы сферического коня в вакууме»