понедельник, 28 октября 2013 г.

Куда исчезает место на жестком диске в Mac OS Х

Являясь счастливым обладателем MacBook Pro с SSD на 256Gb, стал замечать, что система непонятным образом «разрастается». 

Вроде бы фильмы качаются на внешний жесткий диск, на SSD находятся только рабочие файлы, а место куда-то исчезает. 
Из 256Gb со временем осталось лишь 107Gb. 

Утилита OmniDiskSweeper показывала, что должно быть занято около 70 Gb пользовательскими данными. Вопрос — куда делись еще примерно 80Gb?

Набрав в терминале
# du -h -d 1 /
увидел в корне странную папку с названием /.MobileBackups, как раз и занимающую 80Gb. 

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

Отключается все это через консоль: 
# sudo tmutil disablelocal

четверг, 24 октября 2013 г.

In Head-Hunting, Big Data May Not Be Such a Big Deal


This interview with Laszlo Bock, senior vice president of people operations at Google, was conducted and condensed by Adam Bryant.
Jim Wilson/The New York Times
GAUGING SKILLS Laszlo Bock, senior vice president for people operations at Google, says some data is essentially worthless in assessing job candidates: G.P.A.'s. for instance, except for recent college graduates, and test scores.

Corner Office

Twice a week, Adam Bryant talks with top executives about the challenges of leading and managing. In his book, "The Corner Office" (Times Books), he analyzes the broader lessons that emerge from his interviews with more than 70 leaders. Excerpt »
Q. How is Big Data being used more in the leadership and management field?
A. I think there’s been a fairly recent confluence of the ability to crunch lots of data at fairly low cost, venture capital investments that support new businesses in this field, and changes in what people expect. Leadership is a perennially difficult, immeasurable problem, so suddenly people are saying, “Maybe I can measure some piece of it.”
Part of the challenge with leadership is that it’s very driven by gut instinct in most cases — and even worse, everyone thinks they’re really good at it. The reality is that very few people are.
Years ago, we did a study to determine whether anyone atGoogle is particularly good at hiring. We looked at tens of thousands of interviews, and everyone who had done the interviews and what they scored the candidate, and how that person ultimately performed in their job. We found zero relationship. It’s a complete random mess, except for one guy who was highly predictive because he only interviewed people for a very specialized area, where he happened to be the world’s leading expert.
Q. What else has Google done in this field?
A. I have to preface the answer by saying that when we look at any data related to our people, we treat the data with great respect. Typically, we give people an option to participate in anything either confidentially or anonymously. The lesson for anyone looking at this space is that you need to construct this really powerful tent of trust in the people gathering the data and how they use it.
We’ve done some interesting things to figure out how many job candidates we should be interviewing for each position, who are better interviewers than others and what kind of attributes tend to predict success at Google. On the leadership side, we’re looking at what makes people successful leaders and how can we cultivate that.

среда, 23 октября 2013 г.

Простой нагрузочный тест с Apache JMeter

По моим наблюдениям, разработчики довольно редко делают нагрузочное тестирование сайтов и веб-приложений. И бывает так, что выставят проект в Интернет, а тут вдруг посетители начнут ходить (хабраэффект, к примеру, случился), и сайт в самый подходящий момент ложится или начинает не по-детски тормозить. 

Почему бы не избежать этих неприятностей, прогнав нагрузочный тест?

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

Под катом рассказываю, как с нуля организовать незамысловатый нагрузочный тест сайта при помощи Apache JMeter

Turn off Asp.net Custom Errors in Web.config

Some times after hosting web application on the server, we get unexpected error as shown in the below fig. But we did get the detailed message for the unexpected errror. In this article, I would like to share how can we get detailed message for the unexpected error.


Как тестировать только то что нужно.


Ручное тестирование — это кропотливый и порой рутинный процесс. Одной из проблем является то что при внесении изменений программистами в код достаточно сложно предсказать то, какие тесты следует проделать заново, чтобы убедиться, что все работает так как следует. Обычно для этого прибегают к регрессионному тестированию и повторному прогону всех тестов которые уже были проделаны. Такие операции требуют много времени. Но если вы разрабатываете свои решения на платформе .NET то у вас есть шанс значительно снизить трудозатраты тестировщиков на эти операции, потому что вы будете точно знать, какие тесты следует провести а какие нет, так как изменения в коде не затронули их поведение. Звучит заманчиво?

Инструментальная обработка кода и Test Impact.


Изменения, которые программисты вносят в код приложения, при наличии системы контроля версий и процесса непрерывной интеграции, могут быть четко идентифицированы. При этом если проводить тесты от билда к билду, то благодаря анализу информации Code Coverage ручных тестов и ее сохранению для каждого пройденного тестового плана, мы можем четко предсказать то какой тест сломался, а какие тесты вообще не затронуты изменениями, которые внесли программисты. Это на первый взгляд весьма фантастично, но тем не менее уже работает в связке с Team Foundation Server 2013 и Microsoft Test Manager 2013.

вторник, 22 октября 2013 г.

What is unit testing in software testing

Unit testing is the testing process in software testing to verify that the smallest testable part or a unit of an application, are tested independently and individually to verify that specific unit is working fine as per requirement or not.

Generally software developers have to do Unit testing when they develop smallest part of an application. After development of specific unit of an application, developer check and verify that how behaves new developed unit independently. If there is any error or bug then they have to solve it in first stage.

Here is the simple example of Unit testing

Suppose there is developed one functionality for add, edit and delete records. Now when user clicks on edit button, it proceeds for deleting the record. Then it is not right operation. It is called bug in IT industry. This mistake is done by developer during the unit's development of an application. This bug should be solved before the integration of two or multiple Units of application.

Why unittest Require?

There is one fact in software industry is bugs found during early testing phase are less cost and time consuming than bugs found during latter stage. In software testing life cycle, Unit test is the first stage means early stage than the other testing phases. So ifUnit testing is done and bugs founded and fixed during unittest phase are less time and cost consuming.

One more thing if unit test is not done and if that unit is integrated with any another unit then integration testing is not possible. Because for integration testing specific units should must work properly. That’s why unittest is compulsory for integration testing.

Selenium - Locating an element by "id" or "identifier" and "Name" element locators

First of all let me introduce you about element locators and why we need to use it. Element locators are useful to identifying GUI elements (button, link, textbox, dropdown, etc..) of HTML page. Selenium requires element locator to identify such elements to perform required action on that specific element. 

There are many different types of element locators available and we will learn all of them one by one. To identifying element's id, you need to install Firebug in your Firefox browser. Generally selenium ID records
element id during recording time. We need to identify it manually when we are editing existing script or inserting new commands manually. You can get latest version of firebug for Firefox from here. Download and install it in your Firefox browser.

Locating an element by element "Id" or "Identifier"


Selenium IDE - Understanding General Settings Of Options Window.

There are couple of advanced options available in selenium IDE like increasing timeout, attaching user extensions, attaching data file, and few other. Let describe here couple of them for your reference.

To open selenium IDE option window, Click on Options > Options from main menu. It will open option 
window as shown in bellow figure. Click on General tab.


Changing Default timeout in Selenium IDE
Look into above image, there is one text box with label "Default timeout value of recorded command in milliseconds". You can change default timeout value from that text box. By default, it will be 30000 milliseconds. Default timeout value affects on execution of selenium IDE script. Suppose you set 50000 milliseconds then during execution, every command can take maximum 50000 milliseconds for execution. If command can not complete execution in given time then selenium IDE will return error like "[error] Timed out after 30000 ms".

How To Generate Mouse Scrolling Event Using Selenium IDE With Example Tutorial

Many tutorial post are available for selenium IDE Mouse related commandsbut mouse scrolling event was missing from them till now. You need mouse scrolling event when you are testing software application like Facebook. In Facebook, post are loaded on mouse scrolling if you have seen. In this kind of scenario,
you need to generate mouse scrolling event in selenium IDE.

Let me give you an example. First of all open one page which contains vertical scroll bar(long description page) and then run bellow test case in selenium IDE.

New Test
CommandTargetValue
store40i
store0looptimes
whilestoredVars.looptimes <= 20
storeEvalselenium.browserbot.getCurrentWindow().scrollTo(0,${i})
storejavascript{storedVars.looptimes++;}
storeEval${i}+40i
endWhile


How to use "loop controller" in jmeter with example.

As you know, Apache jmeter has many logic controllers and loop controller is one of the mostly used controller in performance testing using jmeter. Apache jmeter's thread group is it self loop controller and you can read about 'Loop Count' property of thread group in my previous post. So now your question is 'If
thread group has ability to generate a loop then why require loop controller?'. Answer is - group's 'Loop Count' property forces all sub requests execution multiple time while loop controller will force only specified requests's execution multiple time. Another feature of loop controller is - Apache jmeter will force multiple execution of all sub requests of loop controller before going to next requests of thread group. Let we take one simple example.

Created sample test of apache jmeter using loop controller as bellow. If you don't know how to create test plan in jmeter then you have to read my post about apache jmeter sample test plan recording steps. Set Number of Threads (users) = 1 and Loop Count = 1 in thread group property. Added Loop Controller in between and moved 'My Account Page' HTTP request under loop controller as shown bellow.

среда, 16 октября 2013 г.

Новая 280-мегаваттная «солнечная» электростанция может работать в течение 6 часов после заката



На днях эта электростанция, получившая название Solana, успешно прошла «генеральную репетицию» после чего станцию признали пригодной для коммерческого использования. К слову, Solana (создала эту электростанцию компания Abengoa) является одной из крупнейших «солнечных» электростанций, где используются параболические зеркала. Размеры станции очень немаленькие: 3200 параболических зеркал, которые занимают 7,8 квадратных километров.

пятница, 11 октября 2013 г.

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

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

Ставим задачу
Кого ищем? Ищем эффективных бойцов. Известно, что эффективность программистов со схожим опытом может отличаться в 10 раз (Ф. Брукс) или даже в 27 раз (Р. Гласс). Сразу, оговорюсь, эффективность это не только количество трупов враговреализованных требований к ПО на единицу трудозатрат, но и умение результативно взаимодействовать с окружающими. Это важно, потому что по моим наблюдениям 50% проектных человеко-часов тратится на коммуникации. У нас это называется «синхронизация ментальных моделей».

Поэтому задача, которую ставим себе при проведении технического собеседования это постараться оценить эффективность бойца.

вторник, 8 октября 2013 г.

Новые подробности о Valve Steam Machine


Позавчера стала известна некоторая новая информация об игровой приставке Steam Machine компании Valve, касающаяся начинки перспективных устройств. Сообщается, что Steam Machine изнутри будет похожа на игровой ПК для Windows с процессором Intel Core различных модификаций, 16 Гб памяти DDR3 и гибридным диском от 1 до 8 Тб. В качестве видеокарты будет использоваться Nvidia GeForce GTX 660 в младших моделях и GTX 760/780 в более дорогих. 
Представители Valve особо подчеркивают, что Steam Machine будет собираться из стандартных компонентов, а пользователи будут иметь возможность ее апгрейдить. Наконец, последняя новость от Valve, пока в виде намека: для тех, кто не собирается покупать отдельный ПК для игр, компания готовит решение для трансляции Steam игр с компьютера в другой комнате на HD TV.

Tips & tricks for MySQL Developers. Работа с SQL

Эта статья задумана мной как сборник некоторых интересных моментов по использованию и оптимизации SQL запросов в БД MySQL, на мой взгляд, плохо освещенных в интернете. Так, из статьи вы узнаете о конструкции with rollup, и о том, как переписать подзапросы in и not in на join'ы, а так же обновление и удаление данных в нескольких таблицах — одним запросом, и многое другое. Начнем по порядку.


Переписываем подзапросы с in и not in на join'ы


Одни из самых распространённых подзапросов являются запросы с in и not in. Причём, мы знаем, что в MySQL join запросы отрабатывают быстрее за счёт эффективного построения плана выполнения запроса оптимизатором (для других БД это утверждение может быть диаметрально противоположным), поэтому попробуем переписать классические подзапросы на join. Как мы это будем делать? Для начала уясним то, что in запросы выводят все значения, которые присутствуют в обоих таблицах, а значит такому запросу будет однозначно соответствовать внутренний inner join. Запросы с not in наоборот выводят все значения, которые не присутствуют в подзапросе, а значит им уже будет соответствовать внешний outer join. Итак, начало положено, попробуем с этим что-нибудь сделать.

