Как стать автором
Обновить
57
0
whitequark @whitequark

Пользователь

Отправить сообщение

Почему скруглённые углы проще для восприятия

Время на прочтение3 мин
Количество просмотров21K
В наши дни дизайнеры так часто используют скруглённые углы, что их уже можно считать индустриальным стандартом, а не модным трендом. Они встречаются не только в программах, но даже в дизайне аппаратных устройств. Что же делает их такими популярными?

Все видят эстетическую красоту скруглённых углов, но не каждый способен объяснить, откуда возникает эта красота. Ответ находится буквально в наших глазах.
Читать дальше →
Всего голосов 182: ↑142 и ↓40+102
Комментарии114

Выключение внутреннего экрана ноутбука в Lion

Время на прочтение1 мин
Количество просмотров7.4K
В Mac OS X Lion компания Apple изменила поведение макбуков при закрытии крышки с подключенным внешним монитором, это было специальное изменение, о чём можно судить из документации: support.apple.com/kb/ht3131

Это изменение полностью отменило возможность усыплять макбук простым закрытием крышки, если подключен внешний дисплей, и отключать внутренний экран. Права выбора у пользователя не осталось.

На днях на форумах Apple наконец-то появилось решение, возвращающее поведение как в Snow Leopard.
Читать дальше →
Всего голосов 41: ↑35 и ↓6+29
Комментарии28

Как распознать кракозябры?

Время на прочтение1 мин
Количество просмотров424K
В комментариях к предыдущему посту про иероглифы сказали, что хорошо бы иметь такую же блок-схему для кракозябр.

Итак, вуаля!


За источник информации была взята статья из вики. В блок-схеме «UTF-16 → CP 866» означает, что исходная кодировка была «UTF-16», а распозналась она как «CP 866».

Как всегда — кликабельно. Исходник в .docx: здесь.
Всего голосов 429: ↑418 и ↓11+407
Комментарии64

Коаны о программировании

Время на прочтение4 мин
Количество просмотров35K
От переводчика: The Codeless Code — сборник побасенок о философии программирования. Побасенки в сборнике разные — некоторые весьма кровожадные, некоторые достаточно хардкорные с технической точки зрения (родной язык автора — Java), но встречаются очень емкие. Представляю вам перевод семи наиболее полюбившихся мне историй, остальные 30+ (новые добавляются каждую неделю) можно найти на сайте.

Пустяк


Три дня и три ночи мастер не появлялся из своей кельи. На четвертый день монахи отправили послушника проведать его.

Мастер был занят созерцанием диаграммы потоков данных. Послушник узнал в ней второстепенную деталь обширной системы, поддержкой которой занимались монахи. Поклонившись, послушник поинтересовался, над чем работает мастер.

Мастер ответил: «Здесь есть изъян, и я размышляю, как лучше его исправить.»
Читать дальше →
Всего голосов 253: ↑240 и ↓13+227
Комментарии74

STM32F1xx — лечимся от ардуинозависимости вместе

Время на прочтение14 мин
Количество просмотров265K
Добрый день, уважаемые хабровчане!
После длительного перерыва, связанного с защитой дипломного проекта в Бауманке, я снова вернулся к написанию статей. Так как с недавнего времени я занялся 32-битными микроконтроллерами серии STM32F на ядре ARM Cortex-M3, об этом и пойдет мой рассказ. Мне статья поможет систематизировать знания об этих замечательных микроконтроллерах, а вам, я надеюсь, послужит одной из ступеней на пути к их использованию и развеет страхи и сомнения, которые всегда возникают после уютных 8-битных AVRок при упоминании страшных 32-битных монстров.
Итак, почему Cortex, чем же плохи АVR?
Читать дальше →
Всего голосов 159: ↑157 и ↓2+155
Комментарии65

Формирование высокоуровневых признаков с помощью широкомасштабного эксперимента по обучению без учителя

Время на прочтение5 мин
Количество просмотров25K
В статье Распознавание лиц человеческим мозгом: 19 фактов, о которых должны знать исследователи компьютерного зрения упоминался экспериментальный факт: в мозге примата имеются нейроны, селективно реагирующие на изображение морды лица (человека, обезьяны и т.п.), причем средняя задержка составляет около 120 мс. Из чего в комментарии я сделал дилетантский вывод о том, что зрительный образ обрабатывается прямым распространением сигнала, и количество слоёв нейронной сети — около 12.

Предлагаю новое экспериментальное подтверждение этого факта, опубликованное concretely нашим любимым Andrew Ng.
Читать дальше →
Всего голосов 68: ↑64 и ↓4+60
Комментарии68

Заблуждения программистов относительно времени

Время на прочтение3 мин
Количество просмотров88K
За последние пару лет я потратил много времени на дебаггинг чужих тестов. Это была интересная работа, иногда расстраивающая, но всегда поучительная. Кто-то может подумать, что в тестах нет багов, но конечно баги есть везде, и тесты не исключение.

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

На самом деле, я повидал так много заблуждений, которые оставляют след в чужих (и моих собственных) программах, что посчитал полезным составить список самых частых проблем.
Читать дальше →
Всего голосов 241: ↑218 и ↓23+195
Комментарии216

Самодельный светодиод из карбида кремния

Время на прочтение2 мин
Количество просмотров71K
Эта статья описывает процесс создания работающего самодельного светодиода. Долгое время я думал, что создание активных электронных компонентов самому c нуля — неосуществимая задумка. Как же я ошибался. Галеновый (из сульфида свинца PbS. — Прим. перев.) диодный детектор относится к эпохе зарождения радио. Светодиод появился примерно в то же время. Это моя первая (на самом деле вторая, после галена) попытка создания полупроводника.


Читать дальше →
Всего голосов 169: ↑165 и ↓4+161
Комментарии68

Визуализация графов. Метод связывания ребер

Время на прочтение7 мин
Количество просмотров57K
Иногда полезно представить граф в графической форме, так чтобы была видна структура. Можно привести десятки примеров, где это может пригодиться: визуализация иерархии классов и пакетов исходного кода какой-нибудь программы, визуализация социального графа (тот же Twitter или Facebook) или графа цитирования (какие публикации на кого ссылаются) и т.д. Но вот незадача: количество ребер в графе зачастую настолько велико, что нарисованный граф просто невозможно разобрать. Взгляните на эту картинку:



Это граф зависимостей некой программной системы. Он представляет собой дерево разбиения на пакеты (серые шарики — пакеты, белые — классы), на которое поверх наложены ребра зависимости одних классов от других. Чтобы не рисовать стрелки направления, ребра нарисованы в виде градиентных линий, где зеленый — это начало, а красный — конец ребра. Как видите, граф настолько визуально перегружен, что архитектуру программы невозможно проследить.
Под катом описание метода, решающего эту проблему.
Читать дальше →
Всего голосов 214: ↑205 и ↓9+196
Комментарии67

Применение шейдеров OpenGL в QML

Время на прочтение14 мин
Количество просмотров30K
Этот пост участвует в конкурсе „Умные телефоны за умные посты“

Данный пост посвящен применению шейдеров OpenGL вместе с элементами декларативного языка QML. Тема, на мой взгляд, является актуальной, так как в будущей версии QML 2.0 планируется широко использовать OpenGL, как backend для отрисовки графических элементов интерфейса. Написание шейдеров — тема непростая и целью данного поста является то, чтобы в первую очередь человек, прочитав её, мог сразу же что-то попробовать сделать интересное для себя и поэкспериментировать, получив, например, вот такие примеры:



В конце я приведу полезные ссылки, где Вы сможете посмотреть материал для дальнейшего, более глубокого изучения данной темы, если она конечно Вас заинтересует, и реализовать еще более интересные шейдеры, применив их вместе с элементами языка QML. Работу с шейдерами можно рассмотреть на примере различных элементов QML: ShaderEffectItem, множества классов Qt3D, так же использующих OpenGL и т.д. В данном посте я продемонстрирую несколько примеров, используя элемент ShaderEffectItem вместе с ShaderEffectSource.
Читать дальше →
Всего голосов 90: ↑79 и ↓11+68
Комментарии14

Новичкам про управление шириной канала в Linux

Время на прочтение7 мин
Количество просмотров73K
Некоторое время назад меня попросили настроить в удаленном филиале простейшую балансировку трафика. Работают они, бедолаги, через ADSL, и отправка электронных писем большого объема (сканы документов) забивает им весь обратный канал, что приводит к проблемам в работе с офисными онлайн-программами через VPN.
В качестве шлюза у них используется Linux (Fedora). До этого я пару раз видел, как подобная балансировка настраивается через ipfw на FreeBSD, а так как знаю механизм iptables достаточно хорошо, не ожидал особых проблем. Но поискав в Интернете, я был неприятно удивлен тем, что iptables мне тут совсем не помощник. И знания о порядке прохождения пакетов через его таблицы и правила мне почти не пригодятся. Нужно изучать tc из пакета iproute2.

Неожиданно для себя, я потратил два дня, для того чтобы более-менее разобраться в балансировке трафика средствами iproute2. Сначала попалась не самая лучшая для новичка статья про HTB(здесь). Различные примеры из Интернет тоже порой вводили в ступор, так как в них часто не было описания конкретных опций или смысла их применения. Поэтому я и попытался собрать полученные мною знания в одну статью, а главное описать все на доступном для новичков уровне.
Читать дальше →
Всего голосов 115: ↑109 и ↓6+103
Комментарии21

Как заставить хлам приносить пользу?

Время на прочтение20 мин
Количество просмотров31K

О чём это я?


Задачи бывают разные… Бывают простые, бывают сложные, а бывают такие, на решение которых может уйти не одна неделя и достаточное количество нервных клеток. Одной из подобных задач как можно считать разворачивание чего-то серьёзного на большом количестве слабого железа. А именно…

(Здесь и далее будет говориться о немного специфичной и оптимизированной настройке LTSP и поднятии на его основе кластера серверов).
Читать дальше →
Всего голосов 179: ↑175 и ↓4+171
Комментарии38

Как MySQL оптимизирует ORDER BY, LIMIT и DISTINCT

Время на прочтение16 мин
Количество просмотров15K
Есть задачи, которые в рамках реляционных СУБД не имеют универсальных решений и для того чтобы получить хоть какой-то приемлемый результат, приходится придумывать целый набор костылей, который ты потом гордо называешь “Архитектура”. Не так давно мне как раз встретилась именно такая.

Предположим, имеется некоторые сущности А и Б, связанные между собой по принципу One-to-Many. Количество экземпляров данных сущностей достаточно велико. При отображении сущностей для пользователя необходимо применить ряд независимых критериев, как для сущности А так и для сущности Б. Причем результатом применения критериев являются множества достаточно большой мощности — порядка нескольких миллионов записей. Критерии фильтрации и принцип сортировки задается пользователем. Как (я бы ещё спросил: Зачем им миллионы записей на одном экране? — но говорят надо) показать все это пользователю за время 0 секунд?
Решать такие задачи всегда интересно, но их решение сильно зависит от СУБД, под управлением которой крутится твоя база данных. Если у тебя в рукаве козырной туз в виде Oracle, то есть шанс, что эти костыли он подставит сам. Но спустимся на землю — у нас есть только MySQL, так что придется почитать теорию.
Далее ...
Всего голосов 115: ↑110 и ↓5+105
Комментарии18

Онлайн агрегатор операций со строками

Время на прочтение2 мин
Количество просмотров699
easydev.org

У вас часто возникает необходимость быстро конвертировать время из timestamp, ансериализовать строку и распечатать объект, узнать md5 хэш строки, кодировать ее в base64-обратно и т.д.? Конечно, для этого уже есть ряд тематических сервисов (md5.org, base64.org), которыми большинство из вас неоднократно пользовались. Обычно они выполняют только одну из функций, ибо удобнее зайти на главную, не щелкая мышкой по вкладкам вбить в большое поле на главной строку и получить результат. Под катом расскажу про свой проект easydev.org, который позволяет выполнить любую подобную операцию быстрее и удобнее, даже без использования мыши.
Читать дальше →
Всего голосов 59: ↑54 и ↓5+49
Комментарии53

Опасности обучения на Java

Время на прочтение10 мин
Количество просмотров168K
«Вы счастливчики. Мы по три месяца жили в мешках из дерюги в грязных сараях. Мы вставали в шесть утра, стирали мешки, съедали по корке чёрствого хлеба и шли работать на мельницу, по 14 часов в день, с понедельника и до воскресенья, и когда мы возвращались домой, наш папа порол нас своим ремнем»
— Летающий цирк Монти Пайтона, Четыре йоркширца


Ленивая молодёжь.

Что может быть хорошего в тяжёлой работе?

Верный признак моего старения — моё ворчание и жалобы о «современной молодёжи» и о том, как не хотят или не могут больше делать ничего сложного.
Читать дальше →
Всего голосов 186: ↑152 и ↓34+118
Комментарии259

Что снится оранжевым тележкам

Время на прочтение2 мин
Количество просмотров1.8K


Крупный интернет-магазин. Десятки миллионов наименований товаров.
Задумывались ли вы когда-нибудь как происходит сборка заказа?

Пока ребята в Гугл наполняют автобус баскетбольными шарами, подумайте о том, какую площадь должен иметь склад, чтобы разместить товарный запас amazon.com или ozon.ru. Небольшой заказ из двух книг, настольной игры и набора карандашей может собрать и работник склада, затратив на этоот 10 минут до часа — ведь то, что все наименования находятся на соседних полках никем не гарантировано.
Желающие могут проанализировать математическое ожидание среднего времени сборки заказа.

Идем дальше. Психологи тратят много ресурсов на выяснение вопросов о том, как влияет на время сборки заказа усталость оператора? Как сильно варьируется время сборки одного и того же заказа в зависимости от смены сборщиков, времени года или других «человеческих факторов»? Это та самая наука, которая по идее должна влиять на практику. Но пока наука пытается улучшить реальную жизнь, владельцы интернет магазинов стремятся сократить свои издержки и внимательно следят за интересными идеями на этом рынке. Создатели стартапа kivasystems.com решили облегчить жизнь и владельцам магазинов (снизив их издержки) и заказчикам (минимизировав количество времени и ошибок в сбборке заказов). И решение им удалось — особенно, принимая во внимание тот футуристический факт, что на складах теперь работают роботы.

Читать дальше →
Всего голосов 82: ↑69 и ↓13+56
Комментарии39

Связка rvm + Rails + Nginx + Unicorn или деплоим рельсы правильно

Время на прочтение9 мин
Количество просмотров54K
Целью данной заметки я ставлю в подробностях описать организацию сервера для Rails приложений в самой популярной на данный момент связке: rvm + Rails + Nginx + Unicorn. К написанию статьи побудило отсутствие полной пошаговой документации по этой связке, понятной не только ядреным профессионалам этой области. Далее я попытаюсь подробно, шаг за шагом, описать идеологически правильный процесс организации сервера для обслуживания нескольких Rails приложений (на примере одного) — если у вас есть абсолютная уверенность в том, что на подопытной машине никогда не будет работать более одного приложения — настройка может быть существенно короче и проще. Хочу предупредить, что тонкости, касающиеся работы приложения под высокой нагрузкой в статье не описываются, т.к. цель ставилась иная — заставить работать приложение в связке и сократить количество конфликтов с другими приложениями до минимума.
Читать дальше →
Всего голосов 68: ↑63 и ↓5+58
Комментарии135

Canvas-трансформации доступным языком

Время на прочтение3 мин
Количество просмотров52K
Доброго времени суток, хабравчане! В этой статье я подробно расскажу вам о трансформации и вращении в javascripte. Матрица трансформаций, на первый взгляд, штука непонятная и многие ею пользуются даже не осознавая, что она делает на самом деле, используя готовые значения из интернета. На MDC об этом рассказано скудненько, а информацию в английской Википедии тяжело назвать общедоступной. Постараемся разобраться в этом вместе.
Читать дальше →
Всего голосов 78: ↑77 и ↓1+76
Комментарии65

Оптимизируем процесс работы в консоли

Время на прочтение4 мин
Количество просмотров16K
Все привыкли редактировать текст в текстовых редакторах, блокнотах, веб-формах и т.д. В процессе набора текста мы пользуемся привычными стрелками, кнопками «End» и «Home», более опытные зажимают «Ctrl» и стрелками шагают по словам (что, кстати, не всегда работает). И при переходе на консоль мы ориентируемся на те же самые правила, даже не зная, что bash предлагает очень удобные средства и комбинации клавиш, которые очень упрощают работу и минимизируют количество операций для выполнения задачи. К тому же, в bash есть удобные средства работы с историей, масса различных подстановок и других интересных функций. Самые часто используемые мной и любым опытным администратором я и опишу в этой статье.
Читать дальше →
Всего голосов 256: ↑245 и ↓11+234
Комментарии76

Есть к чему стремиться, %username%

Время на прочтение1 мин
Количество просмотров1.9K


Японское усердие, усидчивость и инженерная направленность мозгов способны на многое.
В профиле youtube-юзера denha есть ещё много завораживающих видео, welcome!
Всего голосов 140: ↑122 и ↓18+104
Комментарии70
1

Информация

В рейтинге
Не участвует
Дата рождения
Зарегистрирована
Активность