1
Ода «Delete»
В рассказах Азимова искусственный разум порабощает человечество, руководствуясь законами робототехники. Дескать, иначе человечества себя погубит, чего ИИ допустить не может по своей природе (см. фильм «Я — робот»).
Раскин перефразировал первый закон робототехники следующим образом: «Компьютер не может причинить вреда данным пользователя или своим бездействием допустить, чтобы данным пользователя был причинён вред». Разработчики человеко-компьютерных интерфейсов стараются по мере сил воплотить этот закон в жизнь. А ведь этот закон также может обернуться против человечества.
Стремление разработчиков не допустить потери данных приводит к тому, что пользователя всячески ограждают от операций, влекущих безвозвратное уничтожение информации. Давайте будем хранить все вечно, лишь бы чего вдруг важного не удалить! Все версии, все письма, все черновики, все разговоры – чем больше информации мы сохраним, тем лучше! Например, Google на странице приглашения в Gmail прямо заявляет: “you'll never need to delete another message”.
Взамен современные интерфейсы предлагают нам инструменты для поиска нужной информации в тех горах шлака, которые неизбежно образуются в результате политики «мы больше ничего и никогда не удаляем». А вы верите, что полнотекстовый поиск, теги, фасетная классификация и прочие модные ныне штучки спасут нас по прошествии нескольких лет такой жизни? Какой Геракл возьмется тогда чистить эти авгиевы конюшни?
Пока еще не поздно, вспомните про спасительную кнопку Delete! Возьмите на себя ответственность за риск удаления важной информации и наведите порядок в своем цифровом хранилище! Иначе завтра это будет уже не ваше хранилище — вы просто не будете в состоянии охватить его взглядом.
Раскин перефразировал первый закон робототехники следующим образом: «Компьютер не может причинить вреда данным пользователя или своим бездействием допустить, чтобы данным пользователя был причинён вред». Разработчики человеко-компьютерных интерфейсов стараются по мере сил воплотить этот закон в жизнь. А ведь этот закон также может обернуться против человечества.
Стремление разработчиков не допустить потери данных приводит к тому, что пользователя всячески ограждают от операций, влекущих безвозвратное уничтожение информации. Давайте будем хранить все вечно, лишь бы чего вдруг важного не удалить! Все версии, все письма, все черновики, все разговоры – чем больше информации мы сохраним, тем лучше! Например, Google на странице приглашения в Gmail прямо заявляет: “you'll never need to delete another message”.
Взамен современные интерфейсы предлагают нам инструменты для поиска нужной информации в тех горах шлака, которые неизбежно образуются в результате политики «мы больше ничего и никогда не удаляем». А вы верите, что полнотекстовый поиск, теги, фасетная классификация и прочие модные ныне штучки спасут нас по прошествии нескольких лет такой жизни? Какой Геракл возьмется тогда чистить эти авгиевы конюшни?
Пока еще не поздно, вспомните про спасительную кнопку Delete! Возьмите на себя ответственность за риск удаления важной информации и наведите порядок в своем цифровом хранилище! Иначе завтра это будет уже не ваше хранилище — вы просто не будете в состоянии охватить его взглядом.
Не возможно обновить (UPDATE) ту же таблицу, которую используешь в SELECT-запросе
Сегодня наткнулся на очень неприятный баг в MySQL. При выполнении следующего запроса в MySQL 5.0.45:
Получил ошибку:
#1093 — You can't specify target table 'files' for update in FROM clause
UPDATE `files` SET `file_md5` =
(
SELECT MD5( `file_blob` )
FROM `files`
WHERE `id`= 6
)
WHERE `id` = 6
Получил ошибку:
#1093 — You can't specify target table 'files' for update in FROM clause
Типы HTTP-запросов и философия REST
Этот пост — ответ на вопрос, заданный в комментарии к одной из моих статей.
В статье я хочу рассказать, что же из себя представляют HTTP-методы GET/POST/PUT/DELETE и другие, для чего они были придуманы и как их использовать в соответствии с REST.
В статье я хочу рассказать, что же из себя представляют HTTP-методы GET/POST/PUT/DELETE и другие, для чего они были придуманы и как их использовать в соответствии с REST.
Высокий Delete или бесплатная идея производителям клавиатур
Не знаю кого как, но меня дико раздражает высокая (a.k.a. длинная) клавиша «Delete», которая вытесняет клавишу «Insert». Не столько сам он, сколько отсутствие в последнее время возможности выбрать нормальную клавиатуру с классической раскладкой.
Высокий и низкий delete? Это еще полбеды!
В блоге hardware раздавалось конструктивное негодование на тему клавиатур с высокой и низкой клавишей Delete.
В стане клавиатур с миниатюризированной «ноутбучной» раскладной все еще хуже. Намного хуже. Под катом просто две фотографии:
В стане клавиатур с миниатюризированной «ноутбучной» раскладной все еще хуже. Намного хуже. Под катом просто две фотографии:
Проблема глобального переопределения new/delete в C++/CLI
Как известно, C++ позволяет глобально переопределять операторы new и delete. Обычно такое переопределение используется для диагностики, поиска утечек памяти и более эффективного распределения памяти.
Все это мы используем в нашем крупном проекте. Однако у нас есть часть, написанная на C#, которая с помощью C++/CLI взаимодействует с основной частью на C++. И вот тут появились проблемы. У нас получались утечки памяти там, где их быть ну никак не могло.
Все это мы используем в нашем крупном проекте. Однако у нас есть часть, написанная на C#, которая с помощью C++/CLI взаимодействует с основной частью на C++. И вот тут появились проблемы. У нас получались утечки памяти там, где их быть ну никак не могло.
[C++] Всё ли мы знаем об операторах new и delete?
Sandbox
Tutorial
Привет! Ниже речь пойдет об известных всем операторах new и delete, точнее о том, о чем не пишут в книгах (по крайней мере в книгах для начинающих).
На написание данной статьи меня побудило часто встречаемое заблуждение по поводу new и delete, которое я постоянно вижу на форумах и даже(!!!) в некоторых книгах.
Все ли мы знаем, что такое на самом деле new и delete? Или только думаем, что знаем?
Эта статья поможет вам разобраться с этим (ну, а те, кто знают, могут покритиковать:))
На написание данной статьи меня побудило часто встречаемое заблуждение по поводу new и delete, которое я постоянно вижу на форумах и даже(!!!) в некоторых книгах.
Все ли мы знаем, что такое на самом деле new и delete? Или только думаем, что знаем?
Эта статья поможет вам разобраться с этим (ну, а те, кто знают, могут покритиковать:))
Google Photos не может удалять файлы с SD карты
Sandbox
Многие пользователи Android столкнулись с досадной проблемой, связанной с доступом приложений к SD карте. Одним из таких приложений является Google Фото. Когда-то всё было нормально. Но в Android 4.4 Google внедрили новую системную конфигурацию, которая запрещает приложениям писать на sd-карту. Удалять изображения через галерею, а затем снова удалять их же в google photos крайне неудобно.
Для себя я проблему решил рутованием девайса и исправлением конфигурации. Подробности на видео:
Но для обычных пользователей должно всё работать без root. О том как это осуществить я предлагаю обсудить в этой статье. Приглашаю представителей компании Google, Android разработчиков и всех интересующихся под хабракат.
Для себя я проблему решил рутованием девайса и исправлением конфигурации. Подробности на видео:
Но для обычных пользователей должно всё работать без root. О том как это осуществить я предлагаю обсудить в этой статье. Приглашаю представителей компании Google, Android разработчиков и всех интересующихся под хабракат.
Сила bash
Tutorial

В этом совершенно крошечном материале мы будем писать скрипт, который удаляет ненужные нам файлы и дирректории с компьютера. Это будет полезно тем, кто сейчас производит данные манипуляции вручную.
Kaspersky Removed an Important File, What To Do?
Tutorial
Read this article to find out what to do if an antivirus removed important files and how to recover them. What is a quarantine and how to configure exclusions for an antivirus? Learn more about causes of data loss and available effective methods to restore missing user files.


Почему в С++ массивы нужно удалять через delete[]
Заметка рассчитана на начинающих C++ программистов, которым стало интересно, почему везде твердят, что нужно использовать delete[] для массивов, но вместо внятного объяснения – просто прикрываются магическим "undefined behavior". Немного кода, несколько картинок и взгляд под капот компиляторов – всех заинтересованных прошу под кат.