Для примера буду использовать тестовую БД world, которую можно взять с официального сайта mysql здесь

Угроза дефолта США вызывает опасения по всему миру

Стивен Эрланджер | The New York Times
Финансовый тупик в Вашингтоне "вызывает нервную дрожь по всему свету, от Лондона до Бали, на фоне растущей тревоги, что США могут потерпеть дефолт по своему государственному долгу, что приведет к глобальным финансовым проблемам и подрыву хрупкого экономического выздоровления во многих странах", - пишет The New York Times
Через пять лет после того, как финансовый кризис в Соединенных Штатах поспособствовал распространению глубокой мировой рецессии, политики всего мира снова опасаются побочного эффекта. На этот раз их страны могут стать жертвами не эксцессов Уолл-Стрит, но политической системы в Вашингтоне, которая, с точки зрения многих иностранных наблюдателей, похоже, больше не может функционировать эффективно, отмечает Стивен Эрланджер.
Президент США Барак Обама, оставшийся дома из-за политического кризиса, не смог присутствовать на встрече лидеров АТЭС в Индонезии в понедельник, что позволило Китаю подчеркнуть свою роль в регионе, говорится далее.
Один из участников саммита, президент России Владимир Путин выразил сочувствие к Обаме, возможно, в сардонической манере, отмечает автор. "Мы видим, что происходит сейчас во внутриполитической жизни Соединенных Штатов. И это непростая ситуация", - сказал Путин, добавив: "Я думаю, если бы я был в его положении, я бы тоже не приехал".
"Международное сообщество вопрошает: сохранили ли Соединенные Штаты волю к действию? - отметила старший научный сотрудник лондонского института Chatham House Ксения Дорманди. - И голосование по Сирии, и нынешний бюджетный кризис тревожат мир", - сказала она, имея в виду внезапное решение Обамы обратиться к Конгрессу с просьбой одобрить нанесение удара по Сирии.
Ален Фрашон, обозреватель французской газеты Le Monde, отметил: "Вашингтон больше напоминает итальянскую политическую систему, с ее постоянными кризисами, чем такую президентскую систему, как раньше".
"Люди обеспокоены потолком госдолга - достаточно совсем немногого, чтобы начать новый кризис на финансовых рынках", - считает он, указывая, что тревога царит во всей Европе. Новый финансовый спад грозит коснуться и Франции, не только Греции, Португалии и Испании, полагает Фрашон.

Интересные факты о деньгах

Невозможно заработать все деньги на свете, даже сосчитать их очень сложно. Не менее сложно собрать вместе все интересные факты и истории о деньгах, но «Моё дело» не прекратит попыток делать это — представляем вашему вниманию свежую подборку «денежных фактов».

Using Special Keys in Selenium IDE

I added special keys support to the sendKeys command in Selenium IDE v2.3.0. Not just in normal playback, but also in Webdriver playback. Along with this, I added special keys support to all the officially supported formatters for Java, Ruby, Python and C#. And also the Perl Webdriver formatter. Yes, the Perl Webdriver formatter, it exists and will be released soon. It is unofficial, but I will maintain it to the level of other officially supported formatters. Wait for it.

Нулевая скорость при полном разгоне.

К приложению, к тестированию которого сейчас прилагаются мои усилия, бесплатно прилагается ядрённый батон функционал в виде AJAX.
Отличие этой технологии не только в асинхронной передаче данных между клиентом и сервером, но и в скорости обработки кликов.
Когда по сайту кликают руки человеческие, то все местами работает хорошо. А когда кликать начинает резвый Selenium IDE, то вскорости начинаются траблы с неуспеванием подгружения данных.
Уж мы и clickAndWait используем, и жесткие паузы, и мягкие waitForTextPresent – но трабла имеет место быть.
Позавчера методом злобного от бессилия тыка обнаружилось, что если перед прогоном некоторых тест-сьютов выставлять скорость выполнения кликов в режиме середины между Fast и Slow, то дела с тестированием посредством браузера слегка налаживаются.
Вчера выяснилось, что глаз видит, да сознание забывает ограничивать эту самую скорость.
Сегодня выяснилось, что в Selenium IDE есть команда, которая самостоятельно насильно устанавливает определенную скорость выполнения скриптов – setSpeed: