Pull to refresh
4
0
Алексей Крайст @Chrizt

User

Send message

Светодиодная лента и другие виды освещения

Reading time 6 min
Views 28K
Многие ли из вас работают дома? Я да, потому что когда я делаю что-то интересное, то могу забыть поесть или поспать, так что домашний офис просто минимизирует риск умереть от голода или недосыпа *здесь должен быть смайлик*.

Пришло время проектировать новую квартиру — встали вопросы организации рабочих мест для нас с мужем. Моей задачей было освещение. Поэтому сейчас я хотела бы рассказать вам о миллионе засад толике здравых решений, которые нам удалось найти в современном море интерьерных возможностей. Но обо всем по-порядку:
Читать дальше →
Total votes 22: ↑17 and ↓5 +12
Comments 17

Искусственный рассвет

Reading time 9 min
Views 232K
Началось всё год назад. Перед Новым 2014 годом несколько пришел в упадок жизненный тонус. Процесс самокопания привел к следующей мысли:



— А, что ж так темно-то, Господи? © День радио.

Впрочем, для человека, живущего зимой по летнему времени — мысль вполне естественная.
Что же делать?
Total votes 187: ↑185 and ↓2 +183
Comments 87

Введение в анализ сложности алгоритмов (часть 1)

Reading time 10 min
Views 378K
От переводчика: данный текст даётся с незначительными сокращениями по причине местами излишней «разжёванности» материала. Автор абсолютно справедливо предупреждает, что отдельные темы покажутся чересчур простыми или общеизвестными. Тем не менее, лично мне этот текст помог упорядочить имеющиеся знания по анализу сложности алгоритмов. Надеюсь, что он будет полезен и кому-то ещё.
Из-за большого объёма оригинальной статьи я разбила её на части, которых в общей сложности будет четыре.
Я (как всегда) буду крайне признательна за любые замечания в личку по улучшению качества перевода.


Введение


Многие современные программисты, пишущие классные и широко распространённые программы, имеют крайне смутное представление о теоретической информатике. Это не мешает им оставаться прекрасными творческими специалистами, и мы благодарны за то, что они создают.

Тем не менее, знание теории тоже имеет свои преимущества и может оказаться весьма полезным. В этой статье, предназначенной для программистов, которые являются хорошими практиками, но имеют слабое представление о теории, я представлю один из наиболее прагматичных программистских инструментов: нотацию «большое О» и анализ сложности алгоритмов. Как человек, который работал как в области академической науки, так и над созданием коммерческого ПО, я считаю эти инструменты по-настоящему полезными на практике. Надеюсь, что после прочтения этой статьи вы сможете применить их к собственному коду, чтобы сделать его ещё лучше. Также этот пост принесёт с собой понимание таких общих терминов, используемых теоретиками информатики, как «большое О», «асимптотическое поведение», «анализ наиболее неблагоприятного случая» и т.п.
Читать дальше →
Total votes 106: ↑98 and ↓8 +90
Comments 27

Копи деньги смолоду или пара утверждений, легко проверяемых в Excel

Reading time 2 min
Views 209K
На хабре регулярно появляются посты, посвященные системам личных финансов. Системы эти бывают простенькие, навороченные, красивые и т.д. Но! Большинство из них почему-то напрочь игнорирует такую простую штуку как сложные проценты (простите за каламбур). А ведь это основа личных финансов.

Приведу два простых примера, иллюстрированных табличками в Excel. Для затравки вопрос: имеются два ровесника: Вася и Петя. Вася фрилансер и ему 22 года. Он начал откладывать по штуке долларов в год и откладывал их до 30 лет (всего 8 лет). Потом родился ребенок, с деньгами стало туговато и откладывать он больше не смог. Петя же наоборот, в начале карьеры откладывать не мог, но в 30 лет он стал тимлидером и наконец-то смог относить в банк по той же штуке ежегодно. Делал он это аккурат до выхода на пенсию, т.е. до 65 лет (итого 36 лет). Вопрос: у кого в 65 лет денег на счету больше? Правильный ответ: конечно же у Васи.
Читать дальше →
Total votes 87: ↑46 and ↓41 +5
Comments 340

Часы Casio Protrek PRG-240-1ER

Reading time 7 min
Views 104K
Мир Вашим домам и Вашим семьям, дорогое сообщество.

Года 2 назад подарила мне жена на день рождения часы Casio. Их особенность и привлекательность для меня была в том, что они имели две солнечные батареи — небольшие сегментированные панельки сверху и снизу экрана. Люблю я необычные вещи. Но беда: через года полтора я повредил в них ушко, за которое крепится ремешок из нержавейки. В общем я остался без часов. Примерно год ходил без них, но ритм жизни всё же требует смотреть время не на мобильнике, а так же иметь в быстром доступе и всегда с собой нечто более, чем просто часы. Поэтому находясь на отдыхе в Севастополе я с большим интересом отнёсся к попавшемуся в шаге от порта магазину часов и в итоге стал обладателем трёх часов: двух наручных (себе и сыну) и одних настенных с огромными цифрами. Об одних из них я вам и хочу рассказать. К слову замечу, что у меня нет острой любви именно к марке Casio. Даже скорее наоборот. Она уже приелась, чтоли. Но Gamin в этом магазине представлен не был, а Tissot, Q&Q, Orient я буду рассматривать покупая себе модный костюм. В итоге несколько дней подряд разглядывая витрины магазина и ища строгие, красивые и функциональные часы я таки не без первичного сожаления остановился на часах именно фирмы Casio. И именно на громоздких защищённых версиях. Потом сожаление улетучилось, но это потом. Выбрал одни часы, в которых было всё то же самое, кроме компаса и более пристойного внешнего вида. Потом на следующий день пошёл и поменял именно на эти, в более чем 2 раза более дорогие. Не выдержала душа простых решений.

Итак, я стал обладателем часов Casio серии Protrek. Что же я получил?
Читать дальше →
Total votes 83: ↑53 and ↓30 +23
Comments 174

Хуки — это просто

Reading time 7 min
Views 132K


Хуки — это технология перехвата вызовов функций в чужих процессах. Хуки, как и любая достаточно мощная технология, могут быть использованы как в благих целях (снифферы, аудио\видеограбберы, расширения функционала закрытого ПО, логирование, багфиксинг) так и со злым умыслом (трояны, кряки, кейлоггеры). О хуках уже не раз писали и на Хабре и не на Хабре. Но вот в чём беда — почему-то каждая статья о хуках буквально со второго абзаца начинает рассказывать о «таблице виртуальных функций», «архитектуре памяти» и предлагает к изучению огромные блоки ассемблерного кода. Известно, что каждая формула в тексте снижает количество читателей вдвое, а уж такие вещи — так и вовсе вчетверо. Поэтому нужна статья, которая расскажет о хуках просто. Под катом нет ассемблера, нет сложных терминов и буквально два десятка строк очень простого кода на С++. Если вы давно хотели изучить хуки, но не знали с чего начать — начните с этой статьи.
Читать дальше →
Total votes 94: ↑84 and ↓10 +74
Comments 63

Введение в анализ сложности алгоритмов (часть 4)

Reading time 5 min
Views 98K
От переводчика: данный текст даётся с незначительными сокращениями по причине местами излишней «разжёванности» материала. Автор абсолютно справедливо предупреждает, что отдельные темы могут показаться читателю чересчур простыми или общеизвестными. Тем не менее, лично мне этот текст помог упорядочить имеющиеся знания по анализу сложности алгоритмов. Надеюсь, что он окажется полезен и кому-то ещё.
Из-за большого объёма оригинальной статьи я разбила её на части, которых в общей сложности будет четыре.
Я (как всегда) буду крайне признательна за любые замечания в личку по улучшению качества перевода.


Опубликовано ранее:
Часть 1
Часть 2
Часть 3

Оптимальная сортировка


