Обновить
1
Alexander Stellove @AlLSTLread⁠-⁠only

Software Engineer

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

Codecademy запустил русскую версию

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


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

Это стало возможным благодаря получению 10 млн долларов венчурного финансирования от Kleiner Perkins, Index Ventures, Union Square Ventures, Юрия Мильнера и Ричарда Брэнсона, сообщает TechCrunch.

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

Я переучиваю людей на Java-программистов

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

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

В результате я переучиваю своих друзей и знакомых на программистов. Весь процесс занимает от двух до трех месяцев. 25 уроков по 4 часа. Потом все смогли устроиться программистами.
Эта статья не о том, как надо учить, скорее просто описание процесса, который работает.
Читать дальше →

27+ ресурсов для онлайн-обучения

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

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

Статья содержит перечень ресурсов для онлайн-обучения, представляющих интерес преимущественно для программистов.

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

Как поднять свой уровень в искусстве программирования. План из шести шагов

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

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

Javascript и canvas в игре «Жизнь» Джона Конвея

Время на прочтение14 мин
Количество просмотров20K
Напишем эту алгоритмическую игру [1] так, чтобы извлечь из неё максимальную образовательную пользу в области алгоритмов, языка Javascript, хорошего стиля программ, умения оптимизировать код. Центральным местом обсуждения будет не игра, а код, способы реализации, оптимизация.

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

Недавно проведённый на Хабре опрос [3] показал реальную картину — 20% программистов написали когда-либо её работающую реализацию, а порядка 10% о ней не слышали. Что ж, тем интереснее будет оставшимся 80% узнать, что можно извлечь из реализации игры.
Читать дальше →

Raspberry Pi, сигнализация и умный дом

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

Началось все года 4 назад когда во время рабочего дня у меня обчистили квартиру. Попасть домой через дверь после этого уже не удалось из-за поврежденного замка. Неприятное событие заставило задуматься о безопасности жилища. И это лишь одна из причин для мониторинга и автоматизации квартиры. Как часто прийдя на работу (а то и уезжая или улетая куда-либо) вы сомневались выключили ли перед уходом утюг, закрыли ли газ, воду ;-) Подбавим масла в огонь админам — спокойны ли вы что ваш старый БП в работающем системнике дома не чадит и не пылает!?) И что удаленно делать с девайсом, который «наглухо завис».

В этом посте я рассмотрю некоторые существующие на рынке решения, розничную стоимость доступного аппаратного обеспечения и способ как создать сигнализацию квартиры и некоторые из функций «умного дома» используя одноплатный компьютер Raspberry Pi
Читать дальше →

Программирование SPI Flash с помощью Arduino и SD-карты

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

Предыстория


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

  • материнская плата — ASRock B75 Pro 3
  • процессор — Intel Core i5-3570
  • блок питания — Corsair CX750M

После включения системник начал издавать пять противных писков, что вроде как соответствует неисправности процессора. Процессор, судя по Яндекс.Маркету, на данный момент стоит от 11000 руб. Покупать довольно накладно, а недорогой, но слабенький не хочется. В общем, немного испугался…

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

В первую очередь подключил другой старенький БП — комп не запускается.

Для дальнейших проверок принес домой автомобильный комп. Состав:

  • материнская плата — ASRock B75M-ITX
  • процессор — Intel Pentium G640T

Как хорошо, что компоненты оказались взаимозаменяемыми.

Вытащил из автомобильного компа процессор, вставил его в домашний — комп не запускается. Но появилась надежда, что процессор все таки цел, а неисправна материнка, которая немного дешевле (хотя новые на чипсетах не H61 и H67 — дефицит).

Далее домашний процессор вставил в автомобильный комп — комп заработал. Следовательно, процессор живой, а проблема в материнке. Начал грешить на BIOS (Winbond 25Q64BVAIG).
Читать дальше →

Работа с регистрами внешних устройств в языке C, часть 1

Время на прочтение6 мин
Количество просмотров29K
Вдохновленный несомненным успехом предыдущего поста (никто не написал, что статья неинтересная и не предназначена для Хабра — это уже успех, а многие люди прочитали, написали комментарии и дали советы по оформлению — еще больший успех, кстати, всем спасибо), решил продолжить делиться своими мыслями по поводу программирования МК. Сегодняшние заметки посвящены общим вопросам программирования в языке C, а именно работе с битовыми полями безотносительно к конкретным МК и средам программирования (хотя примеры и будут приводиться для конкретного CORTEX-M1 и IAR). Вроде бы тема не новая, но хотелось бы показать недостатки и достоинства разных методов. Итак, мы начинаем…
Читать дальше →

