Как стать автором
Обновить
23
0

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

Отправить сообщение

Паттерны ООП в метафорах

Время на прочтение17 мин
Количество просмотров565K
Большинство литературы посвященной паттернам в ООП (объектно-ориентированном программировании), как правило, объясняются на примерах с самим кодом. И это правильный подход, так как паттерны ООП уже по-умолчанию предназначаются для людей, которые знают что такое программирование и суть ООП. Однако порой требуется заинтересовать этой темой людей, которые в этом совершенно ничего не понимают, например «не-программистов» или же просто начинающих «компьютерщиков». Именно с этой целью и был подготовлен данный материал, который призван объяснить человеку любого уровня знаний, что такое паттерн ООП и, возможно, привлечет в ряды программистов новых «адептов», ведь программирование это на самом деле очень интересно.
Статья предназначена исключительно для новичков, так что «старожилы» ничего нового для себя не узнают. В основном статья описывает известные паттерны из книги «Приемы объектно-ориентированного программирования. Шаблоны проектирования.», но более популярным и простым языком.
Читать дальше →
Всего голосов 214: ↑201 и ↓13+188
Комментарии86

Почему я стремлюсь домой: манифест папы и разработчика

Время на прочтение3 мин
Количество просмотров2.1K
Я люблю свою работу, люблю свою карьеру, люблю решать сложные задачи, люблю разрабатывать большие программы. Но не настолько, насколько я люблю свою дочь.

Когда я был моложе, я приходил раньше всех на работу, весь день писал код, последним уходил из офиса, приходил домой и опять писал код. Не имело значение что писать, мне просто это нравилось. До того момента, пока не произошло замечательное событие. У нас с женой появился ребенок.
Читать дальше →
Всего голосов 202: ↑183 и ↓19+164
Комментарии103

Сон и продуктивная деятельность

Время на прочтение8 мин
Количество просмотров106K

Вступление


Доброго времени суток, %habrauser%! Думаю, в этой статье я не открыл ничего нового. Просто меня самого заинтересовала тема продуктивного сна. Несколько последних лет я был приверженцем мнения, что сон – это бесполезная трата времени, к сожалению необходимая организму. И посему, я максимально старался сократить время сна. Но чем больше я это делал, тем больше я начинал походить на зомби. И тогда я стал искать альтернативу. И результатом обобщения всей найденной мной информацией и стала эта статья. Итак, поехали!
Читать дальше →
Всего голосов 243: ↑215 и ↓28+187
Комментарии149

FTBB программатор для minimalist Arduino

Время на прочтение3 мин
Количество просмотров19K
Не так давно я рассказывал, как дешево собрать Arduino-совместимую плату.
Единственное, чего не хватало для полноценного комплекта — это программатора. Денег на полноценный программатор обычно жалко, особенно если он нужен время от времени в основном для прошивки бутлоадера в новый чип.
Большинство схем программаторов не решают проблемы курицы и яица — программатор тоже нужно чем-то прошивать. Свою минимальную Arduino я тоже прошивал имевшейся под рукой другой платой Arduino. Но ведь не у всех же она есть, верно? Значит нужен программатор, не требующий прошивки.
Изобретать велосипед я не стал и изготовил программатор на основе схемы, опубликованной у DIHALT. На самом деле им можно прошить любой AVR микроконтроллер или использовать как USB-UART адаптер. В общем, пригодится.

Читать дальше →
Всего голосов 45: ↑38 и ↓7+31
Комментарии80

Гугл научился строить графики математических функций

Время на прочтение1 мин
Количество просмотров52K

(кликабельно)

Теперь вы можете построить графики математических функций прямо на странице результатов поиска. Просто введите в строке поиска функцию и вы увидите интерактивный график в верхней части страницы результатов поиска.
Читать дальше →
Всего голосов 216: ↑206 и ↓10+196
Комментарии110

Создаём аппаратный генератор случайных чисел