Поздравляю! Теперь вы знаете о том, как анализировать сложность алгоритмов, что такое асимптотическая оценка и нотация «большое-О». Вы также в курсе, как интуитивно выяснить является ли сложностью алгоритма O( 1 ), O( log( n ) ), O( n ), O( n2 ) и так далее. Вы знакомы с символами o, O, ω, Ω, Θ и понятием «наихудшего случая». Если вы добрались до этого места, то моя статья уже выполнила свою задачу.

Этот финальный раздел — опциональный. Он несколько сложнее, так что можете не стесняясь пропустить его, если хотите.От вас потребуется сфокусироваться и потратить некоторое время на решение упражнений. Однако, так же здесь будет продемонстрирован очень полезный и мощный способ анализа сложности алгоритмов, что, безусловно, стоит внимания.
Читать дальше →
Total votes 58: ↑54 and ↓4 +50
Comments 6

Введение в анализ сложности алгоритмов (часть 3)

Reading time 6 min
Views 125K
От переводчика: данный текст даётся с незначительными сокращениями по причине местами излишней «разжёванности» материала. Автор абсолютно справедливо предупреждает, что отдельные темы могут показаться читателю чересчур простыми или общеизвестными. Тем не менее, лично мне этот текст помог упорядочить имеющиеся знания по анализу сложности алгоритмов. Надеюсь, что он окажется полезен и кому-то ещё.
Из-за большого объёма оригинальной статьи я разбила её на части, которых в общей сложности будет четыре.
Я (как всегда) буду крайне признательна за любые замечания в личку по улучшению качества перевода.


Опубликовано ранее:
Часть 1
Часть 2

Логарифмы


image
Если вы знаете, что такое логарифмы, то можете спокойно пропустить этот раздел. Глава предназначается тем, кто незнаком с данным понятием или пользуется им настолько редко, что уже забыл что там к чему. Логарифмы важны, поскольку они очень часто встречаются при анализе сложности. Логарифм — это операция, которая при применении её к числу делает его гораздо меньше (подобно взятию квадратного корня). Итак, первая вещь, которую вы должны запомнить: логарифм возвращает число, меньшее, чем оригинал. На рисунке справа зелёный график — линейная функция f(n) = n, красный — f(n) = sqrt(n), а наименее быстро возрастающий — f(n) = log(n). Далее: подобно тому, как взятие квадратного корня является операцией, обратной возведению в квадрат, логарифм — обратная операция возведению чего-либо в степень.
Читать дальше →
Total votes 74: ↑60 and ↓14 +46
Comments 4

Введение в анализ сложности алгоритмов (часть 2)

Reading time 11 min
Views 168K
От переводчика: данный текст даётся с незначительными сокращениями по причине местами излишней «разжёванности» материала. Автор абсолютно справедливо предупреждает, что отдельные темы могут показаться читателю чересчур простыми или общеизвестными. Тем не менее, лично мне этот текст помог упорядочить имеющиеся знания по анализу сложности алгоритмов. Надеюсь, что он окажется полезен и кому-то ещё.
Из-за большого объёма оригинальной статьи я разбила её на части, которых в общей сложности будет четыре.
Я (как всегда) буду крайне признательна за любые замечания в личку по улучшению качества перевода.


Опубликовано ранее:
Часть 1

Сложность


Из предыдущей части можно сделать вывод, что если мы сможем отбросить все эти декоративные константы, то говорить об асимптотике функции подсчёта инструкций программы будет очень просто. Фактически, любая программа, не содержащая циклы, имеет f( n ) = 1, потому что в этом случае требуется константное число инструкций (конечно, при отсутствии рекурсии — см. далее). Одиночный цикл от 1 до n, даёт асимптотику f( n ) = n, поскольку до и после цикла выполняет неизменное число команд, а постоянное же количество инструкций внутри цикла выполняется n раз.
Читать дальше →
Total votes 55: ↑53 and ↓2 +51
Comments 16

Изучить Github за 15 минут

Reading time 1 min
Views 127K
TryGit — интерактивный обучающий курс по Github в стиле Codecademy. Курс состоит из 25 мини-уроков, которые знакомят пользователя с базовыми понятиями и основными командами git, при этом ученик своими руками вводит команды в консоль, смотрит результат и читает сопровождающие надписи с объяснением происходящего.



Вот таким в будущем должно стать обучение в школах!

Конечно, 15-минутное введение не заменит полноценного учебника. Для обучения можно рекомендовать бесплатную книгу Pro Git и видеокурс Getting Git.
Total votes 173: ↑155 and ↓18 +137
Comments 56

Знай сложности алгоритмов

Reading time 2 min
Views 982K
Эта статья рассказывает о времени выполнения и о расходе памяти большинства алгоритмов используемых в информатике. В прошлом, когда я готовился к прохождению собеседования я потратил много времени исследуя интернет для поиска информации о лучшем, среднем и худшем случае работы алгоритмов поиска и сортировки, чтобы заданный вопрос на собеседовании не поставил меня в тупик. За последние несколько лет я проходил интервью в нескольких стартапах из Силиконовой долины, а также в некоторых крупных компаниях таких как Yahoo, eBay, LinkedIn и Google и каждый раз, когда я готовился к интервью, я подумал: «Почему никто не создал хорошую шпаргалку по асимптотической сложности алгоритмов? ». Чтобы сохранить ваше время я создал такую шпаргалку. Наслаждайтесь!
Читать дальше →
Total votes 312: ↑296 and ↓16 +280
Comments 99

Вычисляем какой сейчас год от Большого Взрыва на Питоне

Reading time 7 min
Views 50K
Всвязи с наступающим 2014 годом от Рождества Христова может возникнуть вопрос: «А какой же на самом деле сейчас год без привязки к религиям?» На него я постараюсь ответить, а точнее показать, как это можно довольно легко вычислить, не слезая со стула.

Считать будем от момента начала Вселенной, то есть Большого Взрыва. Многие оговорки я буду опускать для получения результата за минимальное количество формул и строчек кода (да-да, мы будем программировать на Питоне!). В качестве бонуса мы также прикинем сколько тёмной энергии у нас во Вселенной.


Supernova 1994D as seen with the Hubble Space Telescope. Foto: Pete Chalis — Harvard Smithsonian Center of Astrophysics

Любопытно? Тогда поехали!
Читать дальше →
Total votes 109: ↑97 and ↓12 +85
Comments 85

Python: вещи, которых вы могли не знать

Reading time 8 min
Views 310K
Python — красивый и местами загадочный язык. И даже зная его весьма неплохо, рано или поздно находишь для себя нечто такое, что раньше не использовал. Этот пост отражает некоторые детали языка, на которые многие не обращают внимание. Сразу скажу: многие примеры являются непрактичными, но, оттого, не менее интересными. Так же, многие примеры демонстрируют unpythonic стиль, но я и не претендую на новые стандарты — я просто хочу показать, что можно делать вот так.
Читать далее
Total votes 139: ↑120 and ↓19 +101
Comments 120

Полноценное Python приложение на Android

Reading time 4 min
Views 164K


В этой статье я хотел бы рассказать о том, как создать полноценное приложение на Python для Android. Нет, это не очередной мануал для создания скрипта для sl4a, это мануал по созданию полноценного приложения с UI, возможностью собрать apk и выложить на Android Market. Заодно я хотел бы похвалиться своим первым приложением на google.play, это не hello world, а полезное приложение для фотографов, хотя и узко специализированное.
Читать дальше →
Total votes 109: ↑106 and ↓3 +103
Comments 45

Read only

Reading time 2 min
Views 35K
Добрый день, уважаемые хабровчане.

Мысль создать этот топик возникла после не так давно опубликованной здесь, невероятно успешной истории жизни, которая сейчас спрятана глубоко в черновики её автора.
В комментариях к этой статье начался ожидаемый спор по поводу сказочности приведенного рассказа, и промелькнул совет от автора, что читать тому, кто хочет чему-то научится, надо невероятно много. И пару книг автор даже назвал.


Читать дальше →
Total votes 83: ↑53 and ↓30 +23
Comments 109

Information

Rating
Does not participate
Location
Владивосток, Приморский край, Россия
Date of birth
Registered
Activity