Полный цикл разработки IoT устройства управления подогревом бассейна на ESP8266 в среде Arduino

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

В данной публикации я поделюсь опытом о создании IoT устройства с ноля: от появления идеи и воплощении ее в «железе» до создания микропрограммы для контроллера и web-интерфейса для управления созданным устройством через сеть интернет.


До создания этого устройства я:


  • Почти не разбирался схемотехнике. Только на уровне принципов работы
    резистора/транзистора… Я не имел никакого опыта в создании сколь-нибудь сложных схем.
  • Никогда не проектировал печатных плат.
  • Никогда не паял SMD компонент. Уровень владения паяльником был на уровне припаивания проводов и какого-нибудь реле.
  • Никогда не писал таких сложных программ для микроконтроллера. Весь опыт был на уровне «зажги светодиод в Arduino», а контроллер ESP8266 я встретил впервые.
  • Совсем немного писал на C++ для «большого брата», но это было более десятка лет назад и все давно забылось.

Конечно, опыт работы программистом (главным образом это Microsoft .NET) и системное мышление помогли мне разобраться в теме. Думаю, сможет и читатель этой публикации. Полезных ссылок и статей в интернете море. Самые, на мой взгляд интересные, и помогающие разобраться в теме, я привожу по ходу статьи.

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

Почему существует так много Питонов?

Время на прочтение9 мин
Количество просмотров142K
Питон изумителен.

Удивительно, но это довольно неоднозначное заявление. Что я имею ввиду под “Питоном”? Может, абстрактный интерфейс Питона? Или CPython, распространенная реализация Питона (не путать с похожим по названию Cython)? Или я имею ввиду что-то совсем иное? Может, я косвенно ссылаюсь на Jython, или IronPython, или PyPy. Или может я отвлекся так сильно, что говорю о RPython или RubyPython (которые очень сильно отличаются).

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

При работе с Питоном я столкнулся с кучей таких технологий. Инструменты *ython. Но лишь недавно я уделил время, чтобы разобраться, что они собой представляют, как они работают и почему они (каждая по-своему) необходимы.

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

Все начинается с понимания того, чем на самом деле является “Питон”.
Читать дальше →

Автоматическая оптимизация алгоритмов с помощью быстрого возведения матриц в степень

Время на прочтение20 мин
Количество просмотров85K
Пусть мы хотим вычислить десятимиллионное число Фибоначчи программой на Python. Функция, использующая тривиальный алгоритм, на моём компьютере будет производить вычисления более 25 минут. Но если применить к функции специальный оптимизирующий декоратор, функция вычислит ответ всего за 18 секунд (в 85 раз быстрее):


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

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

Девушка с татуировкой ANSI

Время на прочтение2 мин
Количество просмотров20K
Специалисты по СУБД с сайта Oracle WTF заинтересовались, что же такое печатает в терминале юный хакер в фильме «Девушка с татуировкой дракона». По сюжету, это были запросы к базе данных полицейского отделения, с помощью которых она раскрыла убийства 40-летней давности.


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

WAL в PostgreSQL: 3. Контрольная точка

Время на прочтение12 мин
Количество просмотров47K
Мы уже познакомились с устройством буферного кеша — одного из основных объектов в разделяемой памяти, — и поняли, что для восстановления после сбоя, когда содержимое оперативной памяти пропадает, нужно вести журнал предзаписи.

Нерешенная проблема, на которой мы остановились в прошлый раз, состоит в том, что неизвестно, с какого момента можно начинать проигрывание журнальных записей при восстановлении. Начать с начала, как советовал Король из Алисы, не получится: невозможно хранить все журнальные записи от старта сервера — это потенциально и огромный объем, и такое же огромное время восстановления. Нам нужна такая постепенно продвигающаяся вперед точка, с которой мы можем начинать восстановление (и, соответственно, можем безопасно удалять все предшествующие журнальные записи). Это и есть контрольная точка, о которой сегодня пойдет речь.

Контрольная точка


Каким свойством должна обладать контрольная точка? Мы должны быть уверены, что все журнальные записи, начиная с контрольной точки, будут применяться к страницам, записанным на диск. Если бы это было не так, при восстановлении мы могли бы прочитать с диска слишком старую версию страницы и применить к ней журнальную запись, и тем самым безвозвратно повредили бы данные.
Читать дальше →

