|
Какой рейтинг вас больше интересует?
|
Главная /
Каталог блоговCтраница блогера coding4.net/Записи в блоге |
AMD прекратит поддержку Android
2012-09-29 01:42:00 (читать в оригинале)
Компания AMD рассказала об отсутствии резонов продолжать обеспечение поддержки платформы Android своим процессором Hondo, поскольку убеждена в будущем широком успехе аппаратов на Windows 8.Давая интервью The Inquirer, вице-президент компании Стив Белт рассказал, что отказ AMD от дальнейшей поддержки платформы Android был вполне осознанным и обоснованным: фирма не планирует выход на новые рынки. Новость означает, что опцию выбора ОС устройства, оснащенные процессорами AMD, не будут предлагать при загрузке. Впрочем, Linux процессоры Hondo поддерживать будут (с ним, кстати, несовместимы процессоры от Intel Clover Trail).
Отметим, что такое решение имеет как положительные, так и негативные стороны для компании AMD. Среди ключевых преимуществ нужно выделить значительное сокращение процедур тестирования и сертификации новых APU, что позволит ускорить их выход на рынок. Негативной же стороной является существенное ограничение потенциального рынка сбыта, поскольку доля Android-систем постоянно возрастает.
Напомним, что APU линейки AMD Hondo должны выйти в четвертом квартале текущего года. Они созданы на основе 40-нм микроархитектуры AMD Bobcat и оснащаются максимум двумя процессорными ядрами и продуктивным графическим ядром с поддержкой выполнения инструкций DirectХ 11. При этом показатель их TDP составляет всего 4,5 Вт.
Памятка по JOIN-ам в SQL
2012-09-28 23:01:00 (читать в оригинале)По мотивам предыдущего поста:
Вопросы на собеседовании по TSQL (про JOIN-ы)
2012-09-28 21:16:00 (читать в оригинале)
Это задание было на собеседовании у одного из моих знакомых. На листочке написано содержимое двух таблиц (Т1 и Т2) и несколько запросов. Нужно написать (тоже на бумажке), что вернут эти запросы.
Таблицы:
T1:
Id Value
1 STR11
2 STR12
3 STR13
T2:
Id Value
1 STR21
3 STR23
4 STR24
Запросы:
1. SELECT * FROM [T1] LEFT JOIN [T2] ON T1.Id = T2.Id
2. SELECT * FROM [T1] RIGHT JOIN [T2] ON T1.Id = T2.Id
3. SELECT * FROM [T1] INNER JOIN [T2] ON T1.Id = T2.Id
4. SELECT * FROM [T1] FULL JOIN [T2] ON T1.Id = T2.Id
5. SELECT * FROM [T1] LEFT JOIN [T2] ON T1.Id = T2.Id AND T2.Id > 1
6. SELECT * FROM [T1] LEFT JOIN [T2] ON T1.Id = T2.Id WHERE T2.Id > 1
7. SELECT * FROM [T1] WHERE T1.Id IN (SELECT Id FROM T2)
8. SELECT * FROM [T1] WHERE T1.Id = (SELECT Id FROM T2)
А теперь запросы с ответами (тем, что вернул SQL Server, проверялось в Management Studio):
1. SELECT * FROM [T1] LEFT JOIN [T2] ON T1.Id = T2.Id
Id Value Id Value
1 STR11 1 STR21
2 STR12 NULL NULL
3 STR13 3 STR23
2. SELECT * FROM [T1] RIGHT JOIN [T2] ON T1.Id = T2.Id
Id Value Id Value
1 STR11 1 STR21
3 STR13 3 STR23
NULL NULL 4 STR24
3. SELECT * FROM [T1] INNER JOIN [T2] ON T1.Id = T2.Id
Id Value Id Value
1 STR11 1 STR21
3 STR13 3 STR23
4. SELECT * FROM [T1] FULL JOIN [T2] ON T1.Id = T2.Id
Id Value Id Value
1 STR11 1 STR21
2 STR12 NULL NULL
3 STR13 3 STR23
NULL NULL 4 STR24
5. SELECT * FROM [T1] LEFT JOIN [T2] ON T1.Id = T2.Id AND T2.Id > 1
1 STR11 NULL NULL
2 STR12 NULL NULL
3 STR13 3 STR23
6. SELECT * FROM [T1] LEFT JOIN [T2] ON T1.Id = T2.Id WHERE T2.Id > 1
Id Value Id Value
3 STR13 3 STR23
7. SELECT * FROM [T1] WHERE T1.Id IN (SELECT Id FROM T2)
1 STR11
3 STR13
8. SELECT * FROM [T1] WHERE T1.Id = (SELECT Id FROM T2)
Msg 512, Level 16, State 1, Line 23 Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
Microsoft перечислила преимущества Windows 8 для предпринимателей
2012-09-28 00:21:00 (читать в оригинале)
Недавно, в ходе конференции TechEd, прославленная компания Microsoft осветила основные плюсы новой операционной системы, которые могут быть полезны для бизнеса. В качестве преимуществ Windows 8 названы усовершенствованные характеристики ее быстродействия, улучшенная совместимость нужных для работы приложений и обновленные бизнес-функции. Вдобавок Microsoft продемонстрировала обновления для некоторых решений Microsoft Desktop Optimization Pack (MDOP). Компании получат возможность расширить набор доступных действий и удобство более безопасного использования системы Windows.
Антуан Лебленд, занимающий в Windows должность вице-президента отдела веб-сервисов, рассказал о практической готовности системы для применения ее в бизнес-среде. Windows 8 будет способна стать инструментом для ИТ-специалистов, служащих компаний, разработчиков, поскольку предоставит пользователям обширные инновационные возможности благодаря обновленной продуктивности, мобильности и безопасности. Обновления к некоторым продуктам MDOP в нынешнее время уже можно скачивать. Они обеспечивают компаниям возможности для управления приложениями, данными и настройками OC Windows. Среди обновленных версий - пакеты MBAM 2.0 и UE-V. С новой версией UE-V пользователь сможет всячески менять внешний вид рабочего стола, сохраняя привычную для себя среду работы, не изменяя никак нужные приложения или настройки системы. Система с новым продуктом настраивается автоматически, а также способна поддерживать дополнительные параметры: панель стартового меню и задач, папки; самостоятельно синхронизирует и настраивает параметры IE 8, 9 и 10.
MBAM 2.0 предоставляет компаниям новые, упрощенные методы защиты персональных данных при помощи решений BitLocker и BitLocker To Go. Новое решение на порядок снижает внушительную сложность процессов мониторинга. Но важнейшим аргументом в его пользу становится уменьшение объема затрат, необходимых для управления шифрованной средой. Таких результатов удалось достичь благодаря интеграции продукта с уже созданными системами управления. В итоге обновленная система способна помочь снизить издержки на свое использование в корпоративной среде.
Что такое прототипы (prototypes) в JavaScript-е ?
2012-09-23 01:51:00 (читать в оригинале)
Что такое прототипы в JavaScript ? Прототипы это объекты от которых другие объекты наследуют свойства. Любые объекты могут быть прототипами. Все объекты имеют прототипы по умолчанию. Так как прототипы сами по себе объекты, то каждый из прототипов имеет прототип тоже. За исключением прототипа по умолчанию, находящегося на вершине любой цепочки прототипов. Давайте вернемся немного назад. Что тfкое объект в JavaScript ? Объект в JavaScript это любая не отсортированная коллекция пар ключ-значение. Примитивные типы, такие как undefined, null, boolean, number или string не являются объектами. Мы говорили что все объекты имеют прототипы, но если мы напишем ({}).prototype мы получим undefined. Наибольшим источником путаницы о прототипах является свойство prototype. Ссылка на настоящий прототип объекта находится во внутреннем свойстве [[Prototype]]. ECMA 5 вводит стандартный стандартный доступ через Object.getPrototypeOf(object) который сейчас уже реализован в Firefox, Safari, Chrome и IE9. Также большинство браузеров (кроме IE) поддерживают не стандартный доступ через свойство __proto__. Поэтому нас постигнет неудача, если мы спросим конструктор объекта о его свойстве prototype.
var a = {};
//Fails in Opera or IE<=8
Object.getPrototypeOf(a); //[object Object]
//Fails in IE
a.__proto__; //[object Object]
//all browsers
//(but only if constructor.prototype has not been replaced and fails with Object.create)
a.constructor.prototype; //[object Object]
Это все хорошо, но почему тогда false.__proto__ возвращает значение, хотя false это примитив ? Когда у примитива запрашивается свойство prototype, то примитив приводится к объекту.
//(works in IE<=8 too, due to double-negative) false.__proto__ === Boolean(false).__proto__; //true
Если нам захочется использовать прототипы для наследования, то что мы должны сделать ? Изредка складывается ощущение, что множество прототипов относится только к одной сущности и только к ней одной. Тогда можно было бы просто добавить значение свойства прямо к сущности. Например, у нас есть объект и мы хотим добавить ему функционал объекта Array, тогда это бы выглядело так:
//fails in IE<=8
var a = {};
a.__proto__ = Array.prototype;
a.length; //0
Но реальную силу прототипов мы увидим, когда несколько экземпляров объекта разделяют один прототип. Свойства объекта прототипа, определенные однажды в нем будут унаследованы всеми объектами - потомками. Это соображение важно для производительности и поддержания. Тогда что происходит в констркторе ? Конструктор предполагает кросс-браузерный механизм присваивания прототипа объекту во время его создания. Но тогда что значит constructor.prototype ? Дело в том что JavaScript не делает различия между конструкторами и другими функциями. Так что каждая функция получает свойство prototype. Отсюда следует, что все что не является функцией, не имеет такого свойства.
//function will never be a constructor but it has a prototype property anyway
Math.max.prototype; //[object Object]
//function intended to be a constructor has a prototype too
var A = function(name) {
this.name = name;
}
A.prototype; //[object Object]
//Math is not a function so no prototype property
Math.prototype; //null
Теперь можно сформулировать определение: в свойстве функции prototype находится объект, который будет присвоен как прототип для всех экземпляров объектов созданных, когда функция используется в качестве конструктора. Здесь важно понимать, что свойство функции prototype ничего не имеет общего с ее настоящим (актуальным) прототипом.
//(example fails in IE)
var A = function(name) {
this.name = name;
}
A.prototype == A.__proto__; //false
A.__proto__ == Function.prototype; //true - A's prototype is set to its constructor's prototype property
Возможно вы видели подобное уже тысячи раз, но посмотрите еще раз, теперь с другой перспективы.
//Constructor. <em>this</em> is returned as new object and its internal [[prototype]]
//property will be set to the constructor's default prototype property
var Circle = function(radius) {
this.radius = radius;
//next line is implicit, added for illustration only
//this.__proto__ = Circle.prototype;
}
//augment Circle's default prototype property thereby augmenting the prototype of each generated instance
Circle.prototype.area = function() {
return Math.PI*this.radius*this.radius;
}
//create two instances of a circle and make each leverage the common prototype
var a = new Circle(3), b = new Circle(4);
a.area().toFixed(2); //28.27
b.area().toFixed(2); //50.27
Это все хорошо. Но если мы изменим прототип конструктора, то все существующие экземпляры объекта получат доступ к новой версии правильно ? Нет, не совсем. Если я модифицирую свойство prototype уже существующего объекта, то так и случится, потому что a.__proto__ было определено при создании указывающим на A.prototype.
var A = function(name)
{
this.name = name;
}
var a = new A('alpha');
a.name; //'alpha'
A.prototype.x = 23;
a.x; //23
Но, если я заменю свойство prototype на новый объект, то a.__proto__ будет все еще указывать на оригинальный объект.
var A = function(name) {
this.name = name;
}
var a = new A('alpha');
a.name; //'alpha'
A.prototype = {x:23};
a.x; //null
Так на что тогда похож прототип по умолчанию ? Это объект с одним свойством - конструктором.
var A = function() {};
A.prototype.constructor == A; //true
var a = new A();
a.constructor == A; //true (a's constructor property inherited from it's prototype)
Что делает выражение instanceof с прототипом ? Оно дает ответ true, если проверяемый объект входит в цепочку наследования от свойства prototype проверяемой функции, или false в другом случае. Дальше идет пример того, как замена прототипа на горячую, приводит к возвращению false выражением instanceof/
var A = function() {}
var a = new A();
a.__proto__ == A.prototype; //true - so instanceof A will return true
a instanceof A; //true;
//mess around with a's prototype
a.__proto__ = Function.prototype;
//a's prototype no longer in same prototype chain as A's prototype property
a instanceof A; //false
Так что еще могут прототипы ? Ранее я говорил, что каждый конструктор имеет свойство prototype, которое используется для присвоения прототипа, каждому создаваемому им объекту. Это работает с конструкторами таких нативных объектов как Function and String. Это дает возможность, расширяя, но не заменяя свойство prototype функции конструктора менять прототип каждого из таких объектов, добавляя нужный функционал.
String.prototype.times = function(count) {
return count < 1 ? '' : new Array(count + 1).join(this);
}
"hello!".times(3); //"hello!hello!hello!";
"please...".times(6); //"please...please...please...please...please...please..."
Механизм наследования прототипов внутренний и не явный. Когда у объекта a запрашивается для расчета свойство (функция) foo, то JavaScript идет по цепочке прототипов ( начиная с самомго объекта a) и проверяет каждую ссылку в цепочке прототипов на существование свойства foo. И если свойство находится, то оно возвращается, если нет, но возвращается undefined.
Материал взят отсюда
Категория «Радио»
Взлеты Топ 5
|
| ||
|
+40 |
47 |
Фрагменты |
|
+30 |
57 |
тот_самый_Петрович |
|
+19 |
40 |
история интерьера |
|
+1 |
27 |
Новости сайта RocketsMusic.ru |
|
+1 |
17 |
промо радио |
Падения Топ 5
|
| ||
|
-17 |
20 |
Радио ФМ Онлайн слушать бесплатно |
|
-24 |
2 |
Лучинин.net |
|
|
|
|
|
|
|
|
|
|
|
|
Популярные за сутки
Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.
взяты из открытых общедоступных источников и являются собственностью их авторов.