Время на прочтение12 мин
Количество просмотров59K
Я хочу представить вашему вниманию программно-аппаратный вариант получения случайных чисел. Забегая вперёд, скажу, что данный вариант не единственный, и этот пост открывает мою небольшую серию статей о получении, генерации и изучении случайных чисел, или точнее сказать просто случайностей.



Читать дальше →
Всего голосов 162: ↑159 и ↓3+156
Комментарии104

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

Время на прочтение6 мин
Количество просмотров49K
На Хабре не раз и не два публиковались статьи и заметки об эффективной работе, управлении временем и прочих вещах. Некоторые советы я использую, некоторые – не получается, еще есть советы, неприменимые лично ко мне. В принципе, более-менее четкий режим дня помогает жить, это так. Но иногда очень сложно этот самый день начать. Потом все хорошо, все идет по выработанной схеме. Но вот вставать по утрам осенью или зимой для некоторых категорий людей может быть очень сложной задачей.



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

Читать дальше →
Всего голосов 52: ↑43 и ↓9+34
Комментарии58

zsh :: настраиваем «правое» приглашение командной строки

Время на прочтение2 мин
Количество просмотров8.3K
Ковыряясь с настройками zsh, наткнулся на весьма интересное решение для приглашения командной строки, которое размещается в этом шелле справа. Обычно туда принято помещать часы, но мне весьма приглянулась идея разместить там также нотификатор заряда батареи. В зависимости от уровня заряда, нотификатор показывается зеленым, желтым или красным цветом. Автор идеи зачем-то приплел к решению python, я все переписал на родном шелле.
Выглядит это как-то вот так:
Command line prompt, zsh
Читать дальше →
Всего голосов 51: ↑48 и ↓3+45
Комментарии25

Процессор и ПК своими руками: проект BMOW 1

Время на прочтение2 мин
Количество просмотров84K


Никому не известный инженер Стив Чемберлин (Steve Chamberlin) решил изменить общепринятое мнение о том, что процессор своими руками создать невозможно. Точнее, процессор достаточно сложного ПК, который смог бы дублировать функции 8-битных вычислительных устройств, получивших распространение в начале 80-х. Вначале это было небольшой проект, который со временем вырос в нечто большее. Сейчас BMOW 1 представляет собой полноценный ПК на основе самодельного процессора, который запускает программы, имеет клавиатуру, VGA-видео, аудио-систему. Программная среда для BMOW 1 — Basic.

Читать дальше →
Всего голосов 129: ↑113 и ↓16+97
Комментарии105

Машина для заваривания чая на Arduino

Время на прочтение2 мин
Количество просмотров21K
Доброго времени суток, уважаемые хабражители. Решил поделиться с вами своей поделкой, а заодно и повысить настроение. Вы никогда не задумывались, почему кофеварки есть почти в каждом доме, а аппаратом для быстрого приготовления стакана чая может похвастать далеко не каждый? Подробности об изготовлении несколько бесполезного простого аппарата для заваривания чая под катом.
Читать дальше →
Всего голосов 209: ↑198 и ↓11+187
Комментарии91

Процессор

Время на прочтение8 мин
Количество просмотров151K
Сколько я себя помню, всегда мечтала сделать процессор. Наконец, вчера я его сделала. Не бог весть что: 8 бит, RISC, текущая рабочая частота — 4 кГц, но он работает. Пока что в программе моделирования логических цепей, но все мы знаем: «сегодня — на модели, завтра — на деле!».

Под катом несколько анимаций, краткое введение в двоичную логику для самых маленьких, короткий рассказ про основные микросхемы логики процессора и, собственно, схема.
Читать дальше →
Всего голосов 361: ↑347 и ↓14+333
Комментарии66

Видеоплеер из подручных материалов

Время на прочтение6 мин
Количество просмотров66K
Эта статья расскажет, как сделать видеоплеер из предметов, которые можно найти в кладовке любого айтишника. Ардуино, журнал Vogue, и дисплей от Нокиа 3310 можно оставить в покое — они нам не понадобятся. Наличие паяльника приветствуется, но можно обойтись и без него.

Судя по скорости развития технологий, лет через десять появится поколение, никогда не видевшее электронно-лучевых трубок. А между тем, история видео дисплеев начиналась с совершенно других устройств…
Читать дальше →
Всего голосов 337: ↑330 и ↓7+323
Комментарии61

Одноразовые URI: после прочтения уничтожить

Время на прочтение1 мин
Количество просмотров50K
Когда вы передаёте кому-то по почте или скайпу секретный текст/ссылку/пароль, то стоит предусмотреть дополнительные меры безопасности. А именно, подумать о том, что копия вашего сообщения хранится во многих местах: в логах почтового сервера, в истории сообщений Skype, в истории браузера. Как обеспечить секретность информации в таких условиях?

Оригинальный способ придумали разработчики сервиса One-Tme Secret. Их веб-приложение создано для вставки фрагментов текста и генерации одноразовых URI, которые срабатывают только один раз, после чего информация стирается с сервера. Принцип описывается известным выражением «после прочтения уничтожить». Вдобавок, серверы не хранят никакой информации о посетителях сайта и не ведут логов, если верить разработчикам, но они, вроде бы, порядочные ребята.

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

P.S. Ещё один похожий сервис: TMWSD (This Message Will Self-Destruct).
Всего голосов 38: ↑33 и ↓5+28
Комментарии27

«Вконтакте» выдаёт личные данные в поиске по документам

Время на прочтение1 мин
Количество просмотров56K
В социальной сети «Вконтакте» есть возможность производить поиск в документах любого пользователя. Правда, для этого документы должны быть помечены как для публичного доступа. Однако по умолчанию эта функция включена. К чему это приводит? Посмотрите на результаты по запросу «паспорт»:

image

Здесь можно найти сканы паспортов и других документов пользователей. Если «поиграться» с поиском, то можно найти не менее интересные вещи.
Вконтакте знает об этой «фиче», но ничего не делает для её устранения. Официально, они опять возлагают всю вину на своих пользователей. Это же очень удобно.

История с поиском в SMS-сообщениях Мегафона через Яндекс никак не затихает.

[ Источник ]

P.S. Минусаторам отдельное спасибо.
Всего голосов 221: ↑145 и ↓76+69
Комментарии107

Генерация версии android приложения из ревизии subversion и git

Время на прочтение6 мин
Количество просмотров3.9K
Когда пользователи сталкиваются с проблемами — всегда хочется точно знать какой именно версией ПО они пользуются. При использовании системы контроля версий и автоматической нумерации версий ПО, такую информацию можно предоставить пользователям, а в случае необходимости просто попросить продиктовать строку.

О том, как можно пронумеровать свой android проект написано здесь и здесь. В обоих статьях рассмотрен пример получения версии проекта с помощью 'svn info', причём в первой статье автор жалуется на отсутствие SvnAnt, а во второй статье автор замечает проблему, связанную с использованием 'svn info'. Проблема связана с тем, что 'svn info' выдаёт неточные сведения о ревизии рабочей копии.

Далее рассмотрен пример решения этой проблемы достаточно простым способом.
UPD: добавлен скрипт для git.
Читать дальше →
Всего голосов 20: ↑17 и ↓3+14
Комментарии13

Эффективное использование Vim

Время на прочтение11 мин
Количество просмотров73K

Введение


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

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

Эта статья также не является tutorial’ом для начинающих пользователей Vim, хотя и им (а также пользователям Emacs) может быть интересна, поскольку некоторые упоминаемые принципы являются достаточно общими и действуют не только в системах редактирования текстов, а вообще везде, где идет речь об использовании компьютера для редактирования чего-либо. Тем не менее, я предполагаю, что читатель знаком с основными концепциями, применяемыми в Vim (режимы, регистры, буфера, команды) и не останавливаюсь на их подробном описании.

По умолчанию Vim настроен очень старомодно, и эта настройка подразумевает, что пользователь при работе с текстом будет мыслить метафорами пятидесятилетней давности, как будто бы сейчас заря эпохи UNIX. Однако дизайн Vim позволяет сделать несколько настроек, после которых система станет выглядеть вполне прилично и станет работать весьма эффективно, сочетая в себе полезные черты и древних юниксовых инструментов работы с текстом, и современных WYSIWIG-процессоров, при этом обходя, насколько это возможно, присущие им недостатки. Вот об этих настройках и приемах их использования и пойдет речь.
Читать дальше →
Всего голосов 141: ↑128 и ↓13+115
Комментарии67

ЧтоГде? — поиск от 2ГИС в Вашем браузере

Время на прочтение2 мин
Количество просмотров704
ЧтоГде?
Наверняка многим из вас приходилось искать часы работы какого–нибудь магазинчика, или адрес ближайшей кофейни, или телефон посольства Испании, например.
Кто–то использует для этих целей обычные поисковики, а кто–то — специальные справочники, вроде 2ГИС (на основе API которого, кстати, мы и сделали наш сервис).

В общем, мы подумали, что было бы неплохо иметь такой справочник всегда под рукой. И сделали расширения для всеми нами любимых браузеров (Chrome, Firefox и Opera). Надеемся, что кому–то они окажутся полезными.

Немного грязных подробностей внутри
Всего голосов 52: ↑42 и ↓10+32
Комментарии34

Обновление timezone в Java

Время на прочтение1 мин
Количество просмотров44K
Сегодня взя Россия обновляет свои сервера, с ОС все достаточно просто, достаточно обновить пакет tzdata, timezone-data или еще как то специфично для конкретной ОС.

Но есть приложения, которые не используют серверные TZ, например java.
Для обновления необходимо использовать специальную утилиту tzupdater:

www.oracle.com/technetwork/java/javase/tzupdater-readme-136440.html

Не забудьте проверить свои программы!
Всего голосов 24: ↑17 и ↓7+10
Комментарии24

Минимальная Arduino своими руками

Время на прочтение4 мин
Количество просмотров378K
Arduino — это хорошо, когда хочется быстро реализовать идею, не заморачиваясь мелочами. Но когда идея проверена, лишняя функциональность начинает просто мешать.
Собирая робота на гусеничном шасси, я столкнулся с тем, что бутерброд из Arduino + MotorShield + Sensor Shield плюс ко всему аккумулятор и прочие компоненты обросли проводами и стали с трудом помещаться на не самом крошечном шасси. Городить еще кучу шилдов, чтобы избавиться от лишних проводов не хотелось.
Появилась идея избавиться от всего, что в Arduino не требуется в готовом девайсе. Попутно хотелось снизить стоимость робота.
Многих интересующихся электроникой отпугивает еще и стоимость Arduino в магазинах. С ebay и китайских магазинов посылка идет долго, изобретательский пыл успевает остыть, поэтому приобретение откладывается «на потом», «когда сын подрастет». Поэтому я решил собрать Arduino-совместимую плату из деталей, которые всегда можно купить в городе.
В итоге я получил Arduino-совместимую плату, стоимостью в 210 рублей на макетной плате и в ~270 рублей в готовом для наращивания функционала виде.
Minimalist Arduino
«Minimalist Arduino»
С нуля до полной готовности собирается с дешевым 40Вт паяльником за 1 выходной без каких-то особых навыков.
Читать дальше →
Всего голосов 133: ↑131 и ↓2+129
Комментарии74

Linux Foundation рекомендует сделать простое меню для отключения UEFI Secure Boot

Время на прочтение2 мин
Количество просмотров10K
Ведущие программисты Canonical и Red Hat составили документ с подробным анализом, как на Linux повлияет новый механизм защищённой загрузки UEFI Secure Boot, который будет в обязательном порядке ставиться на персональные компьютеры с Windows 8, то есть с первого квартала 2012 года UEFI Secure Boot станет стандартом практически для всех новых компьютеров в мире.

Документ содержит технические рекомендации для OEM-сборщиков, как реализовать поддержку UEFI, чтобы не блокировать установку на компьютер Linux и другого свободного ПО.
Читать дальше →
Всего голосов 79: ↑68 и ↓11+57
Комментарии161

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность