Pull to refresh
Антон Малинский @Malinskiy read-only

User

Вы неправильно пишете животных

Reading time 5 min
Views 349K
Abnormal programming *Website development *Mobile applications testing *
Животные – это платформы с очень ограниченной памятью, вычислительными способностями и возможностями модификаций. Разработчикам энимал-сцены приходится выдавать практически гениальные низкоуровневые алгоритмы. Правда, большое количество хардкода вызывает характерные проблемы с отсутствием проверки в экзотических условиях. Та же фильтрация входных данных делается очень и очень криво.


Уязвимость рекурсивных алгоритмов навигации муравья: спираль смерти

Не знаю, кто писал большую часть птиц, но я хочу обратить внимание на особенность, позволяющую провести инъекцию произвольного яйца в гнездо. Дело в том, что птица проверяет только расположение и количество яиц, но не их хэши. В 20% случаев кукушка, эксплуатирующая этот баг, может внести яйцо с сохранением контрольной суммы, чего вполне достаточно для повышения прав в гнезде.

Но пойдём далее. Я не знаю, кто разрабатывал архитектуру ящериц, но они бегают в одном процессе, а дышат в другом. При этом платформа не поддерживает многозадачность, поэтому костыль с максимальной длиной бега в 4-6 секунд просто эпичен.
Читать дальше →
Total votes 442: ↑438 and ↓4 +434
Comments 350

Как я пользуюсь компьютерной техникой. Нестоллман

Reading time 3 min
Views 40K
Software Lifehacks for geeks
Translation
Прим. перев.: все это грустная ирония. И в некоторой степени пародия на Столлмана.
Я пользуюсь ноутбуком HP с установленной на нем Windows. Я точно не знаю, что за модель ноута. Он синий. Также у меня есть какой-то Galaxy, с которого я постоянно выхожу в сеть.

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

Всю свою работу я делаю в Word или PowerPoint. Это чудесные програмки. В Word я пишу письма, заметки, отчёты и делаю плакаты для моего клуба садоводства. Мне нравится Word, потому что он даёт возможность каждому почувствовать себя графическим дизайнером. Я люблю повсюду использовать WordArt — это делает мои работы особенным, выделяющимися. Благодаря презентациям PowerPoint я приковываю внимание аудитории. Мне нравится делать презентации интересными для других. Для этого я использую много разных цветов и шрифтов на каждом слайде, не забывая при этом убедиться, что слова стилизовано разбросаны среди интересных значков.
Читать дальше →
Total votes 118: ↑89 and ↓29 +60
Comments 77

Дети не умеют пользоваться компьютерами… И вот почему это должно вас беспокоить

Reading time 15 min
Views 458K
History of IT
Оригинал: http://www.coding2learn.org/blog/2013/07/29/kids-cant-use-computers/

Многобукв? Что ж, почему бы вам не посмотреть пятисекундное видео с котенком, засунувшим голову в рулон туалетной бумаги, или не прочитать 140-символьное описание блюда, которым ваш друг набил себе рот. «Ням-ням». Этот пост не для вас.

В рабочем кабинете зазвонил телефон. Это был один из школьных секретарей. Он сообщил, что пришел посетитель, которому нужно подключиться к школьной WiFi сети. Взяв iPad, я рысью бросился вниз в приемную, где увидел молодую особу двадцати с лишним лет, сидящую в кресле с MacBook-ом на коленях.

Я улыбнулся и представился, присаживаясь рядом с ней. Она молча вручила мне MacBook, и выражение ее лица сказало всё: «Почини мой компьютер, гик, и побыстрее». Меня путали с техником достаточное количество раз для уверенного распознавания этой гримасы.

— Придется поторопиться. Через 5 минут у меня урок, — сказал я.
— Вы преподаете?
— Это моя работа, просто так получилось, что также приходится управлять командой специалистов по сетям.

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

Я посмотрел на MacBook. На тот момент у меня не было опыта с OS X. Но Джобс не был идиотом, и то, что отображалось в верхнем правом углу экрана, было общеизвестным символом WiFi. Чтобы подключить устройство к сети, мне понадобилось несколько секунд.

Вручил MacBook обратно, и женщина открыла Safari. «Интернет не работает», заявила она с презрением.

Я столько раз слышал эту фразу от учеников и персонала, что у меня уже заготовлена стандартная реакция. Обычно я достаю сотовый телефон, делаю вид, что набираю номер. И подняв трубку к уху, говорю: «Да, соедините меня с офисом Президента Соединенных Штатов… НЕТ, Я НЕ МОГУ ПОДОЖДАТЬ, это чрезвычайное происшествие… Алло, Мистер Президент, боюсь у меня плохие новости. Меня только что проинформировали, что Интернет не работает».

Но я решил, что молодая женщина, наверное, не оценит сарказм, и забрал MacBook обратно, чтобы добавить настройки прокси-сервера. Без каких-либо идей, как это сделать в OS X. Прокси у нас используется, чтобы убедиться, что персонал и ученики не могут получить из школьной сети доступ к порно. Также он фильтрует насилие, экстремизм, ругательства, социальные сети, алкоголь, курение, хакерство, игры и потоковое видео. Забавно, что когда вы ищете в Google «proxy settings OSX», результаты выдачи будут заблокированы, поскольку содержат слово «proxy», а оно фильтруется.

«Вы не знаете, где здесь настройки прокси?» — спросил я с надеждой.

Ответа я не получил. С тем же успехом можно было спросить у нее «Не подскажете, как мне ретикулировать сплайны с использованием гексагональной системы декодирования, чтобы я мог создать GUI на VisualBasic и отследить IP-адрес?»

корни шутки

спасибо acherneha — прим. переводчика.


Настройки прокси я нашел и заполнил за десять секунд. Вернул ей MacBook, и она, буквально, закрыла Safari и открыла его заново, вместо того, чтобы обновить страницу. «Пасиб…». Благодарность была ошеломляющей.

Я уже уходил, когда она меня остановила. «PowerPoint не работает».

Не устали? Под катом реально много букв
Total votes 838: ↑756 and ↓82 +674
Comments 836

Безрассудное поведение

Reading time 5 min
Views 101K
Copyright
image

С увлечением крутя педали, я съехал с проселочной дороги на горячий асфальт. С пригорка открылся очаровательный вид на незнакомую усадьбу. Она была трехэтажной, зато в длину простиралась на добрую сотню метров. Фасад украшали белоснежные колонны, а крыша щетинилась направленными в разные стороны телевизионными тарелками и антеннами. По периметру располагался металлический забор с колючей проволокой.
Читать дальше →
Total votes 212: ↑146 and ↓66 +80
Comments 136

А давайте действительно заблокируем правительству доступ к сайтам?

Reading time 1 min
Views 285K
Legislation in IT
Прочитал шутку-комментарий, где предлагалось закрыть электронному правительству доступ к сайту и возник вопрос «А почему бы и нет?».
Мизуразматики каждый день рыщут в поисках сайтов, которые бы да заблокировать, при этом сами пользуются тем же самым контентом.

image
Давайте же отлучим от наших интернетов!
Читать дальше →
Total votes 395: ↑345 and ↓50 +295
Comments 347

Заземлённые указатели

Reading time 8 min
Views 52K
PVS-Studio corporate blog Website development *C++ *
pointres, gnd

Не так давно, один из сотрудников покинул наш коллектив и присоединился к компании, занимающийся разработкой программного обеспечения, связанного с встраиваемыми системами. Ничего особенного в этом нет, всегда и везде, кто-то уходит, а кто-то приходит. Всё зависит от количества плюшек, удобства и предпочтений. Интересно другое. Человек искренне переживает за состояние кода на новом месте работы, что в результате и вылилось в эту совместную статью. Тяжело, «просто программировать», когда знаешь, что такое статический анализ кода.
Читать дальше →
Total votes 112: ↑94 and ↓18 +76
Comments 140

Понимание букв

Reading time 2 min
Views 51K
Web design *Typography *
Tutorial
Translation
Для того, чтобы выбрать правильные шрифты для хорошей читабельности текста, необходимо понимать основные принципы типографики. Дьявол кроется в деталях, а главная составляющая типографики — буква.

Книга «Основы стиля в типографике» (The Elements of Typographic Style), которую стоит рекомендовать всем начинающим дизайнерам, начинается со слов:
Типографика существует, чтобы отдавать должное содержанию.

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

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

