Виртуальная песочница (тм)

Monday, December 8, 2008

Глобальное потепление?

В тот год осеняя погода
Стояла долго на дворе.
Зимы ждала, ждала природа,
Снег выпал только в январе,
На третье в ночь.

А.С. Пушкин
Глобальное потепление, говорите? Read more...

Описание алгоритма смотри в тетрадке у Чуня

Одна большая компания по разработке программного обеспечения купила другую компанию со всеми их наработками. Когда стали разбираться в коде новой компании, то выяснилось, что большая часть написана китайцами, а добил их комментарий перед злобной реализацией некого алгоритма на несколько страниц: "описание алгоритма смотри в тетрадке у Чуня". Где тот Чунь было уже неясно. :) Read more...

Tuesday, October 21, 2008

Latvijas Universitātes Raksti

Latvijas Universitātes Raksti
Navigācija: no galvenās lapas pa vienu no ceļiem uz "LU Akadēmiskā apgāda" lapu:
* Interesentiem | Apgāds
* Pētniecība | LU Akadēmiskais apgāds |
un tad
* Izdevumi | Izdotie LU raksti Read more...

Tuesday, October 14, 2008

"Когда есть прототип - это и хорошо, и плохо. Хорошо при решении простых задач. Плохо при решении сложных задач, ибо создаёт психологическую инерцию. И хорошо при решении любых задач для человека, вооружённого методами анализа системы, выявления и разрешения противоречия. Отрицание признаков прототипа,приводящих к нежелательному эффекту - это опора в зыбком пространстве неопределённости, это трамплин для броска через барьеры к правильному решению." Read more...

Список литературы по руководству проектами

1. ... [to be continued] Read more...

Список литературы по тестированию программного обеспечения

1. Glenford J. Myers. "The Art of Software Testing".
2. James A. Whittaker. "How to Break Software: A Practical Guide to Testing".
3. ... [to be continued] Read more...

Friday, October 10, 2008

Список обязательной литературы по программированию

1. Фредерик П. Брукс. Мифический человеко-месяц (Essays on Software Engineering).
2. Дональд Кнут. Искусство программирования.
3. ... [to be continued] Read more...

Saturday, October 4, 2008

Как запомнить расположение планет в Солнечной системе

Всем известны фразы для запоминания расположения цветов в радуге:
1) "Каждый охотник желает знать, где сидит фазан",
2) "Как однажды Жан-звонарь головой разбил фонарь",
Но не всем известна фраза для запоминания расположения планет в Солнечной системе:
"Можно вылететь за Марс, ювелирно свернув у нашей планеты". Read more...

Friday, September 26, 2008

Ask Dan: What's with the 3Gb memory barrier?

You can install at least 4Gb of memory on most motherboards today, but apparently you shouldn't install more than 3Gb if you're not running a 64-bit operating system.

Why?

Can't a 32-bit version of Windows (or Linux, or whatever) address 4,294,967,296 bytes (two to the power of 32) of memory, by definition?

When I open Task Manager and click the Performance tab, I see the memory limit is way more than 4Gb. I understand that includes the swap file, but if Windows can handle 8Gb or whatever of total memory including swap, why can't it handle 4Gb of physical RAM?

Steve

The executive summary: Yes, a plain PC running a 32-bit operating system - and if you're wondering if that includes your PC, then it almost definitely does - shouldn't have more than 3Gb of RAM (as I mentioned in passing in this Ask Dan), if you don't want to waste quite a lot of the last gigabyte.

If you install 4Gb, there is no way to make all of the RAM between 3Gb and 4Gb available without installing a 64-bit OS, which you can't do unless you have a 64-bit CPU. And even then it won't necessarily work.

So, to avoid hassles on current systems, it's best to stick with 3Gb or less.

(Note that the precipitate drop in RAM prices, particularly DDR2 memory, means that you might as well buy 4Gb for a DDR2 PC these days; the price difference is likely to be trivial, even if you buy a pair of 2Gb modules. Just don't expect most of the fourth gigabyte to be accessible.)

Fortunately, this isn't a big problem for most people, provided they know about it in advance. Three gigs is enough for even quite serious applications, and it's easy to install on most motherboards (two 1Gb modules, two 512Mb ones). And very nearly all of that three gigabytes will actually be seen by the system.

(The reason why not quite all of even three gigabytes is usable is related to the 4Gb problem, as we'll see.)

If you want to push the envelope, many new PCs these days are able to run a 64-bit operating system. 64-bit processors used to be weird server-class stuff, but ordinary desktop processors from the AMD Athlon 64 and Intel Core 2 onward (and even late model P4s) can run in 64-bit mode.

You have to get a separate version of Windows XP if you want the 64-bit edition, and it probably won't help much with memory limits anyway, as I'll explain in due course. But all of the retail versions of Windows Vista come with both 32 and 64-bit installers.

(Well, OK, except for the horribly crippled "Starter" edition of Vista, which isn't sold in most countries. And you probably don't actually get the 64-bit install disc, but instead have to send away to Microsoft and pay for shipping to have the thing you've already bought sent to you.)

Most PC users, though, are still using 32-bit versions of Windows (or Linux, or whatever). Then, you'll have the same "3Gb barrier" problems no matter what processor you have.

To understand why this is, you've got to go back. Way back. Back to the horrible old days of DOS and the 640 kilobyte barrier.

Back when PC users only had sixteen-bit operating systems, everybody was wrestling with the memory below the first megabyte line. That was partly because memory was expensive enough that installing whole megabytes of it was a grandiose fantasy, but it was mainly because of limitations that grew out of the cut-price IBM 8086 CPU's mere 20 memory address lines.

Two to the power of 20 bytes is one lousy megabyte. And that was the grand total memory address space available to the original PC.

A 1Mb memory limit was no big deal at the time, since only very rich people could possibly afford that much RAM, and you couldn't install more than 640 kilobytes in an early PC anyway.

The combination of the 640k maximum system memory and the one megabyte address limit, though, led to a design decision to use the memory addresses between 640 kilobytes and 1Mb as an input/output dumping ground for other hardware in the computer.

Your old PC's graphics adapter, for instance, had memory on it in which it held the data for whatever was on the screen at the time, and the computer's CPU needed to be able to read and write that memory. So each flavour of graphics adapter was assigned a portion of the 640-to-1024-kilobyte "Upper Memory Area" space as its own, and reads and writes to those addresses did stuff to the graphics adapter's memory. This process is called "memory mapped input/output", or MMIO.

This trick was all very well with computers like the original IBM PC, but when people started making PCs that could have more than 640 kilobytes of system memory, that system memory grew up into the addresses reserved for various other hardware. Now new workarounds had to be found if you wanted to find that last few kilobytes to run productivity software or games, and it all became very traumatising and hideous.

I apologise to any readers who have now remembered things that cause them to rock back and forth and mumble.

Let's fast-forward to the current era. For many years, it's been normal for personal computers to include a Memory Management Unit (MMU). MMUs were expensive add-ons for old computers, but modern CPUs all have one built in. A primary function of an MMU is to allow a computer to have "virtual memory", which in the PC world means "swapping" or "paging" data in and out of however much actual RAM you have as needed, keeping the swapped-out data in a file, or files, on hard drives.

Virtual memory is what allows your PC to have more than 4Gb of total memory, including the swap file(s). Memory management lets the computer augment its physical RAM, and lets programs running on that computer feel as if they've each got a simple solid space of memory available to them without treading on each others' toes. But virtual memory doesn't increase the amount of physical RAM you can have.

The explanation for the three-to-four-gigabyte problems is that modern computers include an arrangement conceptually similar to the old Upper Memory Area one. Many of the original Upper Memory Area MMIO reserved areas still exist today (for backward-compatibility reasons - otherwise you couldn't install DOS on a new PC), and a few more little ones sprouted above 1Mb as PCs went through their growing pains. Those are preserved today as well.

For this reason, a modern "3Gb" computer, which has 3,145,728 kilobytes of physical memory, is only likely to show something like 3,145,192 kilobytes available (look at the Performance tab in the Windows Task Manager, for instance). MMIO ranges "shadow" some of the physical memory, and so the system can't even see that RAM, at the hardware level.

3,145,728 minus 3,145,192 is only a shortfall of 536 kilobytes, though. So this 3Gb computer gives you 99.983% of the memory you paid for. Install more expansion cards in the computer, each of which is likely to eat some MMIO space for itself, and you'll lose a bit more memory. But you'll have to try pretty hard to lose even one whole megabyte.

I, for one, am OK with that.

But things get worse above 3Gb.

Large areas of the memory between three and four gigabytes are cordoned off for system devices in exactly the same way that chunks of the Upper Memory Area were purloined in the old days. Once again, the processor (and other system components) can talk with some devices by reading and writing memory addresses up above 3Gb.

The difference is the size of the reserved areas.

Windows memory allocations

Windows users can see all of the reserved memory areas on their PC in Device Manager, using the View -> Resources By Connection option. This is what that view looks like for the PC I'm using now.

The addresses are all in hexadecimal, which makes it less than instantly obvious to the untutored viewer which reserved areas are tiny (and usually old) and which large (and all relatively new). Spend the time to figure it out, though, and you can see the old backward-compatibility stuff and the new 3Gb-barrier stuff, plain as day.

Hex addresses A0000 to BFFFF, for instance, are still assigned to the video card (a GeForce 7800 GT, in this case). That's addresses 655360 to 786431 in decimal, 640 kilobytes to 768k. This is the old 128 kilobyte reservation for the monochrome, CGA and EGA graphics buffers, still there in case you find your old Leisure Suit Larry disk and want to see if it works.

In the above picture, though, you'll see a much more considerable reservation from C0000000 to CFFFFFFF, that's also assigned to my video card. That's 268,435,456 bytes, equal to the 256 megabytes of memory on the card, and it's the chunk of memory addresses that system devices use when they want to access the card's memory.

If I had a video card with 512Mb or 768Mb of memory on it, it'd take up even more space in the 3Gb-to-4Gb memory map.

And if I were still using an AGP graphics card, there'd be another block of memory reserved for the AGP aperture, used when devices on other buses in the computer want to talk to a graphics card on the AGP bus. I've got a PCIe graphics card, though, which sits on the same bus as all of the other stuff and so doesn't need an aperture.

(If you've got a computer with one of those cheap graphics adapters that uses system memory instead of having RAM of its own, it will of course eat some of your RAM no matter how much you've got installed.)

Power users with a hankerin' for dual graphics cards may be experiencing something of a sinking feeling, at this juncture. Yes, the 256Mb reserved for my little old graphics card means exactly what you think it means: Those two 768Mb graphics cards you can totally justify buying will eat one point five gigabytes of your 32-bit memory map all by themselves, cutting you down to a 2.5Gb ceiling before you even take the other reservations into account.

This also explains why 1Gb graphics cards haven't hit the consumer market yet. Nobody yet needs anything like that much memory on one card for any desktop computer purpose, but some people would still be very happy to pay for such a card just for the pose value. It'd eat the whole of the fourth gigabyte of their system memory, though. And then they'd probably demand their money back.

(This fact has apparently not stopped certain unscrupulous companies, coughDellcough, from allowing people to buy a computer with WinXP, 4Gb of RAM, and a pair of Nvidia's oddball 1Gb GeForce 7950 GX2 cards. Result: 56.25% of the installed memory absent without leave. You might as well have only bought 2Gb.)

As with the Upper Memory Area problem, the 3-4Gb space must have seemed stratospherically far away when people first started buying $15,000 80386 PCs. But here we are running into it, and the result is not pretty.

That was then, this is now. 64-bit CPUs are widely available, and 64-bit OSes are starting to trickle into the mainstream market. The nightmare will, with any luck, soon be over.

A 64-bit PC running a 64-bit OS has a truly vast basic memory address space. The 4Gb 32-bit address space was 4096 times the size of the 1Mb 20-bit space, but the 64-bit address space is 4,294,967,296 times the size of the 32-bit one.

(Actual 64-bit PCs so far aren't actually able to address anything like that much memory, for reasons analogous to the restricted addressing of the old 8086; essentially, fewer memory address lines make for a cheaper computer. But even the most restrictive current x86-64 computer and operating system combinations can still address at least 2 to the power of 44 bits, which is 16,384 gigabytes. That ought to be enough for quite a while.)

By default, an all-64-bit PC will still have the standard big holes in its memory from three to four gigabytes. This is the lowest-hassle way to deal with the problem - just install more than 4Gb of memory, and live with the fact that your 8Gb PC with a 768Mb graphics card only actually has seven-point-not-much gigabytes of visible RAM.

One advantage of this is that you can still boot a 32-bit OS, if you want to. Another is that this vanilla configuration is most likely to actually work. Cleverer memory configurations aren't necessarily properly supported by hardware, operating systems and device drivers yet.

If you don't care about these factors, though, there are two ways to get the lost memory back.

Some 64-bit motherboards these days give you an option for "memory hole remapping". That moves the fourth-gigabyte MMIO memory holes higher into the 64-bit address space, probably way above the maximum RAM you can physically install.

Many other 64-bit boards, though, are even smarter, and can leave the memory holes where they are and remap (at least some of) the physical RAM out from under the holes and up past 4Gb. This process is often entertainingly referred to as "memory hoisting", and it used to be the preserve of server motherboards. It's been showing up in more and more desktop mobos, though. And on some of them, the memory-hoisting BIOS setting even works, and doesn't horribly crash the system as soon as something tries to use the remapped RAM.

You may only be able to "hoist" the last 512Mb of the 4Gb address space, but that's better than nothing. If it works.

I should add a note about the /3GB, /4GT and /PAE Windows boot.ini switches, too, because they often come up when people are talking about 4Gb-plus Windows PCs.

They are all useless to you. You do not want them.

/3GB and /4GT are config settings for different versions of Windows that tell the operating system to change the partitioning of the 4Gb 32-bit address space so that applications can use 3Gb and the OS kernel only 1Gb, as opposed to the standard 2Gb-each arrangement. They don't help at all with the 3Gb barrier, and most applications don't even notice them, so desktop users lose kernel memory space (and system performance) for no actual gain at all.

The /PAE boot.ini switch, on NT-descended Windows flavours, activates the Physical Address Extension mode that's existed in every PC CPU since the Pentium Pro. PAE can also be enabled by the /NoExecute entry in boot.ini, which turns on support for the NX bit which you probably also don't actually want.

PAE mode, in its proper form, cranks the memory address space up to 64 gigabytes (two to the power of 36). The computer can then give a 4Gb addressing block within that space - or even more, with extra tricks - to each of several applications.

PAE's no good to the everyday 3Gb-problem-afflicted user, though, for two reasons.

First, it presents 64-bit addresses to drivers, and thus causes exactly the same compatibility problems as a proper 64-bit operating system. Except worse, because now you need PAE-aware drivers for 32-bit Windows, instead of plain 64-bit drivers for a 64-bit OS.

From a normal user's point of view, PAE gives you the incompatibility of a 64-bit operating system when you're still running a 32-bit OS.

For this reason, Microsoft changed the behaviour of the /PAE option in almost all versions of WinXP as of Service Pack 2. They fixed the endless driver problems by, essentially, making /PAE in XP not do anything to addressing. All versions of WinXP except for the x64 Edition now have a hard 4Gb addressing limit, no matter what hardware you use them on and what configuration you choose. All PAE does in those versions of Windows is activate NoExecute support, which, once again, you probably don't want.

This isn't a big problem, of course, since XP is not meant to be a server operating system. But it's still mystifying to people who try the /PAE flag and can't figure out why it doesn't work.

Oh, and just in case you for some reason still wanted to try PAE: It eats CPU time, too.

(You can read more about boot.ini switches as they pertain to memory and driver breakage on Microsoft's page for driver developers, here.)

Overall

As things stand at the moment (June 2007), the sensible course of action for the vast majority of Windows users buying a new PC is to get a standard 32-bit WinXP system with at most 3Gb of memory. It'll come as close to Just Working as Windows ever does, and you'll be able to use as close to all of the installed RAM as makes no difference, if you don't go totally crazy with your video card choice.

(It's now the end of January, 2008, and I'm giving this article a bit of a polish. DDR2 RAM is now so cheap that if your PC takes that kind of memory, you might as well buy 4Gb. You still won't get much more actual usable RAM that way, but two 2Gb modules may actually cost you less than two 1Gb and two 512Mb modules. So what the hell.)

If you insist on buying Vista version 1.0, it's still not a bad idea to stick with 3Gb of RAM and use the 32-bit installation option, because 64-bit Vista needs 64-bit drivers. 64-bit drivers are not necessarily fully cooked, or even available, for the hardware you want to use. Many 32-bit XP drivers work in 32-bit Vista (subject to the limitations I explained back in the first Ask Dan), but no 32-bit XP drivers work in 64-bit Vista.

(If you've got 4Gb of RAM, by the way, the Vista installer may not work anyway. You can work around that problem, if you have it, by pulling some of the RAM while you install Vista, then putting it back. Apparently Microsoft limit the maximum available memory in 32-bit Vista to 3120Mb anyway, though, so it's hardly worth the trouble of buying more.)

It won't be long before 64-bit Vista becomes a sensible proposition for people who want a PC with 4Gb or more RAM. Right now, though, there's very little point to it for normal users.

Yes, if you install 8Gb of RAM (the artificially-limited maximum for Vista Home Basic; Home Premium can take 16Gb) in 64-bit Vista, you'll be able to use more than 7Gb of that RAM, no matter what. But unless you're using 64-bit workstation/server applications (not just Photoshop), or multitasking a whole lot of big 32-bit apps, or running multiple virtual computers on your one physical one, then the extra memory will only give you a small performance gain.

Small enough that if someone steals half of your memory, you may well not notice.

Date: 4 June 2007.
Last modified 03-Aug-2008.

Read more...

Oracle выпускает собственные серверы

Корпорация Oracle впервые за свою историю выходит на рынок аппаратного обеспечения. Первыми продуктами компании стали два сервера, разработанные совместно с HP. Используемый в них принцип параллельной обработки запросов позволяет решить главную проблему систем хранения данных (СХД) - значительно увеличить пропускную способность, утверждают в Oracle.

О выходе на рынок серверов на конференции Oracle OpenWorld в Сан-Франциско заявил главный исполнительный директор компании Ларри Эллисон (Larry Ellison). Разработкой систем Oracle занималась вместе с компанией Hewlett-Packard. Первые представленные продукты получили названия HP Oracle Database Machine и HP Oracle Exadata Storage Servers.

На их создание ушло 3 года, и еще год – на тестирование у ключевых клиентов, включая Google.

HP Oracle Database Machine включает 8 серверов с жесткими дисками общей емкостью 168 ТБ. Система имеет 64 вычислительных ядра Intel и пропускную способность 14 ГБ/с, работает под управлением операционной системы Oracle Enterprise Linux. Ее стоимость составляет $650 тыс.

Второй продукт – HP Oracle Exadata Storage Server – являющийся составной частью Database Machine, может быть приобретен отдельно теми предприятиями, которым необходимо расширение существующей системы хранения данных. За основу сервера был взят HP ProLiant DL180 G. Он включает два четырехъядерных процессора Intel Xeon, 12 ТБ пространства на жестких дисках и шину InfiniBand с пропускной способностью 1 ГБ/с.

Выступая на заключительном этапе мероприятия, Эллисон рассказал об одной из наиболее существенных проблем СХД - проблеме пропускной способности. По его словам, современные системы не могут справиться с огромным объемом информации, который необходимо передавать с жестких дисков персональных компьютеров на серверы баз данных.


Ларри Эллисон лично представил публике первый сервер Oracle

"Данных становится все больше, и время на их обработку увеличивается. Имея один терабайт данных, вы заметите падение скорости работы сервера. Десять терабайт приведут к существенному замедлению", - говорит Эллисон. В серверах HP Oracle Exadata Storage Server используется принцип параллельной обработки запросов, в результате чего, по словам главы Oracle, скорость работы увеличивается в 10 и более раз.

Выпуская серверы, базирующиеся на собственном программном обеспечении, Oracle перенимает опыт Apple, которая предлагает компьютеры Macintosh с собственной операционной системой OS X. Эллисон аргументирует, что путем совмещения собственного ПО и аппаратной части в одном продукте его эффективность в целом можно существенно увеличить.

Сейчас для покупки доступна только Linux-версия решений, но в будущем будут представлены варианты и на других платформах. Несмотря на то, что производством серверов занимается HP, распространять их будет именно компания Oracle. Она же будет осуществлять техническую поддержку, в то время как HP - отвечать за запчасти.

К основным соперникам Oracle на рынке, который компания планирует занять, наблюдатели относят производителей систем хранения данных Teradata и Netezza.

Read more...

Tuesday, September 23, 2008

Логика научной работы

Логика научной работы проста:
* доклад десятиклассника: "Повседневная жизнь городских обитателей в 1905-1929 годах", 20 страниц, 5 источников;
* реферат первокурсника: "Повседневная жизнь крупных российских городов в 1914-1921 годах", 30 страниц, 15 источников;
* реферат третьекурсника: "Повседневная жизнь москвичей и петроградцев в 1914-1918 годах", 50 страниц, 35 источников;
* диплом: "Повседневная жизнь москвичей и петроградцев в 1916-1919 годах", 120 страниц, 130 источников;
* кандидатская: "Повседневная жизнь москвичей и петроградцев в 1917 году", 230 страниц, 220 источников;
* докторская: "Повседневная жизнь петроградцев в январе-ноябре 1917 года", 400 страниц, 375 источников;
* монография академика: "Интимная жизнь жены предреввоенсовета Петроградской стороны осенью 1917 года", 600 страниц, 417 источников. Read more...

Friday, September 5, 2008

1 сентября, 1 класс. Учительница говорит:
- Дети, вы пришли в школу. Здесь нужно сидеть тихо, а если что-то хотите спросить - нужно поднять руку. Вовочка тянет руку.
Учительница:
- Ты что-то хочешь спросить, Вовочка?
Вовочка:
- Нет, просто проверяю, как работает система. Read more...

Tuesday, September 2, 2008

DRY Principle

Don't repeat yourself Read more...

Thursday, August 28, 2008

Build Plain in the Air

"In a sense, this is what we do. We build your digital business even while you're up and running."

Read more...

Что такое комментарии к коду?

Вопрос: Что в языке программирования подразумевается под комментариями?
Варианты ответов:
1) Слова, которые произносит программист при отладке программы
... Read more...

Imperative vs. Declarative

Забавно, но, похоже, большинство программистов, программирующих на императивных языках программирования (говорящих КАК что-то должно быть сделано), предпочитают быть управляемыми декларативными методами - т.е. получать инструкции по поводу того, ЧТО должно быть сделано, оставляя "как" на их усмотрение. Это, кстати, называется "дизайном". :) Таким образом разработчик на императивном языке является фактически (увы, несовершенным) декларативным интерфейсом к этому языку. :) Read more...

Tuesday, August 26, 2008

Links

Dačuks
Dmitry Zaharov ("Список в дорогу")
Knaģis
Mārtiņš
Vita Read more...

Thursday, August 21, 2008

"Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it." Brian W. Kernighan Read more...

Number to month name


echo form_label('Month: ');
$options = array(
'0' => 'New',
'1' => 'January',
'2' => 'February',
'3' => 'March',
'4' => 'April',
'5' => 'May',
'6' => 'June',
'7' => 'July',
'8' => 'August',
'9' => 'September',
'10' => 'October',
'11' => 'November',
'12' => 'December',
'13' => 'I'm an idiot!',
);
Read more...

Wednesday, August 20, 2008

The March of Progress

1980: C

    printf("%10.2f", x);

1988: C++
   cout << setw(10) << setprecision(2) << showpoint << x;

1996: Java
   
java.text.NumberFormat formatter
= java.text.NumberFormat.getNumberInstance();
formatter.setMinimumFractionDigits(2);
formatter.setMaximumFractionDigits(2);
String s = formatter.format(x);
for (int i = s.length(); i < 10; i++) System.out.print(' ');
System.out.print(s);

2004: Java
   System.out.printf("%10.2f", x);


[Cay Horstmann's Home Page]

Read more...

Thursday, August 14, 2008

Encoding Recipe

Q: знатоки, подскажите, как из строки типа "Привет" получить "\u0441\u043b\u0443\u0445\u0438"?
A: на C это делается так:
if (str == "Привет") str = "\u0441\u043b\u0443\u0445\u0438"; Read more...

Tuesday, August 5, 2008

Transaction management and JPA

"My current project is a web application with Struts in the web tier, a stateless session EJB (EJB3) in the middle tier and various entity pojos (JPA) that model the data. The application server is JBoss 4.2.0.CR2 that uses Hibernate as the persistence provider.

In this configuration with container-managed transactions, the transaction boundary is the EJB method call. Struts action classes make calls to the session EJB methods in order to retrieve data for display in various JSPs. The problem is that after the EJB method returns, the transaction is over, the persistence context has ended and the POJOs returned are detached. If the JSP that displays the data tries to access any lazily loaded associations an exception occurs."

Read more...

At least we all understand each other on Wednesday

http://www.unbound.ru/pict/cows.gif Read more...

Friday, August 1, 2008

"Довольный, как слон после купания"

Когда я говорю сабж, я имею в виду примерно следующее:
69,15 КБ Read more...

Monday, July 28, 2008

The Excel Monkey

Вариация известного анекдота. В оригинале первая обезьяна умела кодировать на С, вторая в дополнение знала C++, Java и OOP, а третья была project manager'ом.

A tourist went into a pet shop and started looking around. While he was doing so, a customer came in and said to the shopkeeper, "Do you have an Excel monkey?"

The shopkeeper nodded, went over to a cage, and brought out a monkey. He put it on a lead and handed it over to the customer, saying "That will be £3,000." The customer paid and walked out of the shop with the monkey.

The tourist was amazed. He went over to the shopkeeper and said, "That's a huge amount to pay for a monkey. Why on Earth was it so expensive?" The shopkeeper answered, "The monkey can write Excel spreadsheets. It's very quick, never makes mistakes, and knows all the built-in functions. If you need any spreadsheets written, it's just the thing for the job."

The tourist looked at another monkey in the cage. "This one is even more expensive. It's £5,000 — what can it do?" The shopkeeper said, "Oh, that's a Web monkey. It's an expert Web developer, can code interactive pages, handle graphic design, give presentations, everything you need."

The tourist looked around the shop a bit more, and then spotted a third monkey in a cage. The label round this one's neck read £25,000. Dumbfounded, he walked up to the shopkeeper and said: "This costs more than all the others put together! What does it do?" The shopkeeper answered, "Well, I've never actually seen it do anything useful. But the other monkeys call it an administrator."

Read more...

Sunday, June 29, 2008

Тест #2

Отвечать надо быстро.

1. Вы участвуете в соревнованиях и обогнали бегуна, занимающего вторую позицию. Какую позицию вы теперь занимаете?

Ответ: Если вы ответили, что вы теперь первый - то вы абсолютно не правы.
Вы обогнали второго бегуна и заняли его место, так что вы теперь на второй позиции.


Попробуйте не ошибиться во втором вопросе.
2. Вы обогнали последнего бегуна, на какой позиции вы теперь находитесь?

Ответ: Если вы ответили на предпоследнем - вы опять абсолютно не правы.
Подумайте. Как можно обогнать бегуна, идущего последним? Если вы бежите за ним, значит он не последний. Ответ - это невозможно. Получается, что использование мозга ваша не самая сильная сторона.


Как бы то ни было - вот еще один вопрос. Ничего не пишите и не используйте калькулятор, и помните - вы должны отвечать быстро.
Возьмите 1000. Прибавьте 40. Прибавьте еще тысячу. Прибавьте 30. Еще 1000. Плюс 20. Плюс 1000. И плюс 10. Что получилось?
Ответ 5000? Опять неверно. Правильный ответ 4100. Попробуйте пересчитать
на калькуляторе.


Сегодня точно не ваш день. Но, может быть, получится с последним вопросом.
У отца Мэри есть пять дочерей: 1. Чача 2. Чече 3. Чичи 4. Чочо.
Вопрос: Как зовут пятую дочь? Думайте быстро. Ответ чуть ниже.

Ответ: Чучу? НЕТ! Конечно, ее зовут Мэри. Прочтите еще раз вопрос.

P.S. Для того, чтобы увидеть текст после слова "ответ", выделите его мышкой.
Read more...

Тест

Вопрос 1: Как засунуть жирафа в холодильник?

Правильный ответ: Открыть холодильник, засунуть туда жирафа, закрыть холодильник

Этот вопрос позволяет выяснить, нет ли у вас склонности выискивать чересчур сложные решения для простых задач.

Вопрос 2: Как засунуть в холодильник слона?

Неправильный ответ: Открыть холодильник, засунуть туда слона, закрыть холодильник.

Правильный ответ: Открыть холодильник, вынуть оттуда жирафа, засунуть туда слона, закрыть холодильник.

Этот вопрос позволяет выяснить, способны ли вы при принятии решений учитывать последствия ваших предыдущих действий.

Вопрос 3: Лев созвал всех зверей на собрание. Явились все, кроме одного Что это за зверь?

Правильный ответ: Это слон. Он же в холодильнике, помните?

Этот вопрос проверяет вашу память.

ОК. Даже если вам не удалось правильно ответить на предыдущие три вопроса, у вас все же остался шанс показать, на что вы способны.

Вопрос 4: Вам нужно пересечь широкую реку, которая кишит крокодилами. Как вы это сделаете?

Правильный ответ: Вплавь. Ведь крокодилы-то все на собрании у льва.

Этот вопрос позволяет выяснить, способны ли вы учиться на собственных ошибках.

P.S. Для того, чтобы увидеть ответ, выделите чёрное поле мышкой. Read more...

Tuesday, June 17, 2008

Девелопера честное зерцало

Поучительныя рекомендации по обходительному и учтивому поведению на работе.

На рабочем месте
Сидеть в кресле надлежит не в раскорячку али как-нибудь вычурно избоченясь, а чинно и смирно, дабы фигурами своими казенному имуществу вреда не учинить. Руками и ногами по столу отнюдь не колобродить, чай не мизгирь какой, а человек.

Рожи корчить, языки показывать да дикие вопли издавать словно деревенский бабуин не надлежит, ибо может статься зайдет человек посторонний и об деле вашем худое подумает, а коли и на камеру сие заснимет, так и вовсе конфуз может выйти. Вести же себя следует важно и лицо иметь сосредоточенное и даже как бы умное.

На рабочем месте не жри и не пий ничего, ибо сожаления достоен муж, клавиатура и мышь коего хлебом да колбасой до краев набита аки амбар какой али погреб.

На кресле задом наперед, ногами отталкиваясь, не езди с воплями «Я креведко!», ибо так и зашибить кого-нибудь немудрено. Хорошо ежели в программиста мягкого уткнешься, а ну как начальство переедешь, али бухгалтершу хрупкую пристукнешь? Баловство это.

С программистами
Коли случится баг какой, али аппликация выполнит недопустимую операцию, не спеши гневить бога и изрыгать проклятия, желая незадачливым программистам недугов тяжких и совокуплений противоестественных. Но приметь, отчего баг приключился и как повторить его еще раз. Опосля чего немедленно пиши в учтивых выражениях отчет о наблюдениях своих и отправляй репорт программистам. Коли сеньор-программер воспитал их в страхе божием, то баг в скорости будет обнаружен и исправлен. Ежели нет, то сам изволь сходить в их смердящую багодельню, где следует начать громко топать ногами, вращать очами, брызгать слюною, а также грозить батогами и каторгой, пытаясь вселить суеверный ужас и трепет в их души. Повелителю же их не шутя пообещай накакать в его кресло, коли баг не будет исправлен в ближайшие несколько часов.

Коли видишь, что программисты ленятся, чай пьют часами в трапезной или хентай смотрят богомерзкий, немедля устыди их. Ежели дерзят, отвечают неучтиво и, вообще, вольничают, брось в них грязью. Да не смутит тебя даже то, что у этих дурных людей могут быть хорошие дети, которые любят цирк.

Ласковое слово и кошке приятно. Потому, коли видишь программистов усердных в деле своем, учтивых в словах и искусных в соколиной охоте, то примечай их и говори им слова вежливые и хвали много. Глядя на их работу, даже если не бельмеса не понимаешь, принимай вид сурьезный, понимающе кивай головой и говори, что мол, код де хорош, и написано весьма толково. Ежели программист какой особо отличился, победил баг дюже страшный или из башки сам издумал алгоритм что твой Дональд Кнут, отчего радость великая во всем отделе и гомон веселый, невозбранно и в ноги ему пасть да об ковролин головою (своею) постучать истово в знак благодарности и восхищения.

Замечено, что программисты зачастую пишут функции, которые возвращают ложь (return false по-басурмански). Негоже это. Коли приметишь, такое непотребство, немедленно учини разбирательство и потребуй, чтобы такого боле не повторялось. А коли программисты начнут нести околесицу про булевы функции и необходимость возвращения двух значений, осади их и скажи, что для двух значений ложь не нужна. Можно же взять правду и горькую правду. Пущай везде в своем коде заменят ложь на горькую правду. Только так можно получить по настоящему благодатный код.

С начальством
При появлении начальства шапку немедля долой. Даже если это шлем с рогами резинками тугими к голове пристегнутый. Сымай и все тут, в крайнем случае рога вниз опусти благочестиво.

В очи начальства гляди учтиво. И как бы страшно они ни было, мертвым прикидываться не изволь. Это есть малодушие. Но и напротив, на кресле аки юла не вертись и ногами не сучи, словно закон сохранения момента импульса проверяючи. Хорошо ли будет, коли ненароком начальству тапкой в глаз заедешь, али ударишься обо что да в угол закатишься? Вестимо, конфуз может выйти.

Беседовать с начальством следует вежливо. Мнения свои преглупые держать при себе, а все больше участливо кивать головою, да поддакивать. Авось за умного сойдешь. Например: «Какой мудрости исполнены ваши слова…», «Ваша печаль отзывается в моем сердце…», «Позволь, я отрублю ему голову, повелитель!». А не как некоторые: «Бу-го-га, начальнег!» или «Оставь меня, не то я скормлю твою печень муравьям!». Выраженья подобные оставь, ибо, говоря так, лишь прослывешь глупцом и невежей.

На вечеринках
На ассамблеи мануфактурные лучше благочестивому отроку вовсе не ходить. Ибо коли там совсем не пить, то скучно, а коли пить, так потом конфуза не оберешься. Только и разговору после сего, как кто начальству мордасы набил, да кто на кого поблевал, да как девицы из маркетинга на столах голые плясали. Страмота одна.

Заключительное слово
Коли будешь придерживаться указанных правил, то достигнешь великого и до начальников своих возвысишься, а возможно и превзойдешь их. На обед будешь получать личное блюдо изысканной работы доверху усыпанное рахат-лукумом и колбасой. А приносить его будет прекрасноокая дева в радующих взор одеждах, да не одна а с подругами-балалаечницами в сарафанах да кокошниках, которые весь обед будут услаждать слух твой сладкозвучными песнями о великих героях, славных победах и большом адронном коллайдере.

Read more...

Haiku Error Messages

Three things are certain:
Death, taxes, and lost data.

Guess which has occurred.

Everything is gone;
Your life's work has been destroyed.

Squeeze trigger (yes/no)?

Windows NT crashed.
I am the Blue Screen of Death.

No one hears your screams.


Seeing my great fault

Through darkening blue windows

I begin again


The code was willing,

It considered your request,

But the chips were weak.


Printer not ready.

Could be a fatal error.

Have a pen handy?


A file that big?

It might be very useful.

But now it is gone.

Errors have occurred.
We won't tell you where or why.

Lazy programmers.


Server's poor response

Not quick enough for browser.

Timed out, plum blossom.


Chaos reigns within.

Reflect, repent, and reboot.

Order shall return.


Login incorrect.

Only perfect spellers may

enter this system.

This site has been moved.
We'd tell you where, but then we'd

have to delete you.

Wind catches lily
Scatt'ring petals to the wind:

Segmentation fault

ABORTED effort:
Close all that you have.

You ask way too much.

First snow, then silence.
This thousand dollar screen dies

so beautifully.

With searching comes loss
and the presence of absence:

"My Novel" not found.


The Tao that is seen

Is not the true Tao, until

You bring fresh toner.


The Web site you seek

cannot be located but

endless others exist


Stay the patient course

Of little worth is your ire

The network is down

A crash reduces
your expensive computer

to a simple stone.

There is a chasm
of carbon and silicon

the software can't bridge

Yesterday it worked
Today it is not working

Windows is like that


To have no errors

Would be life without meaning

No struggle, no joy


You step in the stream,

but the water has moved on.

This page is not here.


No keyboard present

Hit F1 to continue

Zen engineering?


Hal, open the file

Hal, open the damn file, Hal

open the, please Hal


Out of memory.

We wish to hold the whole sky,

But we never will.

Having been erased,
The document you're seeking

Must now be retyped.

The ten thousand things
How long do any persist?

Netscape, too, has gone.


Rather than a beep

Or a rude error message,

These words: "File not found."

Serious error.
All shortcuts have disappeared

Screen. Mind. Both are blank.

Read more...

Inklish Signs

In a Tokyo Hotel:
Is forbitten to steal hotel towels please. If you are not person to do such thing is please not to read notis.

In another Japanese hotel room:
Please to bathe inside the tub.

In a Bucharest hotel lobby:
The lift is being fixed for the next day. During that time we regret that you will be unbearable.

In a Leipzig elevator:
Do not enter the lift backwards, and only when lit up.

In a Belgrade hotel elevator:
To move the cabin, push button for wishing floor. If the cabin should enter more persons, each one should press a number of wishing floor. Driving is then going alphabetically by national order.

In a Paris hotel elevator:
Please leave your values at the front desk.

In a hotel in Athens:
Visitors are expected to complain at the office between the hours of 9 and 11 A.M. daily.

In a Yugoslavian hotel:
The flattening of underwear with pleasure is the job of the chambermaid.

In a Japanese hotel:
You are invited to take advantage of the chambermaid.

In the lobby of a Moscow hotel across from a Russian Orthodox monastery:
You are welcome to visit the cemetery where famous Russian and Soviet composers, artists, and writers are buried daily except Thursday.

In an Austrian hotel catering to skiers:
Not to perambulate the corridors in the hours of repose in the boots of ascension.

On the menu of a Swiss restaurant:
Our wines leave you nothing to hope for.

On the menu of a Polish hotel:
Salad a firm's own make; limpid red beet soup with cheesy dumplings in the form of a finger; roasted duck let loose; beef rashers beaten up in the country people's fashion.

In a Hong Kong supermarket:
For your convenience, we recommend courteous, efficient self-service.

Outside a Hong Kong tailor shop:
Ladies may have a fit upstairs.

In a Rhodes tailor shop:
Order your summers suit. Because is big rush we will execute customers in strict rotation.

Similarly, from the Soviet Weekly:
There will be a Moscow Exhibition of Aets by 15,000 Soviet Republic painters and sculptors. These were executed over the past two years.

In an East African newspaper:
A new swimming pool is rapidly taking shape since the contractors have thrown in the bulk of their workers.

In a Vienna hotel:
In case of fire, do your utmost to alarm the hotel porter.

A sign posted in Germany's Black Forest:
It is strictly forbidden on our black forest camping site that people of different sex, for instance, men and women, live together in one tent unless they are married with each other for that purpose.

In a Zurich hotel:
Because of the impropriety of entertaining guests of the opposite sex in the bedroom, it is suggested that the lobby be used for this purpose.

In an advertisement by a Hong Kong dentist:
Teeth extracted by the latest Methodists.

A translated sentence from a Russian chess book:
A lot of water has been passed under the bridge since this variation has been played.

In a Rome laundry:
Ladies, leave your clothes here and spend the afternoon having a good time.

In a Czechoslovakian tourist agency:
Take one of our horse-driven city tours -- we guarantee no miscarriages.

Advertisement for donkey rides in Thailand:
Would you like to ride on your own ass?

On the faucet in a Finnish washroom:
To stop the drip, turn cock to right.

In the window of a Swedish furrier:
Fur coats made for ladies from their own skin.

On the box of a clockwork toy made in Hong Kong:
Guaranteed to work throughout its useful life.

Detour sign in Kyushi, Japan: Stop:
Drive Sideways.

In a Swiss mountain inn:
Special today -- no ice cream.

In a Bangkok temple:
It is forbidden to enter a woman even a foreigner if dressed as a man.

In a Tokyo bar:
Special cocktails for the ladies with nuts.

In a Copenhagen airline ticket office:
We take your bags and send them in all directions.

On the door of a Moscow hotel room:
If this is your first visit to the USSR, you are welcome to it.

In a Norwegian cocktail lounge:
Ladies are requested not to have children in the bar.

At a Budapest zoo:
Please do not feed the animals. If you have any suitable food, give it to the guard on duty.

In the office of a Roman doctor:
Specialist in women and other diseases.

In an Acapulco hotel:
The manager has personally passed all the water served here.

In a Tokyo shop:
Our nylons cost more than common, but you'll find they are best in the long run.

From a Japanese information booklet about using a hotel air conditioner:
Cooles and Heates: If you want just condition of warm in your room, please control yourself.

From a brochure of a car rental firm in Tokyo:
When passenger of foot heave in sight, tootle the horn. Trumpet him melodiously at first, but if he still obstacles your passage then tootle him with vigor.

Two signs from a Majorcan shop entrance:
- English well talking.
- Here speeching American.

Read more...

Tuesday, June 10, 2008

Recursive grep

This tip is for grepping a pattern even in the sub-directories of a particular directory in addition to the files in the current directory. Since grep -R <> <> is not available on all flavors, this can be really helpful. The command is as follows:

find -name | xargs grep

The arguments are self-explanatory. The output of find will be xarg'ed to the input of grep and these will be searched for searchstring.

Read more...

Monday, June 9, 2008

принятие решений, неопределённость, принятие решений в условиях неопределённости, нечёткая логика, система поддержки принятия решений (СППР) Read more...

Friday, June 6, 2008

Patterns

Law of Demeter Read more...

Monday, June 2, 2008

Ваш броузер не поддерживает JavaScript

else document.write("Your web-browser does not support JavaScript"); Read more...

Friday, May 23, 2008

The Hello World Collection

По традиции первой программой, которую пишет программист на новом для него языке программирования, является "Hello, World!" И уже потом программист пишет свой текстовый редактор, свой файловый менеджер, свой "Тетрис". Некоторые увлекаются и пишут свой компилятор и свою операционную систему. Read more...

Drug Dealers vs. Software Developers

Drug dealersSoftware developers
Refer to their clients as "users".Refer to their clients as "users".
"The first one's free!""Download a free trial version..."
Have important South-East Asian connections (to help move the stuff).
Have important South-East Asian connections (to help debug the code).
Strange jargon: "Stick," "Rock," "Dime bag," "E". Strange jargon: "SCSI," "RTFM," "Java," "ISDN".
Realize that there's tons of cash in the 14 to 25-year-old market. Realize that there's tons of cash in the 14 to 25-year-old market.
Job is assisted by the industry's producing newer, more potent mixes. Job is assisted by industry's producing newer, faster machines.
Often seen in the company of pimps and hustlers.Often seen in the company of marketing people and venture capitalists.
Their product causes unhealthy addictions.DOOM. Quake. SimCity. Duke Nukem3D. 'Nuff said.'
Do your job well, and you can sleep with sexy movie stars who depend on you.Oh well...
Read more...

Man vs. Woman -- Comparisons

1. A man will pay $2 for a $1 item he wants. A woman will pay $1 for a
$2 item that she doesn't want.
2. A woman worries about the future until she gets a husband. A man
never worries about the future until he gets a wife.
3. A successful man is one who makes more money that his wife can
spend. A successful woman is one who can find such a man.
4. To be happy with a man you must understand him a lot and love him a
little. To be happy with a woman you must love her a lot & not try
to understand her at all.
5. Married men live longer than single men, but married men are a lot
more willing to die.
6. Any married man should forget his mistakes, there's no use in two
people remembering the same thing.
7. Men wake up as good-looking as they went to bed. Women somehow
deteriorate during the night.
8. A woman marries a man expecting he will change, but he doesn't. A
man marries a woman expecting that she won't change, and she does.
9. A woman has the last word in any argument. Anything a man says
after that is the beginning of a new argument.
10.There are 2 times when a man doesn't understand a woman - before
marriage and after marriage
. Read more...

Things that are annoying

1. Leave the copy machine set to reduce 200%, extra dark.
2. Sit in your yard pointing a hair dryer at passing cars to see if they slow down.
3. Repeatedly specify that your drive-through order is "to go".
4. If you have a glass eye, tap on it with your pen while talking to others.
5. Sing along at the opera.
6. Insist on keeping your car windshield wipers running in all weather conditions.
7. Reply to everything that someone says with "that's what YOU think."
8. Practice making fax and modem noises.
9. Highlight irrelevant material in scientific papers and "cc" them to your boss.
10. Make beeping noises when a large person backs up.
11. Finish all your sentences with the words, "in accordance with prophesy."
12. Signal that a conversation is over by clamping your hands over your ears.
13. Disassemble your pen and "accidentally" flip the cartridge across the room...
every 10 minutes or so.
14. Holler random numbers across the room while someone is counting.
15. Adjust the tint on your TV so that all the people are green and insist that you
like it that way.
16. Staple papers in the middle of the page.
17. Publicly investigate how slowly you can make a croaking noise.
18. Honk and wave to strangers.
19. Decline to be seated at a restaurant and simply eat their complimentary mints by
the cash register.
20. TYPE ONLY IN UPPER CASE.
21. type only in lower case.
22. don t use any punctuation either
23. Buy a large quantity of orange traffic cones and reroute whole streets.
24. Repeat the following conversation a dozen times:
"Do you hear that?"
"What?"
"Never mind, it's gone now."
25. As much as possible, skip rather than walk.
26. Try playing the William Tell Overture (The Lone Ranger Theme) by tapping on
the bottom of your chin. When nearly done, announce, "no, wait, I messed it
up", and repeat the whole thing.
27. Ask people what gender they are.
28. While making presentations, occasionally bob your head like a parakeet.
29. In the memo field of all your checks, write, 'for sensual massage'.
30. Stamp on little plastic ketchup packets.
31. Go to a poetry recital and after each reading ask why the poem doesn't rhyme.
32. Ask your co-workers mysterious questions and then scribble the answers in a
notebook. Mutter something about 'psychological profiles'.
33. Tell your friends 4 days prior that you can't attend their party because you're
not in the mood.
34. Send this list to everyone in your e-mail address book even if they sent it to you
or ask you not to send things like this!
Read more...

Understanding Computer Technology

Read more...

Как разархивировать tar.Z файлы под Windows?

При помощи Universal Extractor. Read more...

Wednesday, May 14, 2008

MS SQL's equivalent of Oracle's "DESCRIBE"

SELECT
column_name
, data_type +
COALESCE(
'(' + CAST(character_maximum_length AS VARCHAR) + ')'
, '(' + CAST(numeric_precision AS VARCHAR) + ')'
, ''
)
, column_default
, is_nullable
FROM
information_schema.columns
WHERE
table_name = 'tablename';

Read more...

Thursday, April 17, 2008

Tuesday, April 15, 2008

Краткий курс рекламы: основные понятия

Что такое: прямой маркетинг, реклама, пиар, черный пиар, узнаваемый брэнд, торговое представительство, техническая поддержка, лизинг, директ-мейл, демпинг, сетевой маркетин, позиционирование, торговая марка, франчайзинг, рекламация, тендер, дебиторская задолженность, распространение пресс-релиза, сезонная распродажа, форс-мажор, оптовая скидка, недобросовестная реклама, "крыша", МММ, работа с регионами, креативный подход, протекционизм, промышленный шпионаж, акционерное общество, государственные субсидии, валовый национальный продукт, аутсорсинг, отмывание капитала, бартер, спам? Словарь для девушек.

Hа вечеринке ты видишь симпатичного парня. Ты подходишь к нему и говоришь: "Со мной классно в постели".
- Это прямой маркетинг

Ты пришла на вечеринку с друзьями и видишь симпатичного парня. Один из твоих друзей подходит к нему и говорит: "С ней классно в постели".
- Это реклама

Hа вечеринке ты видишь симпатичного парня. Ты поднимаешься и поправляешь платье, подходишь к нему и наливаешь ему напиток. Ты говоришь: "Позвольте" и подходишь к нему ближе, чтобы поправить ему галстук, и, одновременно, касаешься грудью его руки, а потом говоришь: "Кстати, со мной классно в постели".
- Это ПиаР

На вечеринке ты видишь симпатичного парня. Путем хитрых махинаций ты устраиваешь грязную склоку между присутствующими девушками, а сама остаешься в стороне. Когда все передерутся, ты говоришь "пойдем отсюда! кстати, со мной классно в постели!"
- Это черный пиар

Hа вечеринке ты видишь симпатичного парня. Он подходит к тебе и говорит: "Я слышал, с тобой классно в постели".
- Это узнаваемый брэнд

Hа вечеринке ты видишь симпатичного парня. Ты уговариваешь его пойти с твоей подругой.
- Это торговое представительство

Твоя подруга не удовлетворяет его, поэтому он звонит тебе.
- Это техническая поддержка

На вечеринке ты видишь симпатичного парня, подходишь к нему и говоришь: "Помнишь, как тебе было классно в постели со Светкой? Это я ее научила. Пойдем со мной".
- Это лизинг

На вечеринке ты видишь несколько симпатичных парней. Ты всем им пишешь записки о том, как с тобой будет классно в постели.
- Это директ-мейл

Ты приходишь на вечеринку, а там куча красивых девиц. Ты приспускаешь бретельку и говоришь: "Со мной круто в постели и шоколада с шампанским не надо!"
- Это демпинг

Ты приходишь на вечеринку и говоришь "Со мной круто в постели, и ты будешь моим пятым парнем за этот вечер"
- Это сетевой маркетинг

Hа вечеринке ты сразу громко заявляешь - "Кто интересуется как я в постели, - за мной!" и уводишь их на другую вечеринку.
- Это позиционирование

Hа вечеринку ты вообще не пошла, но все там говорят только о том, как ты хороша в постели.
- Это раскрученная торговая марка

Ты пришла на вечеринку с друзьями и видишь симпатичного парня. Подходишь к нему и говоришь, что тебя зовут Светка. Все знают как хорошо в постеле со Светкой. При этом Светка знает, что ты выдала себя за неё. За это Светка получает шоколадку.
- Это франчайзинг

Ты пришла на вечеринку с друзьями и видишь симпатичного парня. Подходишь к нему и говоришь, что с тобой классно в постели. Уходишь с ним. Утром он говорит, что не совсем доволен тобой.
- Это рекламация

Ты пришла на вечеринку с подругами и вы видите симпатичного парня. Каждая из вас рассказывает как круто с ней в постели и что она за это хочет получить.
- Это тендер

Ты пришла на вечеринку с друзьями и видишь симпатичного парня. Подходишь к нему и говоришь, что с тобой классно в постели. Уходишь с ним. Утром он даёт тебе шампанское, но не даёт шоколадку.
- Это дебиторская задолженность

Ты собираешься на вечеринку, а подруга уже там и раздает записки в которых описано, как с тобой хорошо в постели.
- Это распространение пресс-релиза

Ты приходишь на Hовогоднюю вечеринку и видишь кучу красивых парней, говоришь, что переспать с тобой стоит пять шоколадок и три бутылки шампанского, к концу вечеринки надираешься в ноль, просыпаешься в постели с каким-то уродом...
- Это сезонная распродажа

Ты пришла на вечеринку с друзьями и видишь симпатичного парня. Подходишь к нему и говоришь, что с тобой классно в постели. Уходишь с ним. Приходите домой, а дома муж. Симпатяга уходит несолоно хлебавши, ты получаешь в глаз.
- Это форс-мажор

Ты приходишь на вечеринку, заявляешь, что с тобой классно в постели и стоит это три шоколадки и бутылку шампанского, но тому, кто переспит с тобой пять раз за ночь это обойдется в один шоколадный батончик...
- Это оптовая скидка

Ты приходишь на вечеринку и говоришь всем, что с тобой классно в постели... Через пару дней все парни с вечеринки встречаются в КВД.
- Это жертвы недобросовестной рекламы

Ты приходишь на вечеринку и говоришь что с тобой круто в постели. К тебе подваливает пара мощных девчат и говорят: "Мы согласны на 30% шоколада и 40% шампанского в месяц. Иначе у тебя могут возникнут проблемы!"
- Это "крыша"

Ты приходишь на вечеринку и говоришь пятерым присутствующим там парням, что если каждый из них расскажет пятерым своим корешам, что с тобой круто в постели, а те в свою очередь еще пятерым и т. д., то они поимеют тебя даром. Когда уже полстраны мечтает, как с тобой круто в постели, ты всех динамишь и скрываешься в неизвестном направлении.
- Это МММ

Ты приходишь на вечеринку, но тебя никто не хочет, одни кричат "дорого!", другие слышали от знакомых, что ты не так уж хороша в постели, третьи еще не долечились после предидущего раза... Тогда ты сваливаешь и катишь на другую вечеринку в ближайший Урюпинск... Там тебя хотят все, заваливают подарками и норовят познакомиться поближе...
- Это работа с регионами

На вечеринке ты видишь симпатичного парня. ты подходишь к нему и говоришь: "привет! знаешь, какой мне сегодня приснился сон? я лежу на шелковых простынях и просто изнемогаю от желания, а на земле не осталось ни одного мужчины! и все мои знания в области кама-сутры больше никому не нужны... вот ужас-то! что? ты хочешь взять у меня пару уроков?"
- Это креативный подход

Ты приходишь на вечеринку и заявляешь, что с тобой классно в постели, HО, тому кто угостит швейцарским шоколадом и французским шампанским, ты дашь один раз. А тому, у кого есть "Советское шампанское" и плитка "Алёнки" - два, или может даже, два с половиной раза.
- Это протекционизм

Чтобы быть лучшей, ты все время подглядываешь за подругами уеденившимися с парнями...
- Это промышленный шпионаж

Ты берешь у подруги платье и немного косметики, обещая отдать ей каждую вторую шоколадку которую заработаешь за вечер...
- Это акционерное общество

Ты уродина и тебя видеть никто не хочет. Hо Папа проплачивает вечеринку... Толпа народу и все тебя хотят...
- Это государственные субсидии

Ты пришла на вечеринку с друзьями и видишь много симпатичных парней. Ты начинаешь всем подряд рассказывать как с тобой классно в постели. Проснувшись через 2 дня в своей квартире ты видишь 18 бутылок шампанского, 27 шоколадок, 12 батончиков с начинкой и 2 неиспользованых презерватива.
- Это валовый национальный продукт

Ты приходишь на вечеринку, видишь симпатичного парня и рассказываешь, как с тобой классно в постели, и что тебе необходимы 2 бутылки шампанского и 2 шоколадки. Вы идете к тебе домой, но ты говоришь, что у тебя болит голова, и вместо тебя сексом занимается твоя подруга. За это ты ей отдаешь одну бутылку и одну шоколадку.
- Это аутсорсинг

Ты даешь за шоколадки и шампанское, после чего передаешь заработанное подруге, которая приносит все это добро к тебе домой и Вы в компании с твоим мужем выпиваете и закусываете...
- Это отмывание капитала

Приходите на вечеринку со своим парнем, видите другого классного парня, подходите к его девушке и предлагаете поменяться парнями. Она соглашается, все довольны.
- Это бартер

Ты в 5 часов утра залазишь на крышу чужого дома и орёшь на весь город - "Я хороша в постели!"
- Это спам.
Read more...

Monday, April 7, 2008

Google Tech Talk: Bryan O'Sullivan on Mercurial

[URL]
"Bryan O'Sullivan is a Senior Principal Engineer at QLogic, Inc, where he works on HPC clustering and compiler technologies. He likes to write software tools that help other engineers, and to build interesting distributed systems. He is an enthusiastic rock climber of sadly limited facility.
Mercurial is a free distributed revision control system. It focuses on conceptual simplicity, robustness, and high performance. Well-known open source projects that use Mercurial include OpenSolaris, Xen, and One Laptop Per Child. This talk presents some of the advantages of using Mercurial to manage large, fast-moving projects.
The video gives a brief overview of the techniques used to achieve, in Python, a level of performance that outshines most other revision control systems. Finally, some novel revision control techniques that take advantage of Mercurial's extensibility and high performance are introduced." [June 19, 2006] Read more...

Google Tech Talk: Linus Torvalds on git


[URL]
"Linus Torvalds visits Google to share his thoughts on git, the source control management system he created two years ago." [May 14, 2007] Read more...

RailsEnvy.com: All Ruby on Rails Commercials

Ruby on Rails vs .NET: #5, #9
Ruby on Rails vs ColdFusion: #8
Ruby on Rails vs Django: #7
Ruby on Rails vs PHP: #2, #3, #4, #6
Ruby on Rails vs Java: #1 Read more...

Wednesday, April 2, 2008

Anti-patterns

"Anti-patterns" category at Wikipedia
... Read more...

Tuesday, April 1, 2008

Ruby on Rails vs .NET - RailsEnvy.com Commercial #9


[URL]
"Gregg Pollack and Jason Seifer from RailsEnvy.com do some Ruby on Rails commercials in the same style of the Mac vs PC ads. Videos produced by Jason Hawkins of MakeFilmWork.com." [Added: October 09, 2007] Read more...

Ruby on Rails vs ColdFusion - RailsEnvy.com Commercial #8


[URL]
"Gregg Pollack and Jason Seifer from RailsEnvy.com do some Ruby on Rails commercials in the same style of the Mac vs PC ads. Videos produced by Jason Hawkins of MakeFilmWork.com." [Added: October 03, 2007] Read more...

Ruby on Rails vs Django - RailsEnvy.com Commercial #7


[URL]
"Gregg Pollack and Jason Seifer from RailsEnvy.com do some Ruby on Rails commercials in the same style of the Mac vs PC ads. Videos produced by Jason Hawkins of MakeFilmWork.com." [Added: September 10, 2007] Read more...

Ruby on Rails vs PHP - RailsEnvy.com Commercial #6


[URL]
"Gregg Pollack and Jason Seifer from RailsEnvy.com do some Ruby on Rails commercials in the same style of the Mac vs PC ads. Videos produced by Jason Hawkins of MakeFilmWork.com." [Added: August 24, 2007] Read more...

Ruby on Rails vs .NET - RailsEnvy.com Commercial #5


[URL]
"Gregg Pollack and Jason Seifer from RailsEnvy.com do some Ruby on Rails commercials in the same style of the Mac vs PC ads. Videos produced by Jason Hawkins of MakeFilmWork.com." [Added: August 23, 2007] Read more...

Ruby on Rails vs PHP - RailsEnvy.com Commercial #4


[URL]
"Gregg Pollack and Jason Seifer from RailsEnvy.com do some Ruby on Rails commercials in the same style of the Mac vs PC ads. Videos produced by Jason Hawkins of MakeFilmWork.com." [Added: May 15, 2007] Read more...

Ruby on Rails vs PHP - RailsEnvy.com Commercial #3


[URL]
"Gregg Pollack and Jason Seifer from RailsEnvy.com do some Ruby on Rails commercials in the same style of the Mac vs PC ads. Videos produced by Jason Hawkins of MakeFilmWork.com." [Added: May 15, 2007] Read more...

Ruby on Rails vs PHP - RailsEnvy.com Commercial #2


[URL]
"Gregg Pollack and Jason Seifer from RailsEnvy.com do some Ruby on Rails commercials in the same style of the Mac vs PC ads. Videos produced by Jason Hawkins of MakeFilmWork.com." [Added: May 13, 2007] Read more...

Ruby on Rails vs Java


[URL]
"Gregg Pollack and Jason Seifer from RailsEnvy.com do some Ruby on Rails commercials in the same style of the Mac vs PC ads. Videos produced by Jason Hawkins of MakeFilmWork.com." [Added: May 13, 2007] Read more...

Source Code Management Systems

Source Code Management (SCM) Systems:

Read more...

Tech Talk: Linus Torvalds on git

"Linus Torvalds visits Google to share his thoughts on git, the source control management system he created two years ago." [Added on May 14, 2007]

Read more...

"The way to succeed is to double your error rate."


Read more...

Tuesday, March 18, 2008

Confluence

Confluence - Enterprise Wiki Software. A professional wiki, written in J2EE, with enterprise features such as PDF export, page refactorings, tight email integration, RSS feeds, a full remote API...

JIRA (bug tracking, issue tracking, & project management) is also a product of Atlassian. Read more...

Онлайновые калькуляторы

FinAid Calculators Read more...

ToDo: бесплатные сервисы для управления списками дел

Tada
Remember the Milk
Todoist

Плюс мы всегда можем использовать Google Documents для этого. Read more...

Tuesday, March 11, 2008

Oracle Database Documentation Library 10g Release 2 (10.2)

@filibeto.org

Read more...

Онлайновый генератор паролей

OnlinePasswordGenerator.com Read more...

DocX to Doc Converter: *.docx -> *.doc

В Microsoft Word 2007 появился новый формат файлов - docx. Если у вас не установлен Microsoft Word 2007, то один из способов прочитать документ - конвертировать его в формат, поддерживаемый предыдущими версиями Microsoft Word. Это можно сделать, например, воспользовавшись бесплатным онлайновым сервисом ZamZar. Оригинальный файл загружается на сервер, там преобразовывается, а ссылка на результат присылается на указанный адрес электронной почты вместе с ни к чему не обязывающим приглашением зарегистрироваться. Разумеется sensitive документы таким образом преобразовывать не нужно. Read more...

Thursday, February 28, 2008

Как целесообразнее организовать время?

- Как целесообразнее организовать время при работе с источниками?
- Забыть про сериалы. Read more...

Digg

"Digg is a place for people to discover and share content from anywhere on the web. From the biggest online destinations to the most obscure blog, Digg surfaces the best stuff as voted on by our users. You won’t find editors at Digg — we’re here to provide a place where people can collectively determine the value of content and we’re changing the way people consume information online." Read more...