Pull to refresh
11
0
defaul @defaul

User

Send message

[ В закладки ] Алгоритмы и структуры данных в ядре Linux, Chromium и не только

Reading time9 min
Views86K
Многие студенты, впервые сталкиваясь с описанием какой-нибудь хитроумной штуки, вроде алгоритма Кнута – Морриса – Пратта или красно-чёрных деревьев, тут же задаются вопросами: «К чему такие сложности? И это, кроме авторов учебников, кому-нибудь нужно?». Лучший способ доказать пользу алгоритмов – это примеры из жизни. Причём, в идеале – конкретные примеры применения широко известных алгоритмов в современных, повсеместно используемых, программных продуктах.



Посмотрим, что можно обнаружить в коде ядра Linux, браузера Chromium и ещё в некоторых проектах.
Читать дальше →
Total votes 158: ↑149 and ↓9+140
Comments15

Леденец из мороженого, или как привнести в ваше приложение немного Material

Reading time7 min
Views20K
Пятая версия Android была выпущена почти полгода назад. Несмотря на это, большинство приложений в маркете до сих пор упорствуют в стиле Holo. То ли новый Material-стиль пока не по зубам среднему разработчику, то ли Android L еще не успел прочно войти в обыденность.

Как бы там ни было, новая парадигма дизайна активно пропагандируется «корпорацией добра», да и выглядит достаточно неплохо, несмотря на некоторую непоследовательность. И все больше появляется добрых волшебников, помогающих нам, простым разработчикам, оставаться «в струе» изменчивого мира мобильного UI.

Если вы, как я недавно, твердо решили обернуть своё, давно не обновлявшееся, приложение в новую «шкурку», этот обзор инструментов и библиотек может сэкономить вам N часов времени.

Осторожно, мало картинок!
Total votes 26: ↑23 and ↓3+20
Comments19

Navigation Drawer в стиле Material Design за 5 минут

Reading time9 min
Views115K
imageВ данной статье я расскажу, как быстро добавить в ваше приложение для Android боковое меню (aka Navigation Drawer) в стиле Material Design. Для этого мы воспользуемся библиотекой, любезно предоставленной Mike Penz.

У вас получится Navigation Drawer, который:

  • Соответствует последним рекомендациям по дизайну (Google Material Design Guidelines);
  • Поддерживает использование нескольких Drawer (можно выдвигать второй справа);
  • Поддерживает использование бейджей;
  • Имеет простой и понятный интерфейс (API);
  • Может выползать как под, так и поверх Status Bar;
  • Позволяет менять иконки, цвета, бейджи во время выполнения;
  • Использует AppCompat support library;
  • Работает, начиная с API 14.

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

Читать дальше →
Total votes 24: ↑20 and ↓4+16
Comments21

Оптимизируем скорость SQL вставки на Android устройствах

Reading time11 min
Views17K
Добрый день.

В ходе разработки своего проекта под Android, столкнулся с задачей делать обновление (update) большого количества строк в SQLite базе прямо на устройстве.

Изначальное решение в лоб дало жутко медленные результаты, т.к. обновлять предстояло более 40 000 строк. О том, как я улучшал производительности данных обновлений строк в базе, и пойдёт рассказ.
Читать дальше →
Total votes 27: ↑25 and ↓2+23
Comments26

Пишем, собираем и запускаем HelloWorld для Android в блокноте

Reading time10 min
Views128K


Когда я начал изучать Android, захотелось полностью написать и скомпилировать Android-приложение вручную — без использования IDE. Однако эта задача оказалась непростой и заняла у меня довольно много времени. Но как оказалось — такой подход принёс большую пользу и прояснил многие тонкости, которые скрывают IDE.

По-сути эта статья является переводом и переработкой статьи Building Android programs on the command line под современные на данный момент JDK (7) и Android SDK (API level 19). Кроме того, я многое упростил и добавил кое-что от себя.

Используя только блокнот, мы напишем совсем маленькое учебное Android-приложение. А затем скомпилируем его, соберём и запустим на устройстве — и всё через командную строку. Заинтересовало? Тогда прошу.
Читать дальше →
Total votes 108: ↑97 and ↓11+86
Comments42

Overclock мозга или Внутренняя виртуализация сознания

Reading time29 min
Views455K


Все помнят этот фильм? Какого черта он делает на Хабре? И вообще что тут делает подобный пост?
Наверное потому, что я считаю главным звеном в IT все таки человека, а точнее его мозги. Я попробую рассказать еще об одной возможности использовать свой мозг чуточку эффективнее. Одна из слабо задокументированных возможностей, которую мы используем каждый день, но не всегда даже об этом вспоминаем. Все описанное проверялось на мне. Если что-то я не пробовал, но рассказать об этом важно буду отмечать особо. Никаких наркотиков, аппаратов и издевательств над собой, только общедоступные легкие методики (короче, лег проспался и вперед, не вставая даже с кровати).
И да… Это до жути реалистично, на столько, что попробовав, вы не сможете не рассказать об этом.

Что бы не было лишних криков в комментах, попрошу всех кто ярых сторонников любой религии и конфессии, а так же убежденных эзотериков сразу поставить минус в карму и не читать дальше. Здесь не будет философии и великих вселенских тайн. А остальных прошу под кат — попробую рассказать о своей практике разгона мозга с помощью встроенных функций.
ночь как полигон для...
Total votes 224: ↑172 and ↓52+120
Comments292

Что такое качество в веб-дизайне: примеры и рекомендации. Часть 3

Reading time6 min
Views12K
Не забудьте почитать:
Что такое качество в веб-дизайне: примеры и рекомендации. Часть 1. (или здесь)
Что такое качество в веб-дизайне: примеры и рекомендации. Часть 2. (или здесь)

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

05. Сдержанность и деликатность


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

Читать дальше →
Total votes 95: ↑88 and ↓7+81
Comments35

7 мелочей, поднимающих продажи у нас в интернет-магазине

Reading time4 min
Views96K
Давайте поговорим о социальном доказательстве – самой мощной силе, способствующей продажам. И тем, как это использовать на сайте и в других местах. Сейчас объясню.

Метод 1. Фотографии пользователей с товаром


Кошка «из коробки» не умеет слезать с дерева. Подъём в хардкоде рефлексов, а спуска там нет. Он не жизненно необходим. И она не умеет спускаться — разумеется, пока не увидит, как другая кошка делает это. Стоит один раз понять принцип на примере, и она сможет повторить это сама. Зеркалирование поведения – одна из самых глубоких моделей обучения, поэтому просто грех ей не воспользоваться.

Совет – например, покажите ваш товар в естественной обстановке с теми людьми, которые им пользуются. Вот как это делаем мы:



За 5 лет работы у нас образовался достаточно большой архив фотографий настолок с играми. Мы их и использовали. Вы можете сделать практически то же самое. Да! Есть нюанс. Если ваши покупатели – дети, то никогда не ставьте фотографии с более младшими «пользователями»: гораздо лучше — постарше. Всё просто. Ребёнок хочет быть похожим на старших и совершенно не хочет – на «малышей».
Читать дальше →
Total votes 152: ↑146 and ↓6+140
Comments88

Хабраиндекс для статей по программированию под Android

Reading time2 min
Views94K
Читать дальше →
Total votes 220: ↑204 and ↓16+188
Comments43

Загрузка и инициализация JavaScript

Reading time10 min
Views43K

С появлением мобильного веба наш интернет стал снова плохим, а устройства медленными. 3G, 4G, Wi-Fi… — они, конечно, где-то есть, но когда очень надо, то как правило скорость падает до околомодемной и получается, что наши мобильный устройства «каменного века» попадают в условия современного объема информации. Даже в центре города (правда на 15-м этаже) значок мобильного интернета может показывать волшебную букву Е, намекающую о том, что уж лучше не тратить нервы и потерпеть. Лучше уж использовать нативную версию какого-то веб-сервиса, чем каждый раз ждать, загружать по мегабайту, чтобы отправить короткое сообщение. Нативную версию веб-сервиса... Понятное дело маркетинг, гонка приложений. Однако, же пользователи выбирают нативные веб-приложения, которые работают быстрее, не качают кучу ресурсов, хотя им приходится периодически его обновлять.

Эта статья о том какими путями можно оптимизировать загрузку и инициализацию JavaScript.
Читать дальше →
Total votes 136: ↑132 and ↓4+128
Comments40

Схема обработки ошибок в Yii

Reading time4 min
Views34K
Всем привет!
Процесс обработки ошибок в Yii был для меня не совсем прозрачным с первых дней использования этого фреймворка. Даже несмотря на наличие в документации специального раздела Error Handling. В каких случаях какие view используются, как влияет ajax или debug-режим, зачем нужен errorAction, в чем отличия при обработке исключений?
В итоге после копания в документации и исходном коде фреймворка я нарисовал наглядную схему обработки ошибок, которая лично для меня оказалась весьма полезной и наверняка пригодится кому-то еще.
Под катом собственно схема и некоторые комментарии к ней.
Читать дальше →
Total votes 49: ↑46 and ↓3+43
Comments22

Фотографируем гаджеты для обзора или сайта по-быстрому

Reading time3 min
Views13K
Топики с обзорами всевозможных гаджетов появляются на хабре достаточно часто и возможно, мой рассказ покажется полезным как раз для такого случая – сделать фотографию гаджета для обзора. Здесь я расскажу как быстро сфотографировать небольшой гаджет с максимально возможным качеством. В крайнем случае, это можно сделать даже камерой телефона, я так и поступлю. Поскольку технические средства в этом топике ограничены, практически любое улучшение используемой техники приведёт к повышению качества результата.
Читать дальше →
Total votes 196: ↑191 and ↓5+186
Comments79

Пишем первое приложение для Android

Reading time8 min
Views550K
В любом деле самое сложное — это начало. Часто бывает тяжело войти в контекст, с чем столкнулся и я, решив разработать свое первое Android-приложение. Настоящая статья для тех, кто хочет начать, но не знает с чего.

Статья затронет весь цикл разработки приложения. Вместе мы напишем простенькую игру “Крестики-Нолики” с одним экраном (в ОС Android это называется Activity).

Отсутствие опыта разработки на языке Java не должно стать препятствием в освоении Android. Так, в примерах не будут использоваться специфичные для Java конструкции (или они будет минимизированы на столько, на сколько это возможно). Если Вы пишете, например, на PHP и знакомы с основополагающими принципами в разработке ПО, эта статья будет вам наиболее полезна. В свою очередь так как, я не являюсь экспертом по разработке на Java, можно предположить, что исходный код не претендует на лейбл “лучшие практики разработки на Java”.

Читать дальше →
Total votes 197: ↑170 and ↓27+143
Comments68

Создание объектов в Javascript

Reading time5 min
Views70K
Гибкость Javascript позволяет создавать объекты множеством способов. Но как это нередко случается, разнообразие таит в себе множество подводных камней. Из этой статьи Вы узнаете о том, как разглядеть и обогнуть эти опасные рифы.
Читать дальше →
Total votes 133: ↑119 and ↓14+105
Comments68

Адаптивный и мобильный дизайн с CSS3 Media Queries

Reading time7 min
Views587K
Разрешение экрана в наши дни колеблется от 320px (iPhone) до 2560px (большие мониторы) или даже выше. Пользователи больше не просматривают сайты только на настольных компьютерах. Теперь пользователи используют мобильные телефоны, небольшие ноутбуки, планшетные устройства, такие как iPad или Playbook для доступа в интернет. Поэтому, традиционный дизайн с фиксированной шириной больше не работает. Дизайн должен быть адаптивным. Структура должна автоматически изменяться с учетом всех разрешений дисплеев. Эта статья покажет вам как создавать кросс-браузерный адаптивный дизайн при помощи HTML5 и CSS3 media queries.
Читать дальше →
Total votes 91: ↑90 and ↓1+89
Comments32

10 отличных приемов с .htaccess для WordPress

Reading time4 min
Views32K
Внимание!
Перед изменением файла .htaccess не забудьте сделать его резервную копию.


1 — Перенаправляем WordPress RSS поток на feedburner с использованием .htaccess
Почему некоторые вебмастера не используют feedburner? Ведь это такой замечательный инструмент для контроля за подписками на RSS. Проблема в том, что приходится руками исправлять файлы шаблонов. Этот прием поможет сохранить Ваше время.
И не забудьте исправить в строке 6 на Ваш код

<IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteCond %{HTTP_USER_AGENT} !FeedBurner    [NC]
 RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC]
 RewriteRule ^feed/?([_0-9a-z-]+)?/?$ httр://feeds2.feedburner.com/wordpress[R=302,NC,L]
</IfModule>


Читать дальше →
Total votes 72: ↑62 and ↓10+52
Comments29

Принципы дизайна страниц оплаты для интернет-магазинов

Reading time14 min
Views21K
Представляю вашему вниманию перевод статьи под названием "Fundamental Guidelines Of E-Commerce Checkout Design" от Christian Holst. Перевели в компании UXDepot специально для пользователей Хабрахабра с одобрением издания Smashing Magazine.


Грустная статистика систем электронной коммерции — согласно последним исследованиям, по крайней мере 59,8% потенциальных покупателей покидают сайт на этапе оформления заказа и его оплаты (у разных исследований разные показатели — от 59,8% у MarketingSherpa до 83% у SeeWhy).

Основной вопрос заключается в том, почему пользователи так часто и массово покидают свою корзину, не закончив оформление заказа? Причина заключена в какой-то фундаментальной ошибке дизайнеров, создающих интернет-магазины? А быть может есть какие-то формальные правила, которые усложняют жизнь простым пользователям и мешают им покупать продукты? Существует ли какая-то возможность улучшить ситуацию и повысить конверсию электронных магазинов?
Читать дальше →
Total votes 174: ↑168 and ↓6+162
Comments58

Улучшаем интерфейс Java-приложения

Reading time27 min
Views99K
Добрый день, Хабражитель!

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

Итак, в данном посте я постарался изложить самые важные и значимые на мой взгляд моменты по работе со Swing и графикой — как создавать компоненты, как стилизовать интерфейс, чего делать не стоит и многое другое…

Читать дальше →
Total votes 118: ↑113 and ↓5+108
Comments71

Видеокурс по Kohana 3.1

Reading time2 min
Views18K
Приветствую вас, уважаемые хабралюди!

Хочу предложить вашему вниманию видеокурс моего производства по фреймворку Kohana 3.1.

Что за видеокурс такой и кому он нужен: видеокурс бесплатный, доступен без предварительной регистрации — я не последователь Азамата Ушанова (да-да, такие еще остались, но нас очень мало).

Основная цель видеокурса: рассказать понятным языком (доступным даже начинающему) о преимуществах ООП и MVC-подхода, о возможностях фреймворка Kohana в плане упрощения труда программиста в реализации часто используемых модулей.

Дело в том, что официальное руководство пользователя Kohana 3.1 никуда не годится (тем более для начинающего веб-мастера), получить структурированную в сложностно-тематическую последовательность информацию из разрозненных постов на блогах — весьма сложно. Я решил компенсировать этот недостаток выпуском видеокурса с последовательным изложением материала, от установки локальной среды разработки до реализации конкретного проекта на Kohana (проект — некая образовательная система, которую, от урока к уроку, я программирую на ваших глазах).

На кого рассчитан видеокурс: начинающие веб-мастера, желающие перейти от программирования на чистом PHP к MVC-фреймворку.
Читать дальше →
Total votes 69: ↑59 and ↓10+49
Comments34

Принцип цикады и почему он важен для веб-дизайнеров

Reading time6 min
Views229K
Пару лет назад я прочитал интересные факты о жизненном цикле периодических цикад. Обычно мы не видим вокруг себя много этих насекомых, потому что бóльшую часть своей жизни они проводят под землёй и тихо сосут корни растений.

Однако, в зависимости от вида, каждые 7, 11, 13 или 17 лет периодические цикады одновременно массово вылезают на свет и превращаются в шумных летающих тварей, спариваются и вскоре умирают.

Хотя наши странные цикады весело уходят в иной мир, возникает очевидный вопрос: это просто случайность, или числа 7, 11, 13 и 17 какие-то особенные?
Читать дальше →
Total votes 696: ↑682 and ↓14+668
Comments119
1

Information

Rating
Does not participate
Location
Тюменская обл. и Ханты-Мансийский АО, Россия
Date of birth
Registered
Activity