Пожалуй, самый популярный логотип, который демонстрирует «владение буквами» — это логотип FedEx, разработанный Линдоном Лидером (Lindon Leader). На первый взгляд, это обычное применение Futura Bold. Однако если присмотреться, видно, как были изменены буквы «E» и «x», чтобы образовалась стрелка:
image
Читать дальше →
Total votes 169: ↑160 and ↓9 +151
Comments 38

Пишем музыку в Linux. Софт

Reading time 2 min
Views 27K
Configuring Linux *
Sandbox

Вступление


Месяца два назад я полностью перешёл на OpenSource в плане написания музыки. Ещё год назад, меня никакими силами нельзя было заставить писать музыку в Linux и перейти с таких удобных продуктов как Adobe Audition, Logic Studio, FL Studio, многочисленных синтезаторов и плагинов обработки, но времена меняются, и ситуация с музыкальным софтом под linux изменяется к лучшему.
Читать дальше →
Total votes 84: ↑79 and ↓5 +74
Comments 50

Псевдоскоп, или что если поменять глаза местами

Reading time 8 min
Views 381K
DIY

Если вы, увидев эту картинку, поняли, что ваша жизнь больше никогда не будет прежней, то вы меня понимаете. Довольно давно, более двух с половиной лет назад, совершенно случайно я увидел эту картинку на просторах интернета (кажется, на ffffound), и у меня в голове щёлкнул тумблер. Необратимый процесс был запущен.

Привычный ход повседневных событий перестал успокаивать своей завершённостью. Всё, что когда-то наполняло смыслом мою жизнь, стало лишь бледным фоном для опухшей мысли, перманентно отнимающей ресурсы моего мозга; второстепенным мусором перед вопросом, ставшим на тот момент центром моего существования — «Как? Каково это — посмотреть в такую конструкцию? Что увидит человек?» (надеюсь, никто не заметил, что вопроса здесь три). Я определённо захотел собрать эту конструкцию и узнать ответ на вопрос.

графоманское словоблудие с обилием картинок, фотографий и даже схем
Total votes 294: ↑283 and ↓11 +272
Comments 162

Об одном способе защиты исходников Python-программы

Reading time 9 min
Views 80K
Python *
Tutorial
Sandbox

Как всё начиналось


Однажды мне пришлось участвовать в разработке одного небольшого проекта для научных расчётов, который разрабатывался на языке программирования Python. Изначально Python был выбран как удобный и гибкий язык для экспериментов, визуализации, быстрого прототипирования и разработки алгоритмов, но в дальнейшем стал основным языком разработки проекта. Надо заметить, что проект был хоть и не большим, но довольно насыщенным технически. Для обеспечения требуемой функциональности, в проекте широко применялись алгоритмы теории графов, математическая оптимизация, линейная алгебра и статистика. Также использовались декораторы, метаклассы и инструменты интроспекции. В процессе разработки пришлось использовать сторонние математические пакеты и библиотеки, например, такие как numpy и scipy, а также многие другие.

Со временем стало ясно, что переписывать проект на компилируемом языке слишком затратно по времени и ресурсам. Скорость работы и потребление памяти не являлись критичными показателями в данном случае и были вполне приемлемыми и достаточными. Поэтому было принято решение оставить всё как есть, и продолжить разработку и поддержку проекта на языке Python. К тому же, документация по большей части уже была написана с использованием Sphinx.

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

Здесь сразу обозначилась новая проблема: как защитить исходные коды нашей Python-библиотеки? Может быть, в ином случае никто бы не стал этим заниматься, я бы уж точно, но в библиотеке были реализованы некоторые ноу-хау, и руководители проекта не хотели, чтобы данные наработки попали к конкурентам. Так как я был одним из исполнителей, мне пришлось озаботиться данной проблемой. Далее я постараюсь рассказать об основной идее, что из этого вышло, и как нам удалось скрыть Python-исходники от лишних глаз.
Читать дальше →
Total votes 82: ↑71 and ↓11 +60
Comments 41

Особенности русской разработки

Reading time 8 min
Views 282K
ScrumTrek corporate blog
image

По роду занятий я часто общаюсь с различными русскими и западными командами. Очень частый вопрос — есть ли какая-нибудь специфика в работе наших и как это влияет на разработку?

Есть очень неплохая книжка о специфике работы русских вообще. Она называется «Русская модель управления». Ее написал А.П.Прохоров (другой, не олигарх). Не буду ее пересказывать. Основная идея в том, что русские по своей природе могут работать только в двух модах. В нестабильном состоянии они могут свернуть горы. В это время мотивация очень высокая. В стабильном расслабленном состоянии — когда никто не пинает — русские вроде как работают плохо и не сильно утруждаются.

Книга замечательная и действительно многое объясняет в нашей истории. Обязательно прочтите, если не читали. Но я не готов ее рекомендовать как непосредственное руководство к действию. Выводы из нее следуют довольно-таки однозначные и не очень лестные для страны в целом. Однако на самом деле все не так плохо. Наша специфика не является абсолютно контрпродуктивной. Она дает и преимущества и недостатки.

Еще один дисклеймер: на реальное поведение людей действует сложившаяся культура в а) команде б) организации в) стране. Причем именно в этом порядке. Есть «прозападные» компании, где влияние наших культурных кодов очень небольшое. В чисто российских компаниях оно просто огромно. Но реально заметить разницу можно только увидев, как различные культуры сталкиваются друг с другом.

Я буду приводить влияние разных факторов в порядке их важности и силы влияния. Чем выше — тем сложнее это изменить и тем больший эффект это оказывает.
Читать дальше →
Total votes 531: ↑513 and ↓18 +495
Comments 421

Генерация музыки в реальном времени

Reading time 6 min
Views 132K
Java *Algorithms *


«Как автоматизировать сочинение музыки?» — этот вопрос тревожит умы музыкантов еще со времен средневековья. Кеплер превращал траектории движения планет в музыку; Моцарт и его современники изобрели игру в «музыкальные кости» — они броском кубиков выбирали из большой таблицы такты и составляли из них менуэты. Но только с появлением компьютеров алгоритмическая генерация музыки получила настоящее развитие. Теория вероятности, марковские цепи, искусственные нейронные сети — все это стало инструментами создания музыки.
Читать дальше →
Total votes 233: ↑224 and ↓9 +215
Comments 193

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

Reading time 13 min
Views 257K
Studying in IT
В данной статье я постараюсь пересказать вам опыт изучения иностранных языков, полученный мной в течение последних двух с половиной лет. Статья раскрывает наиболее эффективные методики изучения языка, которые я использую, также раскрывает кучу советов по изучению языков.

Сразу скажу что здесь я говорю только от первого лица и исходя из своего опыта, который возможно подойдёт не всем. Но, однако, как я заметил, очень много солидных лингвистов пользуются именно этими методиками изучения языков. В любом случае вы вольны использовать или не использовать этот опыт на практике, либо использовать опыт других людей, либо вырабатывать свой собственный.

Статья изначально была просто сообщением в скайп моему другу. Однако, после того как я заметил что объём информации уже занимает 3 страницы формата A4, решил переобразовать это сообщение в полноценную статью, которую вы можете лицезреть.
Читать дальше →
Total votes 145: ↑108 and ↓37 +71
Comments 205

Скорости разработки и исполнения, не достижимые на С

Reading time 20 min
Views 58K
C++ *
В продолжении статьи о кроссплатформенной и кросс-аппаратной оптимизации, на примере задачи поиска полным проходом по таблице из 5 полей и 10 000 000 строк, и неизбежности этой задачи даже при индексном поиске, я покажу как ускорить такой поиск в 3.5-5.3 раза с использованием C++ независимо от аппаратной платформы.
В предыдущей статье нам удалось ускорить поиск в 1.3 раза: GitHub.com
Мы не будем банально описывать конструкции языка, а покажем преимущества C++ при решении одного из этапов реальной задачи.
Мы по-прежнему пишем кроссплатформенно под MSVC11(MSVS2012) и GCC 4.7.2, и используем в них C и частично реализованный стандарт C++11.
Для упрощения понимания мы все ещё пишем без индексного поиска, но это решение в дальнейшем будет использоваться при индексном поиске.
Читать дальше →
Total votes 165: ↑150 and ↓15 +135
Comments 41

Собираем CarPC на Android: недостроенный долгострой

Reading time 12 min
Views 398K
DIY
Sandbox


Моя машина меня устраивает почти всем. Есть практически все, что нужно. В комплектации блютусный телефон, кнопочный климат-контроль, электростеклоподъемники на всех дверях, подогрев сидений, подогрев, регулировка и складывание зеркал, чип-ключ, CD-чейнджер на 6 дисков, но без MP3 и линейного входа. Вот этот прискорбный факт и привел меня к мысли начать собрать свой CarPC на базе андроида. Начал рассматривать варианты и покатился… появилось много идей.
Хочу поделиться с Вами!
Total votes 150: ↑142 and ↓8 +134
Comments 110

Добавление анимации в ListView

Reading time 8 min
Views 19K
Development for Android *
Приветствую Вас, коллеги,

сегодня я пожаловал к вам с коротенькой статьей на тему добавления анимаций в ListView при скроллинге. Не так давно мне захотелось добавить в мой список анимацию, аналогичную той, что можно увидеть в G+ клиенте, но немного другую.

А захотелось мне сделать так, чтобы новые элементы не просто появлялись внизу, а выплывали снизу и немного справа. В общем-то, это я сделал, но позже, я посмотрел доклада Романа Ги и Чета Хааса на Google IO 2013 и загорелся идеей добавить искажение при этом, чтобы добавить реалистичности. Это потребовало немного изменить подход, но, в целом концепция осталась прежней.

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

Чтобы было понятно, вообще, о чем я, ниже ссылка на ролик с конечной анимацией. Обратите внимание, как элементы деформируются при появлении. Поскольку видео записывалось с эмулятора, присутствуют небольшие дергания, на девайсе все идеально гладко. Так же для наглядности я увеличил продолжительность анимации до 900мс. Обычно вы хотите, чтобы она длилась 300 мс.



Читать дальше →
Total votes 49: ↑47 and ↓2 +45
Comments 12

Вычисление N-го знака числа Пи без вычисления предыдущих

Reading time 4 min
Views 127K
Algorithms *Mathematics *
Sandbox
С недавних пор существует элегантная формула для вычисления числа Пи, которую в 1995 году впервые опубликовали Дэвид Бэйли, Питер Борвайн и Саймон Плафф:
image

Казалось бы: что в ней особенного — формул для вычисления Пи великое множество: от школьного метода Монте-Карло до труднопостижимого интеграла Пуассона и формулы Франсуа Виета из позднего Средневековья. Но именно на эту формулу стоит обратить особое внимание — она позволяет вычислить n-й знак числа пи без нахождения предыдущих. За информацией о том, как это работает, а также за готовым кодом на языке C, вычисляющим 1 000 000-й знак, прошу под хабракат.
Читать дальше →
Total votes 118: ↑111 and ↓7 +104
Comments 95

ВУЗ для IT специалиста: взгляд изнутри

Reading time 10 min
Views 239K
Studying in IT
Если вы давно закончили институт и уже сформировавшийся, матерый специалист, то вам не стоит читать дальше. Вы не узнаете из этого поста ничего нового и полезного. Может быть он вызовет у вас улыбку. Но судя по комментариям к статьям, на сайте достаточно и тех, кто еще учится или только собирается учиться на IT специальности. Для них этот пост написан и я искренне надеюсь может быть чем-то полезен.
Так сложилось, что я работаю подрабатываю в университете преподавателем на компьютерной специальности и уже много лет работаю разработчиком (фрилансером и офсерсером). Т.е. могу видеть обе стороны одной медали, имя которой — ВУЗ.
Дальше будет много букв и ни одной картинки. Кому еще интересно — прошу под кат.
Читать дальше →
Total votes 107: ↑93 and ↓14 +79
Comments 212

Библиотека для гомоморфного шифрования HELib

Reading time 2 min
Views 13K
IBM corporate blog Cryptography *Open source *
Компания IBM выпустила свободную криптографическую библиотеку HElib с поддержкой гомоморфного шифрования (homomorphic encryption, HE). Это первая в истории реализация подобной криптосистемы и важный этап в развитии криптографии как науки и математических методов защиты информации. Разработка имеет особенную практическую ценность именно в наши дни, с распространением облачных сервисов.

Гомоморфное шифрование — это криптографическая система, которая позволяет проводить математические операции над зашифрованными данными без их предварительной расшифровки. Идея была сформирована 30 лет назад знаменитым криптографом Рональдом Ривестом, но в течение длительного периода времени существование полностью гомоморфных систем было не доказано. Сам Ривест решил, что идея не подлежит реализации.
Читать дальше →
Total votes 50: ↑48 and ↓2 +46
Comments 9
1

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity