Pull to refresh
-8
Send message

Оформить правильно

Reading time3 min
Reach and readers6.5K
Проблема большинства сегодняшних программ, таких как Excel или Numbers – они дают отвратительный набор типовых графиков, из которых пользователю необходимо выбрать подходящий. Но как можно выбрать подходящий и хороший, если для его получения нужно совершить с десяток непростых телодвижений, с каждым из которых вообще можно разбираться по 5-10 минут…
Поэтому сегодняшняя статья будет посвящена тому, как правильно и понятно нужно оформлять графики в презентациях.

Начнем с начала.
Вот, самый обычный график, который создается за секунду, нажатием 2-х кнопок в Экселе. Да, красота неописуемая, что глаз не оторвать. Но так ли важна эта красота, когда вам нужно дать четкое и понятное представление для всех собравшихся о том, что происходит с бюджетом компании? Кто-то сможет однозначно сказать, что происходит, например, в июне месяце? Компания в убытках? Или, может, наоборот уже все не так уж и плохо? Для ответа на этот вопрос нужно подключить неплохое пространственное воображение и удачу. И тогда кто-то сможет ответить: «В июне бюджет наконец-то превысил наши расходы!».

image
Читать дальше →

Делаем Desire HD из Desire

Reading time5 min
Reach and readers17K


Буквально пару дней назад я прочитал пост Вторая жизнь HTC HD2 и задумался, а можно ли сделать Desire HD из моего Desire? Как оказалось, можно, и даже не очень сложно. В общем, поразмыслив некоторое время о плюсах и минусах перехода на HD, я приступил к превращению. После всех действий я получил все возможности Desire HD в корпусе Desire. Никаких проблем и ошибок не возникло.
Читать дальше →

Модульный ноутбук Bloom от студентов Стэнфордского университета

Reading time2 min
Reach and readers3.3K
Если вы когда-нибудь разбирали ноутбук, то прекрасно представляете сколько эта процедура занимает времени. Студенты Стэнфордского университета решили, что неплохо бы это время сэкономить и создали модульный ноутбук, который можно разобрать буквально за 2 минуты последовательно совершив около 10 действий.



Читать дальше →

Есть проблемы в городе? Расскажи о них и поможешь их ликвидировать

Reading time2 min
Reach and readers1.8K


Наткнулся на просторах сети на весьма полезный вариант социальной сети. Streetjournal — это Пермский проект суть которого в коллективном обсуждении актуальных для горожан проблем. Казалось бы, обсуждение обсуждением, и что?

Читать дальше →

Настройка Vim для работы с Python и Django

Reading time4 min
Reach and readers47K


Vim — уникальный по своей гибкости редактор, который при должной настройке может едва ли не идеально удовлетворять все пожелания работающего с ним. Правда эта настройка может продолжаться месяцы, а то и годы, что является и достоинством, и недостатком vim’а. Существует множество статей и туториалов по использованию Vim для разработки на Python и Django, надеюсь мне удастся рассказать что-то новое. В своей статье я постараюсь по минимуму упоминать плагины общего назначения, вроде NERDTree или surround.vim и опишу несколько более специализированных расширений и настроек, которые существенно упростили процесс работы на Python.
Читать дальше →

Шутер с псевдо-3D графикой на… bash

Reading time5 min
Reach and readers24K
Здравствуй, Хабрачеловек!

Решил я как-то, что неплохо бы научиться писать «Hello world!» на bash. Как-никак уже полгода работаю на убунте, стыдно не уметь такого. Поискал на Хабре и понял, что просто почитать мануалы нынче не модно, надо написать свою игру. Осталось выбрать какую. Шахматы, Xonix, Sokoban, Морской бой уже написали, Тетрис вроде тоже (хотя ссылки не нашел), что же выбрать? Первой идеей была стратегия, но была откинута из-за полной безумности (хотя я надеюсь, что один из тех, кто продолжит историю топиков про игры на bash напишет и ее). Поэтому я остановился на шутере.


*На картинке изображен коридор и монстр в нескольких шагах впереди

Ссылка на скрипт: github.com/EvilTosha/labirinth/blob/master/lab2.sh

Под катом вы найдете абсолютно неинтересное и ненужное описание внутренней части игры.
Читать дальше →

Оптимизация Ubuntu (и прочих Linux-ов) под SSD

Reading time4 min
Reach and readers208K
Доброго времени суток всем читающим. В данной мини-статье мне хотелось бы собрать и рассмотреть основные моменты оптимизации работы (и, конечно, продления жизненного цикла ) твердотельных накопителей. Практически всю информацию можно легко найти в сети, но тут я попытаюсь упомянуть пару подводных камней.
Читать дальше →

Создание сайта на MODx CMS — видео урок

Reading time2 min
Reach and readers36K
Почти год назад, в ноябре 2010, у меня появилось желание сделать обучающее видео по созданию сайта на MODx Evolution. Не прошло и полугода, как прошел год и я с удовольствием могу показать вам свое творение. Так как длинное видео это не формат Хабра, я сделал короткий тизер под названием «Сайт на MODx за 5 минут», а под катом полное видео.



Специально для тех, кто заинтересовался или не успевает так быстро усваивать информацию — под катом полное видео (30 минут) о том, как установить и настроить MODx, подготовить шаблон к интеграции в MODx, интегрировать и получить готовый сайт. И все это я подробно объясняю.

Далее: полная версия видео урока

Автоматизация игры во Flood-it

Reading time4 min
Reach and readers4.7K
Добрый день.

После размещения вопроса о том интересно ли будет почитать об автоматизации процесса игры во Flood-it. Было получено несколько положительных отзывов, в связи с чем публикую данную статью.

Введение



Flood-it представляет собой игровое поле размером 14x14 с разноцветными клетками, задача игрока заполнить поле одним цветом за наименьшее количество ходов. Каждый ход представляет собой выбор цвета из палитры, всего в палитре шесть цветов. Всего на игру дается 25 ходов.

Игровое поле Flood-it
Рисунок 1: игровое поле.

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

Экспорт истории сообщений из Skype

Reading time4 min
Reach and readers33K
Многие пользователи Skype в Linux замечали насколько неудобно там сделана работа с историей сообщений чата. Нет нормального поиска, сообщения за длительный период времени грузятся очень долго. Нет возможности экспорта в другие форматы/клиенты.

Skype для Linux хранит историю сообщений в недокументированном бинарном формате. Несмотря на то что энтузиасты расковыряли его довольно давно, еще многое остается неизвестным.

Поверхностный поиск готового решения для экспорта истории сообщений не привел к успеху. Поэтому я, собрав всю доступную информацию, написал своё.
Читать дальше →

Установка GSM-сигнализации на даче

Reading time6 min
Reach and readers65K
Для того, чтобы знать о том, что происходит с дачным домом в моменты отсутствия, я решил установить там охранную систему. Хочу поделиться со всеми этим опытом и деталями ее выбора и установки. Думаю, что многим это окажется полезным.

Выбор сигнализации
Вначале я проанализировал доступные варианты и понял, что мне подойдет GSM-сигнализация. Попытки выбрать что-то готовое и комплектное в магазинах типа OBI я оставил довольно быстро, т.к. то, что там продается достаточно дорого, изрядно китайско и не подходит для моей задачи по набору компонентов.

image
Головное устройство сигнализации.

В интернетах я прочитал про GSM-сигнализации и стал искать сайты продавцов. В результате нашлась одна контора, которая предлагала несколько головных блоков на выбор и к ним – всякие датчики и прочую комплектуху. Цена головного устройства в 4000 рублей устроила меня полностью и я стал прикидывать то, что требуется для покупки.
Читать дальше →

Асинхронное модульное тестирование для С++

Reading time6 min
Reach and readers3.1K
В наше время разработчику уже крайне затруднительно обойти стороной асинхронное взаимодействие между блоками кода. Это и работа с web службами, работа с браузерными движками, и работа с потоками и т.д. и т.п. можно перечислять до бесконечности. И как следствие встает проблема организации модульного тестирования объектов, выполняющих операции асинхронно, а точнее сказать в инструменте, реализующем возможность создания асинхронных тестов.Прежде чем начнем, хочу уточнить, смысл термина «асинхронный тест». Под «асинхронным тестом», понимается такой тест, который мы можем завершить сами из любого потока в любой момент времени, из любой функции.
Читать дальше →

Автоматическое тестирование программ

Reading time9 min
Reach and readers50K

Введение


Долгое время считалось, что динамический анализ программ является слишком тяжеловесным подходом к обнаружению программных дефектов, и полученные результаты не оправдывают затраченных усилий и ресурсов. Однако, две важные тенденции развития современной индустрии производства программного обеспечения позволяют по-новому взглянуть на эту проблему. С одной стороны, при постоянном увеличении объема и сложности ПО любые автоматические средства обнаружения ошибок и контроля качества могут оказаться полезными и востребованными. С другой – непрерывный рост производительности современных вычислительных систем позволяет эффективно решать все более сложные вычислительные задачи. Последние исследовательские работы в области динамического анализа такие, как SAGE, KLEE и Avalanche, демонстрируют, что несмотря на присущую этому подходу сложность, его использование оправдано, по крайней мере, для некоторого класса программ.

Читать дальше

Пьеса «Разработка многопользовательской сетевой игры.» Часть 1: Архитектура

Reading time3 min
Reach and readers22K
image

Часть 2: Протокол
Часть 3: Клиент-серверное взаимодействие
Часть 4: Переходим в 3D

В общем, как и обещал, публикую серию статей по разработке многопользовательской сетевой игры. Изначально я хотел просто накатать статейку по разработке серверной части на интересном языке Scala. Но понял, что одной статейкой для развертывания темы не получится обойтись. А писать очередной топик обо всем и ни очем, не хотелось изначально. Поэтому встречайте пьесу в трех действиях. В течении которой мы разработаем архитектуру проекта, реализуем серверную и клиентскую части…
Все помнят прикольные танчики на денди?
Ну вот на примере этих танчиков и будем разрабатывать сервер и клиент.

Добро пожаловать в зрительный зал.

Свой инструмент нужно знать в лицо: обзор наиболее часто используемых структур данных

Reading time8 min
Reach and readers77K
image
Некоторое время назад я сходил на собеседование в одну довольно большую и уважаемую компанию. Собеседование прошло хорошо и понравилось как мне, так и, надеюсь, людям его проводившим. Но на следующий день, в процессе разбора полетов, я обнаружил, что в ходе собеседования ответ на как минимум один вопрос был неверен.

Вопрос: Почему поиск в python dict на больших объемах данных быстрее чем итерация по индексированному массиву?

Ответ: В dict хранятся хэши от ключей. Каждый раз, когда мы ищем в dict значение по ключу, мы сначала вычисляем его хэш, а потом (внезапно), выполняем бинарный поиск. Таким образом, сложность составляет O(lg(N))!

На самом деле никакого бинарного поиска тут нет. И сложность алгоритма не O(lg(N)), а Amort. O(1) — так как в основе dict питона лежит структура под названием Hash Table.

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

Backend в проекте на Yii

Reading time4 min
Reach and readers13K
В сети очень мало информации по созданию административных страничек в приложениях и наверно каждый использует свои решения. Именно сейчас хотел бы рассказать к чему я дошел за пол года разработки сайтов на Yii (статья только для тех, кто разбирается во фремворке).
Читать дальше →

Opensource-проект с нуля

Reading time2 min
Reach and readers22K
Долгое время боялся создавать этот топик, но всё же решился. Надеюсь, что не зря. Периодически на хабре и не только на нём появляются вопросы о том, к какому бы opensource-проекту присоединиться (1, 2, 3, 4, ...etc), ответов на которые к моему удивлению не много. У меня периодически появляется свободное время и хочется поучаствовать в одном из таких проектов. И я пытался, слал pull request'ы в некоторые проекты на гитхабе, их принимали, начинал какие-то свои проекты и так и не доводил их до конца. Но это всё не то…

… Хочется собрать несколько человек, обсудить и создать какой-то интересный проект, пусть без революционной идеи, пусть без новизны, пусть без профита, но свой. Чтобы видеть зарождение с нуля, видеть новые коммиты, добавляющие функциональность, читать чужой код и чужие комментарии, учась чему-то новому, получать опыт, обсуждать, спорить. Хочется потом иметь возможность указать в резюме ссылку на проект, в создании которого я участвовал.
Я пытался искать «opensource проекту требуется разработчик» и ничего актуального не нашёл. То есть нашёл полуразработанные проекты на java, php, но это, опять же, не то. Мои интересы: Python, C/C++, (Boost, LLVM, Qt...).

Наверняка я не один такой, поэтому надеюсь на отклики / идеи / ссылки на интересные проекты в очень зачаточном состоянии. Может быть соберём это всё в одном топике и он будет полезен не только мне.
Читать дальше →

Как современные кодеки изображений жмут звук. JPEG2000 vs MP3

Reading time3 min
Reach and readers3.9K
В этом эксперименте популярный формат сжатия изображений JPEG2000 будет использоваться для несвойственной ему задачи, хранения звукового файла.

Вообще, звук и изображение очень похожи. Если представлять звук в волновой форме, то мы получим изменение звукового сигнала по времени. Аналогично, если взять одну строку пикселов изображения, то получим изменение яркости по расстоянию.

Чем больше амплитуда колебаний звукового сигнала по времени, тем громче звук. Аналогом для изображения будет увеличение контрастности.

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

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

Читать дальше →

Об опыте написания AI к простенькому 2D шутеру

Reading time3 min
Reach and readers5.7K
Приветствую хаброчитателей, хочу вам рассказать об опыте написания AI к простенькой 2D игрушке в далеких уже 2003-2004 годах. Скажу сразу что написание сочинений в жизни мне никогда не удавалось, однако я буду стараться.
Скорее всего специалистам геймдева данный пост покажется нубским, но надеюсь что остальным будет интересно, итак, начнем с начала.
Читать дальше →

Обработка 2D столкновений с использованием LibCanvas

Reading time7 min
Reach and readers16K

В большинстве современных игр невозможно обойтись без обнаружения и дальнейшей обработки столкновений (выстрел, прыжок, банальный отскок от препятствия). На первый взгляд их реализация представляется довольно просто, но так ли это на самом деле? Попробую вкратце объяснить суть проблем, с которыми я столкнулся.
По традиции, после прочтения нескольких статей начинаешь чувствовать себя богом, способным сделать все что угодно. Думаю, многие сталкивались с подобной проблемой и могут представить, что последует за ней… правильно, череда больших проблем. Но обо всем по порядку.
Читать дальше →

Information

Rating
Does not participate
Location
Беларусь
Registered
Activity