Pull to refresh
0
0
ahiskali @ahiskali

User

Send message

Пишем драйвер для USB девайса. Pipe 0: что такое usb?

Reading time3 min
Views24K
Случилось так, что пришлось мне писать с нуля драйвер для usb дисплея под windows. Имея возможность — расскажу о деталях столь занимательного процесса.
image

USB – это simple

Несмотря на то, что написание драйверов считается достаточно трудным, в сравнении с прикладным программированием – и в этом низкоуровневом мире программисты не были обделены вниманием, большим шагом в упрощении создания драйверов стала разработка шины usb.
Итак, почему же шина usb так удобна, и что скрывает за собой слово Universal в расшифровке аббревиатуры.
Читать дальше →
Total votes 101: ↑87 and ↓14+73
Comments44

Самостоятельное изучение схемотехники. Основные понятия. Часть 1

Reading time3 min
Views320K
Изучение цифровой схемотехники нужно начинать с теории автоматов. В этой статье можно найти некоторые элементарные вещи, которые помогут не потеряться в дальнейших статьях. Я постарался сделать статью легкочитабельной и уверен, что неподготовленный читатель сможет в ней легко разобраться.

image
Читать дальше →
Total votes 198: ↑188 and ↓10+178
Comments158

Программизм: история одной болезни

Reading time7 min
Views12K
Вероятно, в этой статье нет ни одной новой или свежей мысли, мало того, я уверен, что вы уже не раз читали нечто подобное. Статья не претендует и на то, чтобы быть истиной. Ее содержание – плод собственного опыта, проб, ошибок и одновременно выжимка из тех знаний, которые удалось перенять от коллег, прочитать на Хабре и в других местах. Наверное, для каждого конкретного индивидуума то, что сказано в этом тексте, будет сильно отличатся от действительности, но, я уверен, многие смогут узнать в описании себя. Первая стадия, наверное, не очень характерна для программистов, которые не занимались олимпиадным программированием в бытность студентами или учениками, а вот следующие уже практически никак не зависят от этого фактора.

Стадия первая. Рождение


«Я программист. Я олимпиадник. Я знаю что такое «о»-маленькое. Я знаю, что такое «О»-большое. Я понимаю, чем отличается «эн-квадрат» от «эн-факториала» и почему они оба стыдливо прячутся при виде «эн-логарифм-эн». Сейчас я приду на проект и перепишу эту тормозную кашу из кода так, что она будет работать в много раз быстрее! Смотрите, я знаю алгоритм Кнута-Морриса-Пратта! А здесь можно сэкономить одно сравнение строчек на равность! А если эту рекурсию развернуть в цикл, то за счет экономии вызовов методов и выделения памяти в стэке… Что, программа тормозит? Сейчас я посмотрю код… Вот! Смотрите, здесь вместо двух вложенных циклов можно написать один и использовать бинарный поиск вместо внутреннего!»

Знакомтесь, это первая стадия. Она, в отличие от следущих, особенно характерна именно для олимпиадников. Пациент думает о том, как написать быстрый код. Он одержим быстрым кодом. К сожалению, наличие быстрого кода не всегда делает быстрым программный продукт в целом.
дальше все будет хуже
Total votes 329: ↑307 and ↓22+285
Comments137

Самостоятельное изучение схемотехники

Reading time2 min
Views233K
Я решил написать ряд статей, которые должны помочь разобраться самостоятельно в предмете схемотехники. Первая часть вводная, в ней рассказывается об основных дисциплинах, которые стоит изучить для понимания принципов конструктирования и построения электрических схем. Если эта статья вам понравится, тема будет развиваться, внимание будет фокусироваться на нюансах и примерах.

Image #851653, 113.3 KB
Читать дальше →
Total votes 176: ↑158 and ↓18+140
Comments76

Нам это не нужно

Reading time5 min
Views16K
image
Этой тарахтелкой можно пугать беременных кошек, но какой прок от неё в бою? — генерал Китченер о первом танке, 1915.

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

Но еще не приступив к сути, я почувствовал что со всех сторон стекаются комментарии «такая система мне не нужна», «программам не нужны такие ресурсы», «текущих ресурсов и так для всего хватает», «будущее за видеокартами».

Я сделал отступление, чтобы написать для чего это нужно. Потом развил отступление. А потом взял и написал пост, почему я считаю, зачем нужны и полезны гигабайты и много-много ядер.
Читать дальше →
Total votes 84: ↑67 and ↓17+50
Comments70

Эффективный способ повысить умственную работоспособность

Reading time13 min
Views221K
В прошлой заметке я писал о том, чего не стоит делать, если у вас проблемы с работоспособностью. В этой части я расскажу об эффективном способе, не требующем медикаментов. Медикаменты — это только поддержка, дополнение. Но способ этот требует организованности и силы воли, а потому так нелюбим большинством из нас.
Читать дальше →
Total votes 173: ↑165 and ↓8+157
Comments272

10 бесценных жизненных советов, которые дает нам Альберт Эйнштейн

Reading time4 min
Views55K
Интересная на мой взгляд статья, которая показывает, что одни и те же принципы никогда не устаревают. Конечно, все они уже часто проскакивали в той или иной форме на множестве ресурсов, но мне бы хотелось предложить вам их видение Ученым с большой буквы, Альбертом Эйнштейном.
Читать дальше →
Total votes 200: ↑172 and ↓28+144
Comments63

5 способов, которыми игры пытаются вызвать зависимость

Reading time10 min
Views189K
Итак, в новостях снова пишут, что кто-то еще умер из-за игромании. Да, опять Корея.

Какого ...? послушайте, я не пытаюсь доказать что видео игры — это героин. Я полностью понимаю, что в данном случае у жертвы было много проблем в жизни. Но, половина из вас знает что World of Warcraft затягивает и что доктора считают игровую зависимость серьёзной проблемой. А вопрос вот в чем: может быть какие-то игры намеренно разрабатывались, чтобы заставлять вас играть в них, даже если вы не получаете от этого удовольствия?
Давайте посмотрим как это работает
Total votes 320: ↑295 and ↓25+270
Comments250

uTorrent на страже online просмотра

Reading time2 min
Views94K


Порой есть необходимость узнать качество видеоматериала, еще до его скачивания(сэмплы есть не всегда, да и скриншот не дает реальной картины) или просто быстро начать просмотр серии сериала, фильма, которые вдруг захотелось посмотреть в данный момент. В любимом клиенте utorrent, функция stream добавленная в alpha версии работает отвратительно. Для TorrentStream необходимо устанавливать специальный софт и смотреть в браузере. А как быть тем, кто любит «маленький» utorrent, хочет начать смотреть видео уже в момент его скачивания, не хочет загружать ничего лишнего и сторонник просмотра в полноценном видеоплеере?
Выход есть...
Total votes 101: ↑95 and ↓6+89
Comments72

Код, который приятно читать

Reading time2 min
Views3.6K

Хороший код


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

Основное правило

Я считаю, что читаемым является код, в который можно не вчитываться.
То есть, пары-тройки строк дожно быть достаточно, чтобы сказать, что делает класс или метод. Ещё пары-тройки — чтобы примерно сказать, как он это делает.

Прочие замечания

Я заметил, что есть ещё несколько довольно общих правил, которые делают код симпатичнее.
Читать дальше →
Total votes 89: ↑71 and ↓18+53
Comments242

Быстрочтение featuring Восприятие текста

Reading time8 min
Views79K
Привет всем. Основываясь на предыдущем опыте, считаю нужным сразу расставить все точи над ё. Описанная ниже методика — не мое изобретение. Однако из собственного опыта могу уверить вас, что она работает. Ровно так, как обещано.
Идея, описанная в посте, появилась давно (под катом есть история), в том виде, в каком расскажу ее я, по большей части она представлена в чудесных книгах Тони Бузана Use You Head и The Speed Reading Book (в последней много воды).

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

Написано с подачи пользователя cympak. Посвящается всем кто много читает: будь то деловые документы, художественные произведения или статьи на Хабре типа этой.

Прежде чем приступить к самому главному, прошу вас пройти тест из шести вопросов на Да/Нет.

1. Чтение со скоростью свыше 1000 слов в минуту невозможно?
2. Медленная скорость чтения способствует лучшему пониманию текста?
3. Пропускать слова во время чтения — плохая привычка, ухудшающая понимание текста?
4. По умолчанию мы все читаем с «естественной» для нас скоростью, а следовательно, наилучшей?
5. Если вы не поняли слово или предложение, лучше перечитать его и понять?
6. Ваши глаза находятся в непрерывном движении во время чтения?
За результатами и, наконец-то, интересными штуками добро пожаловать под кат.
Читать дальше →
Total votes 169: ↑145 and ↓24+121
Comments100

Linux Mint: продолжаем разговор

Reading time3 min
Views34K
Linux Mint
Всем доброго времени суток.
Сегодня исполняется ровно неделя с тех пор, как я сменил Windows 7 на Linux Mint. За это время я открыл для себя кучу возможностей этой системы. Но в данной статье речь пойдет не о возможностях, а о проблемах, которые у вас могут возникнуть в начале адаптационного периода. Ориентирована статья на тех, кто перешел на Linux совсем недавно. А если Вы только собираетесь это сделать, то статья вам тем более пригодится.