VGA адаптер на ПЛИС Altera Cyclone III

Время на прочтение9 мин
Количество просмотров105K
Привет хабр — в этой статье я собираюсь поделиться своими успехами в освоении ПЛИС Altera Cyclone III. После мигания лампочками и игр со счетчиками — решил сделать что то более серьезное. Сделал я простейший VGA адаптер. Об основных его частях и пойдет речь. Статья больше ориентирована на начинающих, так как для опытных эта задача не составит труда, но для освоения, на мой взгляд — хорошая тренировочная задача. Эксперименты я свои провожу на отладочной плате Altera DE0. Описывать схему я буду на Verilog, Среда — Quartus II v 12.0. Итак — добро пожаловать под кат:
Читать дальше →

Реализация на Verilog цифрового БИХ-фильтра

Время на прочтение5 мин
Количество просмотров20K
Приветствую Хабр. Не так давно здесь уже появлялись статьи на эту тему Verilog. Цифровой фильтр на RAM и Построение цифрового фильтра с конечной импульсной характеристикой. Хочу и я внести свой скромный вклад и представить вашему вниманию реализацию цифрового БИХ-фильтра на Verilog.
Итак, прошу...

Реальная виртуальность: рабочие станции ++

Время на прочтение23 мин
Количество просмотров17K
Если ещё 3-4 года назад решала автоматизация, то сегодня очередь за виртуализацией: доступные мощные рабочие станции уравнивают в потенциале транснациональных гигантов и малый бизнес. Рабочие станции — профессиональные компьютеры с комплексом технических и программных средств, предназначенных для решения определённого круга задач: мультимедиа (обработка изображений, видео, звука), САПР, ГИС, научно-технические расчеты, промышленные приложения и пр. В настоящее время ресурсы рабочей станции можно получать как облачный сервис. Он завоевывает популярность у все большего числа компаний за счёт простоты интеграции в ИТ-инфраструктуру и экономических преимуществ. Так что, пути назад нет, впереди одна только виртуальность? Давайте разберёмся.

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

Создаем музыку: когда простые решения превосходят по эффективности глубокое обучение

Время на прочтение9 мин
Количество просмотров27K
Представляю вашему вниманию перевод статьи «Создаем музыку: когда простые решения превосходят по эффективности глубокое обучение» о том, как искусственный интеллект применяется для создания музыки. Автор не использует нейронные сети для генерации музыки, а подходит к задаче, исходя из знания теории музыки, на основе мелодии и гармонии. Другой особенностью статьи является метод сравнения музыкальных произведений на основе матриц самоподобия. Такой подход, конечно, не является исчерпывающим, но он полезен как промежуточный шаг для генерации качественной музыки методами машинного обучения.

Программная реализация усилителя класса D

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


Best-404-Error интересуется, можно ли получить результат компиляции длиной менее 512 байт, если исходник написан на языке высокого уровня. Можно, если упростить возлагаемую на прошивку задачу.

Программная реализация усилителя класса D позволяет менять его параметры (частоту ШИМ, скважность в режиме покоя) сменой прошивки.
Читать дальше →

Преобразуем изображение в звук — что можно услышать?

Время на прочтение5 мин
Количество просмотров33K
Привет Хабр.

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



Что из этого получилось, подробности и примеры файлов под катом.
Читать дальше →

Я нашёл отличного программиста по имени Стив Возняк

Время на прочтение2 мин
Количество просмотров40K
Давным-давно, когда компьютеры были большими, а бизнес скучным, произошло нечто неожиданное. Молодые хакеры нашли способ собрать персональные компьютеры на дешёвых микропроцессорах от телетайпов и светофоров. Одним из них был Стив Возняк. Эти ребята восприняли ограничения своих компьютеров как вызов, сели и заставили эти крошечные чипы делать удивительные вещи. Вот что публиковал Dr Dobb's Journal в августе 1976 года:



Это набор арифметических процедур на действительных числах. Микропроцессор (6502, такой же, как в Apple I и II) мог работать только с байтами, то есть целыми числами между 0 и 255. Хуже того, он мог только складывать и вычитать их. Но с помощью этой библиотеки вы можете вычислить $1.2627-1099.56$, или даже взять квадратный корень из пи. Удивительно, но автор программы по имени Стив Возняк уместил основные функции (сложение, вычитание, умножение и деление) в 239 байт, используя всего 127 инструкций.
Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность