четверг, 28 января 2010 г.

Интересные задачки

 интересные задачки ( ответы ниже) ( сайт - DeveloperGuru.net )

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

1. Некоторые улитки являются горами. Все горы любят кошек.
Значит, все улитки любят кошек.
а) правильно
б) неправильно

2. Все крокодилы умеют летать. Все великаны являются крокодилами.
Значит, все великаны могут летать.
а) правильно
б) неправильно

3. Некоторые головки капусты - паровозы. Некоторые паровозы играют на рояле.
Значит, некоторые головки капусты играют на рояле.
a) правильно
б) неправильно

4. Две поляны никогда не похожи одна на другую. Сосны и ели выглядят совершенно одинаково.
Значит, сосны и ели не являются двумя полянами.
а) правильно
б) неправильно

5. Никто из людей не может стать президентом, если у него красный нос. У всех людей нос красный.
Значит, никто из людей не может стать президентом.
а) правильно
б) неправильно

6. Все вороны собирают картины. Некоторые собиратели картин сидят в птичьей клетке.
Значит, некоторые вороны сидят в птичьей клетке.
a) правильно
б) неправильно

7. Только плохие люди обманывают или крадут. Катя - хорошая.
а) Катя обманывает
б) Катя крадет
в) Катя не крадет
г) Катя обманывает и крадет
д) ни одно из вышеперечисленных

8. Все воробьи не умеют летать. У всех воробьев есть ноги.
а) без ног воробьи не могут летать
б) некоторые воробьи не имеют ног
в) все воробьи, у которых есть ноги, не могут летать
г) воробьи не могут летать, потому что у них есть ноги
д) воробьи не могут летать и у них нет ног
е) ни одно из вышеперечисленных

9. Некоторые люди - европейцы. Европейцы имеют три ноги.
а) люди с двумя ногами не являются европейцами
б) европейцы, которые являются людьми, иногда имеют три ноги
в) европейцы с двумя ногами иногда являются людьми
г)Людей не европейцев, с тремя ногами не бывает
д)Люди имеют три ноги потому что они европейцы
е)ни одно из вышеперечисленных

10. Цветы - это зеленые звери. Цветы пьют водку.
а) все зеленые звери пьют водку
б) все зеленые звери являются цветами
в) некоторые зеленые звери пьют водку
г) Зеленые звери не пьют водку
д) зеленые звери не являются цветами
е)ни одно из вышеперечисленных

11. Каждый квадрат круглый. Все квадраты красные.
а) бывают квадраты с красными углами
б) бывают квадраты с круглыми углами
в) бывают круглые красные углы
г) углы и квадраты - круглые и красные
д) ни одно из вышеперечисленных

12. Хорошие начальники падают с неба. Плохие начальники могут петь.
а) Плохие начальники летят с неба вниз.
б) Хорошие начальники, которые умеют летать - могут петь.
в) некоторые плохие начальники не могут петь.
г) некоторые хорошие начальники -плохие, так как они умеют петь.
д) ни одно из вышеперечисленных







Правильные ответы:









10в
11д
12д

вторник, 26 января 2010 г.

Thunderbird 3 memory leak

After 2 days of using Thunderbird 3.0.1 I've found a memory leak, and posted a bug to mozilla.org. So, if you also has the same visit Thunderbird 3 Memory Drainer ? to see what exactly problem do you have.
At least, you can add an additional info to bug I've posted - Thunderbird 3 - memory laeks, all add-ons are disabled

It was a really sad to experience such bug in one of my favourite mail client.
I hope, developers will fix it soon.

What is IRQL and why is it important?

What is IRQL and why is it important?: "

When people first hear the term IRQL (pronounced Er-kel) their thoughts sometimes turn to the sitcom "Family Matters" and Jaleel White's alter ego, Steve Urkel.  However, we're not going to be taking a trip down Television's Memory Lane today.  Instead we're going to talk about Interrupt Request Levels - aka IRQL's.  If you develop device drivers or spend a lot of time debugging, IRQL's are familiar territory for you.  An interrupt request level (IRQL) defines the hardware priority at which a processor operates at any given time. In the Windows Driver Model, a thread running at a low IRQL can be interrupted to run code at a higher IRQL.  The number of IRQL's and their specific values are processor-dependent.

Processes running at a higher IRQL will pre-empt a thread or interrupt running at a lower IRQL.  An IRQL of 0 means that the processor is running a normal Kernel or User mode process.  An IRQL of 1 means that the processor is running an Asynchronous Procedure Call (APC) or Page Fault.  IRQL 2 is used for deferred procedure calls (DPC) and thread scheduling.  IRQL 2 is known as the DISPATCH_LEVEL.  When a processor is running at a given IRQL, interrupts at that IRQL and lower are blocked by the processor.  Therefore, a processor currently at DISPATCH_LEVEL can only be interrupted by a request from an IRQL greater than 2.  A system will schedule all threads to run at IRQL's below DISPATCH_LEVEL - this level is also where the thread scheduler itself will run.  So if there is a thread that has an IRQL greater than 2, that thread will have exclusive use of the processor.  Since the scheduler runs at DISPATCH_LEVEL, and that interrupt level is now blocked off by the thread at a higher IRQL, the thread scheduler cannot run and schedule any other thread.  So far, this is pretty straightforward - especially when we're talking about a single processor system.

On a multi-processor system, things get a little complicated.  Since each processor can be running at a different IRQL, you could have a situation where one processor is running a driver routine (Device Interrupt Level - aka DIRQL), while another processor is running driver code at IRQL 0.  Since more than one thread could attempt to access shared data at the same time, drivers should protect the shared data by using some method of synchronization.  Drivers should use a lock that raises the IRQL to the highest level at which any code that could access the data can run.  We're not going to get too much into Locks and Deadlocks here, but for the sake of our discussion, an example would be a driver using a spin lock to protect data accessible at DISPATCH_LEVEL.  On a single processor system, raising the IRQL to DISPATCH_LEVEL or higher would have the same effect, because the raising of the IRQL prevents the interruption of the code currently executing.

That will actually wrap it up for this post.  It's a fairly short post, but hopefully you now have a basic understanding of IRQL.  Until next time ...

Additional Resources:

- CC Hameed

Share this post :
"

BHO's, Security and Shell Extensions

BHO's, Security and Shell Extensions: "

Today we're going to wrap up our overview of Browser Helper Objects with a look at BHO's and Security as well as similarities between BHO's and Shell Extensions.  If you recall from our first post on BHO's, a BHO is an extension to Internet Explorer that adds customization and functionality.  The API's used by Browser Helper objects expose hooks that allow them to access the Document Object Model (DOM) of the current page and to control navigation.  This leads to malware applications that have been created as Browser Helper Objects.

For example, the Download.ject exploit installed a BHO that would activate upon detecting a secure HTTP connection to a financial institution, record the user's keystrokes (intending to capture passwords) and transmit the information to a website used by Russian computer criminals. Other BHOs such as the MyWay Searchbar track users' browsing patterns and pass the information they record to third parties.  Although many BHO's install toolbars in Internet Explorer, there is no requirement that a BHO have a user interface.  Therefore it is possible that a user may not know that they have a malicious BHO installed on an unprotected machine. 

Since a BHO does not need permission to install additional components, malicious programs and spyware may be spread without the user's knowledge.  Since writing a BHO is fairly simple, many poorly written BHO's may harm the computer, compromise its security and may even destroy valuable data or corrupt system files.  That having been said, there are many good anti-spyware programs available that will monitor a computer for suspicious or harmful activity including BHO activity.  You can also use the Add-On manager in Internet Explorer to list which BHO's are installed and enable or disable BHO's as needed.

Let's now move on to take a look at commonalities BHO's and Shell Extensions.  Windows shell extensions are COM in-process servers that Windows Explorer loads when it is about to perform a certain action on a document - for example, displaying the context menu.  By writing a COM module that implements a few COM interfaces, it is possible to add new items to the context menu and then handle them properly.  A shell extension must also be registered in such a way that Windows Explorer can find it.  A Browser Helper Object follows the same pattern - the difference being which interfaces to implement.  Also, there is a difference in the trigger that causes a BHO to be loaded.  Despite the implementation differences, however, shell extensions and BHO's share a common nature, as the following table demonstrates.

Feature Shell Extension Browser Helper Object
Loaded By Windows Explorer Internet Explorer (and Windows Explorer for shell version 4.71 and later)
Triggered By User's action on a document of a certain class (that is, right-click) Opening of the browser's window
Unloaded When A few seconds later the reference count goes to 0 The browser window that caused it to load gets closed
Implemented as COM in-process DLL COM in-process DLL
Registration requirements Usual entries for a COM server plus other entries, depending on the type of shell extension and the document type that it will apply to Usual entries for a COM server plus one entry to qualify it as a BHO
Interfaces needed Depends on the type of the shell extension IObjectWithSite

Windows Explorer for shell version 4.71 and above includes Windows 95 and Windows NT 4.0 with Internet Explorer 4.0 with the Active Desktop Shell update release.

And that will do it for our overview of BHO's, Security and Shell Extensions.  Until next time ...

Additional Resources:

- CC Hameed

"

human resources / Собеседование — фундаментальные принципы

Очень даже интересная статья, думаю некоторые найдут в ней немного полезного.

human resources / Собеседование — фундаментальные принципы: "Извиняюсь если кому-то это покажется тривиальным. Но примеры пройденных мной собеседований, которые оказывались самой сложной задачей за время работы в фирме (я не шучу), или звонки от HR-ов через месяц-другой после отсылки резюме доказывают — большинству HR-ов и технических интервьюеров эти принципы неизвестны или непонятны. Кадровики жалуются на нехватку профессионалов, на неприязнь со стороны соискателей, и не понимают что ответ прост — их процесс отбора сотрудников в корне неправилен.



Поэтому позволю себе напомнить общественности про эти принципы. Надеюсь, после этого число сторонников светлой стороны Силы хоть немного увеличится ;)

"

Google Chrome / Chrome 4.0 Stable

Google Chrome / Chrome 4.0 Stable: "

Только что в блоге разработчиков Google сообщили, что выпущена 4я стабильная версия браузера.



Скачать online-установщик (пока только Windows — версия)



Версия 4.0 содержит:




  • Расширения (пожалуй, главное нововведение)

  • Синхронизация закладок

  • Расширенные инструменты для разработчиков

  • HTML5: Уведомления, веб базы данных, веб-сокеты, поддержка Ruby

  • Улучшение производительности v8

  • Улучшение производительности графической библиотеки Skia

  • Полное прохождение ACID3 теста благодаря вновь добавленной поддержке загружаемых шрифтов.

  • Еще безопаснее (множество исправлений + новые механизмы безопасности)

"

Влад Балин ( ака Gaperton ) - peopleware

Думаю что каждый менеджер его должен прочесть.

Практическое peopleware.
Очень интересные подходы к решению проблем. В целом - задача - сводится к решению проблемы, которую, благодаря 2-м видам подхода, можно задать по разному (и именно от этого будет зависеть ее дальнейшее решение и отношения между сотрудниками ).
В общем, советуется, как правильно ставить задачи персоналу. Рассматривается два вида тактик : Auftragstaktik и Befehlstaktik ( последняя не сильно расписсана правда).

Советую прочесть, а еще лучше - сходить на его семинар :-)

P.S. Большое спасибо Владу за такой полезный материал.