Архив за 20 декабря 2014 - 4

По сообщению источника, южнокорейская компания SK hynix и японская компания Toshiba уладили вне суда спор, касавшийся технологии флэш-памяти NAND. Более того, стороны договорились о сотрудничестве.

Компания Toshiba подала в суд на SK Hynix в марте этого года, требуя взыскать с ответчика возмещение ущерба, нанесенного незаконным приобретением и использованием технической информации Toshiba, связанной с флэш-памятью NAND, которую Toshiba первой разработала в 1987 году.

Читать полностью »

Читать полностью »

Привет! Представляю вашему вниманию шестую подборку ссылок на материалы о создании контента, маркетинге и Growth Hacks.

image

Статьи на английском и видеоматериалы помечаются специальными иконками.Читать полностью »

Источник уточнил ранее опубликованную информацию о том, что анонс видеокарты Nvidia GeForce GTX 960 ожидается в начале января. Согласно новым сведениям, модель с GPU на архитектуре Maxwell, относящаяся к среднему сегменту, действительно, будет анонсирована в январе. Но случится это не в начале, а во второй половине месяца. Если уж говорить совсем точно — 22 числа.

Читать полностью »

IPv6, miredo, dynamic DNS AAAA - 1

Захотелось странного — чтоб мои IPv6-enabled (miredo) хосты еще и динамически обновляемую DNS запись имели. Поизучав вопрос выяснил, что многие распространённые dyndns сервисы или не предоставляют возможность регистрации AAAA (IPv6 эквивалент записи типа A для IPv4), или не предоставляют её бесплатно, или имеют мутные настройки динамического обновления неизвестного уровня безопасности (или вовсе http/plaintext). Перепробовал с десяток сервисов и решил остановиться на freedns.afraid.org
Плюсы:

  • Человеко-понятная админка (без всяких «купить AAAA за $0 USD»)
  • Бесплатно дают AAAA
  • Безопасное (https) обновление
  • URL-based обновление (не приходится испытывать сомнений о конфиге для агентов типа ddclient)

Читать полностью »

На сайте KickStarter успешно идет сбор средств на гарнитуру виртуальной реальности Viewbox. Особенностью изделия, которое создал Сайман Джозефсон (Simon Josefsson) из Швеции, является гибкость. В буквальном смысле. Дело в том, что материалом для Viewbox послужил неопрен — искусственный пористый каучук, хорошо знакомый любителям активного отдыха на воде и под водой, поскольку именно из него изготавливаются гидрокостюмы. Широкому кругу потребителей неопрен известен как материал, из которого изготавливаются всевозможные эластичные чехлы, в том числе, для электронных устройств.

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

Начнем с такого интересного типа, как ENUM.

mysql> CREATE TABLE enums(a ENUM('c', 'a', 'b'), b INT, KEY(a));
Query OK, 0 rows affected (0.36 sec)

mysql> INSERT INTO enums VALUES('a', 1), ('b', 1), ('c', 1);
Query OK, 3 rows affected (0.05 sec)
Records: 3  Duplicates: 0  Warnings: 0

Итак, у нас есть таблица, в ней есть два столбца. У первого, a, тип ENUM, у второго, b, INT. В таблице три строки, у всех трех значение b равно 1. Интересно, чему равны минимальный и максимальный элементы в столбце a?

mysql> SELECT MIN(a), MAX(a) FROM enums;
+--------+--------+
| MIN(a) | MAX(a) |
+--------+--------+
| c      | b      |
+--------+--------+
1 row in set (0.00 sec)

Кажется странным, было бы разумно, если бы самым маленьким был 'a', а самым большим — 'c'.
А что если выбрать минимум и максимум только среди тех строк, где b = 1? То есть, среди всех строк?

mysql> SELECT MIN(a), MAX(a) FROM enums WHERE b = 1;
+--------+--------+
| MIN(a) | MAX(a) |
+--------+--------+
| a      | c      |
+--------+--------+
1 row in set (0.00 sec)

Вот так мы заставили MySQL поменять свое мнение о том, как сравнивать поля в ENUM, просто добавив предикат.
Разгадка такого поведения заключается в том, что в первом случае MySQL использует индекс, а во втором нет. Это, конечно, не объясняет, почему MySQL сравнивает ENUMы по разному для сортировки в индексе, и при обычном сравнении.

Второй пример проще и лаконичнее:

mysql> (SELECT * FROM moo LIMIT 1) LIMIT 2;
+------+
| a    |
+------+
|    1 |
|    2 |
+------+
2 rows in set (0.00 sec)

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

Интересно, что далеко не любой SELECT в скобках сработает, в частности, UNION в скобках — это синтаксическая ошибка:

mysql> (SELECT * FROM moo UNION ALL SELECT * FROM hru) LIMIT 2;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNION ALL SELECT * FROM hru) LIMIT 2' at line 1

Еще несколько интересных примеров под катом Читать полностью »

IO — известный американский колокейшн-провайдер, который специализируется на строительстве, продаже и сдаче в аренду модульных дата-центров IO.Anywhere. Попросту говоря, занимается предоставлением помещений в машзалах своих ЦОД под размещение клиентского серверного оборудования.

ЦОД величиной с контейнер - 1Читать полностью »

Проект «Outernet» определился с тем, как они не будут цензурировать информацию - 1

Создатели «Outernet» ведут довольно-таки агрессивную PR-кампанию и, порой, делают очень громкие заявления о своих целях. Не менее агрессивно они редактируют контент на официальном сайте, когда текущие действия начинают идти в разрез с прошлыми заявлениями. В самом начале они очень сильно напирали на то, что Outernet будет доступен на любом устройстве с Wi-Fi. Немного позже они перестали на это напирать и сделали Lantern — увы, без «фонаря» (или набора из спутниковой тарелки и кучи дополнительного оборудования) Outernet «поймать» невозможно. В тот момент я обратил внимание, что начался большой упор на то, что в Outernet не будет цензуры — на официальном сайте это часто повторялось. Сейчас уже не повторяется. Настораживает одна вещь: прямо сейчас они напирают на то, что Outernet всегда будет «free». Если задуматься, в будущем всех с большой вероятностью ждёт абонентская плата за использование Outernet (хотя, и я немного позже это упомяну, уже сейчас слышны осторожные разговоры о возможном «премиум»-контенте).

Итак, подробнее о том, как в данный момент обстоят дела с цензурированием.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js