Нажимая сюда, вы соглашаетесь дочитать статью до конца!
Total votes 129: ↑95 and ↓34+61
Comments223

Легальный взлом как разминка для ума

Reading time5 min
Views15K
IT-шники часто придумывают себе упражнения для ума, пытливый ум постоянно требует разминки. Хочу рассказать об одном из самых жестких и спорных способах – взлом специально защищенных программ-головоломок (Часто их называют crackme).

Одно из мест, где такие головоломки собраны — crackmes.de.

Здесь находятся много интересных программ, на которых можно испробовать свои силы по взлому. Никакого криминала – программы специально написаны для этой цели (так называемые crackme и reverseme);

Часто любят говорить «Все защиты можно взломать». Поковыряв некоторые из crackme вы возможно измените своё мнение.
Читать дальше →
Total votes 84: ↑79 and ↓5+74
Comments42

«Чип энд Дэйли» спешат на помощь

Reading time2 min
Views1.2K
Мы запустили вчера проект «Чип энд Дэйли» — он продает 1 товар в день, но с большой скидкой. Товар нужно успеть купить :) Американский аналог Woot.com вполне успешен – 1-1,5 млн. уников в месяц, оборот более 120 млн. дол. при марже 10-15%. Я расскажу, что скрыто за «оберткой» сайта и почему этот бизнес совсем не просто скопировать; а также, какие ошибки мы уже успели сделать.

image

Читать дальше →
Total votes 175: ↑140 and ↓35+105
Comments165

Интервью с авторами TorrentFreak. Часть 2: копирайт-войны

Reading time3 min
Views853
После первой части интервью, где шла речь о внутренней кухне, создатели TorrentFreak.com рассказали, как сохраняют оптимизм, что думают о пиратах и какой выход видят из нынешнего копирайт-противостояния.



читать дальше
Total votes 33: ↑29 and ↓4+25
Comments51

Что почитать по веб-разработке

Reading time3 min
Views234K
Топик Много книг, хороших и разных навёл на мысль сделать похожий каталог наиболее удачных и интересных книг по веб разработке.

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

update: Теперь есть электронные версии книг!

Начнём…
Читать дальше →
Total votes 118: ↑99 and ↓19+80
Comments137

%username%, хочешь пострелять шариками с краской в другого %username%?

Reading time3 min
Views656
image

Может в пейнтбол?

По результатам моего мини-опроса и мини-топика мы выяснили, что на хабре есть сторонники активного отдыха, в частности, пейнтбола. В этом топике я попытаюсь рассказать вам о том, что такое пейнтбол, где в него играют и предложить поиграть в него на сценарной игре "СТАЛКЕР", которая будет проходить 27-го июня около г. Мытищи, Московская область.

Читать дальше →
Total votes 79: ↑59 and ↓20+39
Comments90

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

Reading time6 min
Views3.2K
В этом обзоре мы проанализировали несколько систем коллективного комментирования веб-страниц и постарались найти идеальный инструмент для удаленного обсуждения и отладки work-in-progress сайтов с заказчиком и другими участниками работы.

image
Читать дальше →
Total votes 80: ↑76 and ↓4+72
Comments51

Быстрое чтение и ширина экрана

Reading time1 min
Views6.7K
img_4703.jpgХочу поделиться одним наблюдением, которое я сделал в процессе тренировки скорочтения (таким и таким способом).

Дело в том, что на современных мониторах, особенно широких, при разворачивании окна на весь экран получается слишком широкая область с текстом. Ее довольно трудно охватить взглядом. А один из основных навыков скорочтения — это максимально широкое поле зрения. В данном случае слишком длинные строки являются препятствием — глаза вынуждены бегать очень далеко влево-вправо.

Привычка разворачивать окно на весь экран идет, видимо, со времен первых мониторов с разрешением 640x480, где умещалось очень мало текста. Сейчас делать так совсем не обязательно. Причем и на стандартных 3:4 экранах, думаю, тоже можно ограничить ширину окна.

Кстати, в таком случае становится понятным дизайн сайтов с узкой текстовой колонкой и множеством дополнительной информации по обоим краям. Правда, если бы по краям были чистые поля, то было бы еще лучше, но рекламу-то надо где-то показывать это может идти вразрез с планами автора сайта, который хочет уместить максимум информации на первом экране без скролирования.
Внутри полезный совет
Total votes 59: ↑42 and ↓17+25
Comments73

Information

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

Specialization

Backend Developer
Middle
Ruby on Rails
Redis
PostgreSQL