Pull to refresh
14
0
Andrew Dunai @AndersonDunai

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

Send message

Расставляем точки над Ы

Reading time3 min
Views14K

Готовлю сейчас текстуры с буквами для нашей игрушки со словами. А у таких игр есть одна особенность: не переведешь игру на какой-то язык — не видать покупок от носителей этого языка. Поэтому релиз игры будет локализован на 42 языка. Это много-много разных букв, каждая из которых обрабатывается в фотошопе и вставляется в текстуру, место в которой — на вес золота. Приходится вникать в устройство современных алфавитов, чтобы брать только те буквы, которые действительно нужны в современных словах.

Погрузившись в этот процесс, я открыл для себя, на сколько фраза «расставить точки над и» не полна. Точки расставляют далеко не только сверху.
где еще расставляют точки
Total votes 40: ↑34 and ↓6+28
Comments48

Закат Stack Overflow

Reading time12 min
Views78K
Как тролли захватили ваш любимый сайт вопросов и ответов по программированию

Сайт Stack Overflow был создан в 2008 году Джеффом Этвудом и Джоэлем Спольским как более открытая альтернатива возникшим ранее аналогичным сайтам, таким как, например, Experts-Exchange. Название для сайта было выбрано голосованием в апреле 2008 года читателями популярного блога по программированию Coding Horror, который вёл Этвуд.

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

На июль 2015 года у Stack Overflow было более 4 млн. зарегистрированных пользователей и почти 10 млн. вопросов (без учёта удалённых пользователей и вопросов). Однако в исследовании 2013 года было выявлено, что 77% пользователей задают только один вопрос, 65% отвечают только на один вопрос и лишь 8% пользователей дают ответы на более чем 5 вопросов. В настоящей статье я хотел бы рассмотреть возможные причины такого чрезвычайно низкого процента.
Читать дальше →
Total votes 109: ↑93 and ↓16+77
Comments386

Искусственный Интеллект в Excel предсказывает обладателя золотой медали в мужском турнире на Рио 2016

Reading time6 min
Views14K
Каждый раз, когда мы используем сложные математические алгоритмы и современные методы машинного обучения, мы ставим задачу получить тренд, понять внутренние зависимости, и в конечном счете произвести предсказания. Более точные результаты можно получить, если алгоритм может быть адаптирован под имеющиеся знания, под имеющуюся модель процесса. Одним из направлений в машинном обучении, которое позволяет создавать и обучать модели для получения предсказаний, является «порождающее (или Байесовское) моделирование» (в отличие от «дискриминативного» моделирования, например, нейронных сетей). Для создания вероятностных моделей и работы с ними существуют платформы, которые в последнее время относятся к направлению «вероятностным программированием». Более подробно о вероятностном программировании можно почитать в других статьях на Хабрахабре: «Вероятностное программирование», «Вероятностное программирование – ключ к искусственному интеллекту?» и «Вероятностное программирование».

Совсем недавно появился стартап Invrea, который в качестве вероятностного языка программирования предлагает использовать Excel: вероятностная модель может быть создана в Экселе и предсказания могут быть получены там же. Ниже находится перевод одной из статьи с сайта стартапа (перевод выполнен исключительно в образовательных целях). В статье авторы рассматривают пример «бытовой» ситуации. Им интересно понять, кто победит в теннисном турнире на Олимпийских играх 2016. Они производят предсказания о том, кто наиболее вероятный кандидат на победу. Статья была написана 7 августа, во время игр, после завершения всех игр первого тура.

Total votes 19: ↑19 and ↓0+19
Comments1

AdBlock Plus совершил новый виток в истории «приемлемой рекламы»

Reading time8 min
Views45K


Один из крупнейших в мире блокировщиков рекламы AdBlock Plus порадовал рекламодателей новой инициативой. Разработчики блокировщика запустили платформу Acceptable Ads Platform (AAP), предназначенную для размещения на сайтах рекламы из списка «приемлемых объявлений» (Acceptable Ads). Приемлемую рекламу можно устанавливать вместо обычных баннеров, которые блокирует Adblock Plus.

Сама программа «Приемлемой рекламы» была запущена еще в 2011 году. Тогда же Eyeo, компания-разработчик Adblock Plus, признала, что сотрудничала с партнерами в рамках этой программы не безвозмездно.
Читать дальше →
Total votes 38: ↑37 and ↓1+36
Comments83

Как я создавал убийцу HTML

Reading time5 min
Views45K
В жизни каждого начинающего программиста-самоучки есть момент, когда смотреть очередное видео из серии «Основы %language_name%» уже не интересно, а проситься в джуниоры ещё рано. В этот момент хочется опробовать свои силы на каком-нибудь «почти настоящем» проекте. Под катом — история о том, как я придумал такой проект и что из этого вышло.

image
Читать дальше →
Total votes 73: ↑57 and ↓16+41
Comments70

Введение в GitLab CI

Reading time6 min
Views238K

Публикую перевод моей статьи из блога ГитЛаба про то как начать использовать CI. Остальные переводы гитлабовских постов можно найти в блоге компании Softmart.




Представим на секунду, что вы не знаете ничего о концепции непрерывной интеграции (Continuous Integration — CI) и для чего она нужна. Или вы всё это забыли. В любом случае, начнем с основ.


Представьте, что вы работаете над проектом, в котором вся кодовая база состоит из двух текстовых файлов. Более того, очень важно, чтобы при конкатенации этих файлов в результате всегда получалась фраза "Hello world." Если это условие не выполняется, вся команда лишается месячной зарплаты. Да, все настолько серьезно.


Hello wolrd


Читать дальше →
Total votes 45: ↑44 and ↓1+43
Comments21

Идентификация личности по обычной охранной камере: приключения на одной проходной

Reading time5 min
Views96K

Фото с объекта нельзя. Это — примерно похожее место на примере КРОК.

Началось всё с кота-терминатора. На начало операции мы знали следующее:

  • При строительстве здания с крупным продуктовым рабочая бригада завела кота, чтобы он ловил крыс.
  • После приёмки кот незнамо где заныкался, и уже три или четыре года его никто не видел.
  • Какая-то сволочь показала ему прямую взаимосвязь между открытым мешком кошачьего корма из торгового зала и появлением корма.
  • Появлялся он только на камерах — приходил ночью охотиться на мешки, причём как настоящий матёрый охотник, детей и самок не трогал, а брал только жирных самцов, то есть выбирал самые крупные мешки, неожиданно на них прыгал и вскрывал им брюхо.
  • Ему пробовали на ночь накладывать отдельную миску с кормом, но он был уже далеко не домашним, и отказаться от охоты не мог.
  • Кроме этого, кот любил крайне дорогой алкоголь: сотрудники догадались списывать на кота бутылки. Мол, уронил, уборщица уже осколки убрала.
  • Суммарный убыток он приносил примерно на 50–100 тысяч в месяц (да, это будет покруче, чем в нашумевшей истории про единоразовый обед кота на 1000 долларов в аэропорту Владивостока).
  • За поимку кота уже 4 месяца была награда в 5 тысяч рублей.

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

Здесь и нас и операционного директора ждало несколько открытий, согласующихся с русским менталитетом. Когда мы для начала узнали, что происходит, мату главного просто не было предела.
Читать дальше →
Total votes 157: ↑147 and ↓10+137
Comments123

Гейзенбаг, или как Луна портит код

Reading time6 min
Views24K
Луна убывает, такое бывает… ©Земфира

Гейзенбагом называют ту разновидность программных глюков, которая возникает не пойми откуда, не поддается отладке и обнаружению. Словом, ведет себя как тот самый Неуловимый Джо или кроковский кот из недавнего поста. Мне по работе приходилось сталкиваться с такими и про себя я называл это эффектом квантовой механики до тех пор, пока не узнал, что близкое по смыслу название уже давно придумали. Бывает, посылаешь заказчику отладочный бинарник, который всего лишь записывает в журнал больше событий вокруг предполагаемого источника проблемы и после этого проблема исчезает!

heisenbug /hi:'zen-buhg/ n.
A bug that disappears or alters its behavior when one attempts to probe or isolate it.




Предлагаю вашему вниманию свою небольшую познавательную коллекцию квантовых эффектов в программировании.


Эпизод I, OpenOffice не печатает во вторник


Историю этого замечательного багрепорта можно почитать на Ubuntu Launchpad, а я вкратце изложу суть для тех, кому не сподручно читать по ссылке. В системной утилите file был баг из-за которого, файлы содержащие в 4-м байте Tue определялись как Erlang JAM. Дефект присутствовал в версиях file 4.21 и 4.24 и был вызван ошибкой в magic файле.

Читать дальше →
Total votes 41: ↑38 and ↓3+35
Comments86

Почему, ну почему, эти #?@! придурки используют vi?

Reading time12 min
Views119K

Предлагаю читателям "Хабрахабра" перевод статьи "Why, oh WHY, do those #?@! nutheads use vi?" за авторством John Beltran de Heredia.


Да, даже если вы не можете в это поверить, у редактора vi, увидевшего свет более тридцати лет назад (и его более молодого, всего-то пятнадцатилетнего лучшего клона & большого улучшения — vim) очень много фанатов.


Нет, они не динозавры, которые не хотят идти в ногу со временем — сообщество пользователей vi продолжает увеличиваться: я, который начал только два года назад (после десяти лет работы программистом). Мои друзья переходят на vi сейчас. Черт, большинство пользователей vi даже еще не были рождены, когда он был написан!


Да, есть конкретные причины, почему модель редактирования vi/vim превосходит любую другую. Вам не надо быть экспертом в Unix, чтобы использовать vi — он доступен бесплатно практически для любой существующей платформы; для большинства IDE существуют плагины, позволяющие использовать его возможности. Давайте же развеем некоторые заблуждения и рассмотрим пару примеров, демонстрирующих его превосходство.

Читать дальше →
Total votes 172: ↑143 and ↓29+114
Comments769

Какие технологии компьютерных игр перетекают в реальность – и обзор технологий на играх живого действия

Reading time8 min
Views33K


Вполне логично, что почти всё то, что было в компьютерных играх, добралось до реальных.

Теперь у вас есть броня и пушки, которые позволяют точно считать хиты (инфракрасные и лазерные с реалистичной перезарядкой); детекторы аномалий из Сталкера, создающие вообще новую реальность вокруг на полигонах; RFID-замки для квестов; разные ардуино-навороченные штуки и ещё куча странных вещей. В целом — повышающих уровень реалистичности реального мира и внутриигровую связность сюжета.

В общем, давайте посмотрим, какой технический антураж сейчас используется в играх живого действия, и что перекочевало в реал из шутеров и RPG.
Читать дальше →
Total votes 69: ↑67 and ↓2+65
Comments78

Не важно, большие у тебя или маленькие. Главное, чтоб не маленькие. Фаршируем Material Design

Reading time4 min
Views38K
image

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

В HeadHunter дизайн, прежде чем уйти в инпрогресс, проходит множество инстанций. Для начала необходимо доказать команде разработки, что решения взяты не с потолка, а ты не «художник, я так вижу». И иногда пользоваться защитой Рексоны 24/7 приходится в самом неожиданном месте.
Читать дальше →
Total votes 91: ↑87 and ↓4+83
Comments59

PostgreSQL. Как правильно хранить котов или история одной миграции

Reading time7 min
Views25K
История взята из реального проекта. Но поскольку реальный проект слишком скучный (и под NDA), в этой статье используется упрощенный пример.

Жил-был один проект. И была у него база данных. И была в базе таблица для хранения, ну, скажем, котов. Вот такая:
CREATE TABLE cats (
    id serial,
    cname varchar(20),
    ctype varchar(20),
    primary key(id)
);

Все довольно просто: у каждого кота есть id, имя и некий тип.

Конечно, у нас были бизнес-требования к котам и их типам. Например, мы точно знали, что у нас есть типы big furry, neko и sudden danger. Предполагали, что могут появиться типы long tail и sleeper-eater. Но мы ожидали, что требования будут меняться. И пока не известно, какие в итоге понадобятся типы. Поэтому использовали тип данных varchar(20).
Читать дальше →
Total votes 54: ↑51 and ↓3+48
Comments28

Маслобойка

Reading time4 min
Views48K

Ты слышал про парня, который попрощался с OOП?


О нет. Ещё один? Что же он сказал?

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


Ох. Да, я слышал всё это раньше...

Таким образом, OOП окончательно умерло, и мы можем двигаться дальше.


Двигаться дальше к чему?

Ты чего? К следующему технологическому прорыву, конечно!


А, к этому… И что там у нас на очереди?

Читать дальше →
Total votes 178: ↑136 and ↓42+94
Comments326

История языков программирования: что помогло языку Java «войти в каждый дом»

Reading time7 min
Views44K

Изображение сайта vanillajava.blogspot.com

Кто-нибудь думал, что язык Java, первоначально предназначенный для устройств бытовой электроники, станет использоваться во многих других областях?

Расширение влияния Java, как ни странно, началось с разработки браузеров.

Главный разработчик Java Джеймс Гослинг перешел в Sun в 1984 году из исследовательского отдела IBM. До Java Гослинг разработал не имевший коммерческого успеха оконный интерфейс NeWS и GOSMACS — первую реализацию текстового редактора EMACS на языке С.

После этого Гослинг и его коллеги начали изучать перспективы на рынке электроники и бытовой техники.
«Группе была поставлена задача создать распределенную систему, которую можно было бы в качестве современной программной технологии продавать производителям бытовой электроники», вспоминает Гослинг.
Читать дальше →
Total votes 45: ↑33 and ↓12+21
Comments97

Анонс React Native

Reading time3 min
Views76K


Не так давно в Калифронии прошла конференция по React.js (доклады с этой конференции уже размещены на канале facebook разработчиков в youtube). Доклады, как не сложно догадаться, были о различных возможностях React.js и применении их в реальной жизни, но два доклада презентовали исключительно новую технологию, бета-версия которой в данный момент доступна только для разработчиков, посетивших мероприятие. Если вы уже посмотрели доклады, то понимаете, что речь идет о React Native. В данной статье я хочу сделать краткий обзор того, что нас ждёт в будущем с этой технологией и как изменится наше представление о создании мобильных приложений с использованием JavaScript.
Читать дальше →
Total votes 38: ↑36 and ↓2+34
Comments69

Простые сладкие приложения с Kivy

Reading time12 min
Views106K

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


Возможно, для вас будет новостью, но разрабатывать мобильные приложения с функционалом, который доступен Java разработчикам, под Android с помощью фреймворка Kivy не просто просто, а очень просто! Именно этого правила я придерживаюсь, создавая свои проекты с Python + Kivy — разработка должна быть максимально простой и быстрой. Как щелчок пальцами.


На новичков подаваемая информация не расчитана, я не буду на пальцах объяснять, что, откуда и куда. Думаю, те, кто читает данную статью, обладают достаточными для понимания материала, знаниями. К тому же, Kivy, как я уже только что написал, очень простой фреймворк и вся документация с примерами использования находится в исходниках!

Читать дальше →
Total votes 22: ↑16 and ↓6+10
Comments35

Web API с помощью Django REST framework

Reading time4 min
Views157K
Веб-cервис (англ. web service) — идентифицируемая веб-адресом программная система со стандартизированными интерфейсами. Веб-службы могут взаимодействовать друг с другом и со сторонними приложениями посредством сообщений, основанных на определённых протоколах (XML, JSON и т. д.). Веб-служба является единицей модульности при использовании сервис-ориентированной архитектуры приложения.

Одним из подходов создания веб сервиса является rest.
Rest (сокр. англ. Representational State Transfer, «передача состояния представления») — стиль построения архитектуры распределенного приложения. Данные в REST должны передаваться в виде небольшого количества стандартных форматов (например HTML, XML, JSON). Сетевой протокол (как и HTTP) должен поддерживать кэширование, не должен зависеть от сетевого слоя, не должен сохранять информацию о состоянии между парами «запрос-ответ». Утверждается, что такой подход обеспечивает масштабируемость системы и позволяет ей эволюционировать с новыми требованиями.

Читать дальше →
Total votes 32: ↑25 and ↓7+18
Comments8

Как мы помогли крупному бразильскому банку справиться с последствиями деноминации

Reading time5 min
Views16K
Новейшая история денежного обращения в Бразилии – это череда деноминаций, первая из которых была проведена в 1942 году, а последняя – в 1994 году. К 1994 году национальная валюта Бразилии – крузейро – была настолько слабой, что в магазинах цены назначались в условных единицах, рядом с цифрами писали слово “real” – «настоящая» цена. В 1994 от лишних нулей решили избавиться, а слово “real”, к которому все привыкли, стало названием новой валюты – реал (впрочем, точно так же называлась денежная единица Бразилии до 1942 года).

Сегодня мы расскажем, как один из наших продуктов – ABBYY FineReader Engine помог крупнейшему частному бразильскому банку справиться с последствиями деноминации. Не представляете, как такое может быть? Добро пожаловать под кат.
Читать дальше →
Total votes 53: ↑53 and ↓0+53
Comments19

Ansible с чего начать

Reading time8 min
Views174K
В последние пару лет я все чаще использую Ansible для решения практически любых задач связанных с автоматизацией, будь то конфигурирование, резервное копирование или деплой проектов. Не смотря на то, что система очень хорошо документирована, я думаю смогу добавить немного полезной информации для тех кто еще только начинает пользоваться Ansible. Для начала я хотел бы рассказать об основных вещах, таких как структура проекта в котором будут содержаться плейбуки, роли, переменные, шаблоны и файлы необходимые для автоматизации развертывания серверов, кода и всего другого, что можно сделать с помощью Ansible.
Читать дальше →
Total votes 25: ↑24 and ↓1+23
Comments44

Навязывание МТ-подписки

Reading time2 min
Views12K
Только что случилась неприятная ситуация.

Моя жена разместила резюме на нескольких сайтах. Периодически заходит и обновляет.
Буквально 15-20 минут назад неизвестная девушка позвонила с номера (7 499 704 16 31). Далее диалог:

Девушка (Д): Добрый день. Ваше резюме размещено на одном из наших сайтов. На сайте не работает автоматическое продление публикации. И что бы его продлить бесплатно я вам сейчас отправлю смс с кодом, а затем перезвоню и вы мне его сообщите.
Жена (Ж): На каком именно сайте?
Д: Я не могу вам сказать, т.к. мы обслуживаем много сайтов.
Ж: Хорошо, отправляйте.
Читать дальше →
Total votes 225: ↑198 and ↓27+171
Comments87
1
23 ...

Information

Rating
Does not participate
Location
Львов, Львовская обл., Украина
Date of birth
Registered
Activity