Как стать автором
Обновить
14
0
Helen Allien Poe @besteto

Engine && Tools Programmer

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

Пишем свою ОС: Выпуск 1

Время на прочтение6 мин
Количество просмотров272K
Данный цикл статей посвящён низкоуровневому программированию, то есть архитектуре компьютера, устройству операционных систем, программированию на языке ассемблера и смежным областям. Пока что написанием занимаются два хабраюзера — iley и pehat. Для многих старшеклассников, студентов, да и профессиональных программистов эти темы оказываются весьма сложными при обучении. Существует много литературы и курсов, посвящённых низкоуровневому программированию, но по ним сложно составить полную и всеохватывающую картину. Сложно, прочитав одну-две книги по ассемблеру и операционным системам, хотя бы в общих чертах представить, как же на самом деле работает эта сложная система из железа, кремния и множества программ — компьютер.

Каждый решает проблему обучения по-своему. Кто-то читает много литературы, кто-то старается поскорее перейти к практике и разбираться по ходу дела, кто-то пытается объяснять друзьям всё, что сам изучает. А мы решили совместить эти подходы. Итак, в этом курсе статей мы будем шаг за шагом демонстрировать, как пишется простая операционная система. Статьи будут носить обзорный характер, то есть в них не будет исчерпывающих теоретических сведений, однако мы будем всегда стараться предоставить ссылки на хорошие теоретические материалы и ответить на все возникающие вопросы. Чёткого плана у нас нет, так что многие важные решения будут приниматься по ходу дела, с учётом ваших отзывов.
Читать дальше →
Всего голосов 293: ↑282 и ↓11+271
Комментарии225

10 способов улучшить свои навыки программирования

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

1. Выучить новый язык программирования


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

Среди языков программирования отличный познавательный эффект и наверстывание опыта дают: Lisp (или Scheme), Форт, PostScript или Factor (стековые языки программирования), Haskell (строго типизированный, чистый функциональный язык) либо OCaml (объектно-ориентированный язык функционального программирования), Пролог (логическое программирование), Erlang (отличные паралельные вычисления).

Читать дальше →
Всего голосов 239: ↑227 и ↓12+215
Комментарии96

Sikuli — program ANYTHING using GUI screenshoots

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

Сказка


Представьте на минуту, что Вы — несчастный программист, который каждый день добирается на работу на автобусе, расписание которого невозможно предугадать. В такой ситуации было бы очень удобно, завтракая дома, получать на телефон SMS, сообщающее, что автобус уже через пять минут будет на Вашей остановке.

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

Проходя, не проходите мимо
Всего голосов 88: ↑81 и ↓7+74
Комментарии52

Улучшенный Android NDK (Native Development Kit)

Время на прочтение5 мин
Количество просмотров34K
Долгое время занимаясь разработкой под Android, я постепенно пришел к выводу, что многих вещей мне, как разработчику, сильно не хватает. Тогда, в начале 2010-го, не хватало только C++ exceptions и RTTI. Без них любой нетривиальный C++ код просто не мог быть портирован на Android и требовал практически полного переписывания. Это было очень существенное ограничение, которое никак не давало мне покоя. К счастью, Android — это open source, поэтому, вооружившись максимой «если тебе что-то нужно, сделай это сам», я засел за работу. К моему удивлению, сделать поддержку полноценного C++ с исключениями и RTTI оказалось довольно несложно. Потребовалось всего около недели работы. Далее был сделан сайт, на который и были выложены получившиеся пакеты для Windows, Linux и Mac OS X, а также патч и инструкция по сборке.

Читать дальше →
Всего голосов 182: ↑177 и ↓5+172
Комментарии58

Батники против эксплойтов

Время на прочтение11 мин
Количество просмотров59K
Доброго времени суток, многоуважаемый %USERNAME%. Меня зовут Голованов Сергей, и я всё еще являюсь ведущим вирусным аналитиком в «Лаборатории Касперского». Я понимаю, что название этого поста в корпоративном блоге компании может вызвать смех, грусть, а у некоторых даже эпилептический припадок, но дайте мне всё объяснить.

Я понимаю, что для всех батники выглядят как нечто очень простое и со времен AUTOEXEC.BAT уже практически забытое, в то же время эксплойты, если вы конечно не профессиональный исследователь уязвимостей, выглядят очень сложно и практически неправдоподобно, особенно для некоторых разработчиков. Но! В данном посте я постараюсь перевернуть эти представления и рассказать, что всё как будто наоборот. Батники чуть легче и сильнее по функционалу brainfuck'а, а эксплойты не страшнее сортировки пузырьком на basic'е.

image

(Осторожно! 3 МБ иллюстрированного потока сознания и куча скриптов)
Читать дальше →
Всего голосов 134: ↑121 и ↓13+108
Комментарии73

Вирусный анализ для начинающих — анализируем Virus.Win32.MTV

Время на прочтение3 мин
Количество просмотров16K
Я, наконец, нашел время не просто на анализ вредоносного ПО, но и на написание ещё одной статьи на эту тему. Начнём, пожалуй. Сегодня мы будем анализировать вирус Virus.Win32.MTV.4608.a, обнаруженный ещё в 2000 году. Пусть дата обнаружения вируса Вас не смущает – никогда не помешает анализ вируса даже такой давности. Взять его можно на vx.netlux.org.

Требуемые инструменты: любой дизассемблер или отладчик на ваш выбор.
Читать дальше →
Всего голосов 49: ↑46 и ↓3+43
Комментарии29

Практический курс по информационной безопасности от Positive Technologies

Время на прочтение1 мин
Количество просмотров16K
Positive Technologies продолжает курс вебинаров, посвященный практическим вопросом информационной безопасности. В течение первого полугодия 2012 года мы проведем 12 вебинаров, программа уже опубликована, ее можно посмотреть здесь.

В 2012 году мы планируем:
• раскрыть технические детали проведения форума PHDays;
• поговорить о безопасности SAP;
• рассказать, как можно использовать сетевое оборудование при расследовании компьютерных инцидентов;
• рассмотреть нагрузочное тестирование информационной системы и сделать имитацию атаки;
• изучить метод перехвата данных печати в Windows;
• понять, насколько могут быть опасными тривиальные уязвимости.

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

Участие в программе вебинаров – бесплатное, по предварительной регистрации. Докладчиками выступают известные эксперты в области ИБ – специалисты Positive Technologies и исследовательского центра Positive Research.

Присоединяйтесь! Те, кто не сможет посмотреть вебинар он-лайн, могут скачать презентацию и запись на нашем сайте.
Всего голосов 3: ↑2 и ↓1+1
Комментарии0

Самое простое и захватывающее падение в мир микроконтроллеров или Meggy Jr RGB

Время на прочтение3 мин
Количество просмотров28K
Итак, всем любителям ретро игр, пиксель арта, железа типа arduino и тех, у кого закрадывалась мысль написать свою простенькую игру, при этом не сильно вдаваясь в дебри даташитов!

Хочу представить вам 8-битный игровой хендхелд, на микроконтроллере Atmega-328, с большим, ярким экраном с пикселями, которые невозможно не заметить.
На борту есть: 32КБ памяти для вашего кода, 6 кнопок, простенький динамик, 8 дополнительных диодов и разъем для программирования и обмена данными.

image

Что можно сделать с такими малыми ресурсами?
Но ведь в любом деле основной ресурс — это ваше воображение и опыт!

Читать дальше →
Всего голосов 64: ↑63 и ↓1+62
Комментарии26

О создании образа KolibriOS

Время на прочтение5 мин
Количество просмотров11K
Всё началось с новости о возможном представлении KolibriOS на для Chaos Constructions-2011. Она была опубликована на форуме разработчиков KolibriOS за четыре месяца до мероприятия.

И вот, в начале августа 2011 года у меня возникла идея создать образ для виртуальной машины с этой системой (KolibriOS), разнообразным программным обеспечением и примерами файлов, с которым можно работать. Собственно, этим я и занялся.

Читать дальше →
Всего голосов 43: ↑41 и ↓2+39
Комментарии55

Прототип Lane Departure Warning или как напомнить водителю о том, что жить ему осталось не очень долго

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

Почитал я немного про автовыставку в Детройте, про то, что Lane Departure Warning становится все более и более популярным и решил, что надо бы поделиться своим опытом изготовления прототипа этой системы из нехитрых компонентов в виде веб-камеры, Питона, OpenCV и пары дней усердной медитации:)

Историю создания прототипа можно почитать и посмотреть под катом… (там картинки, много...)
Читать дальше →
Всего голосов 179: ↑178 и ↓1+177
Комментарии101

Инструменты прототипирования и создания wireframes

Время на прочтение2 мин
Количество просмотров91K
Навеяно долгими поисками различных систем прототипирования и желанием поделиться этим опытом. В данном посте отсутсвуют сложные системы типа iRise или IBM Rational Rose, ввиду того что они являются не столько и далеко не только системами простого прототипирования, да и стоимость этих решений подходит предприятиям немалого маштаба. Этот пост о чем-то более земном.

Читать дальше →
Всего голосов 55: ↑47 и ↓8+39
Комментарии39

Coder vs. Developer vs. Engineer — а какой Job Title у тебя, %username%?

Время на прочтение12 мин
Количество просмотров70K
Computer Scientist, Software Engineer и Coder заходят в бар.
— О, а вот и программисты! — окликает их бармен...


Я знаю людей, которые программируют уже не один десяток лет, но обижаются, когда их называют "программистами". А по запросу Coder vs Developer vs Software Engineer в гугле находится 113 000 000 ссылок: 1 2 3 4 5 6 7 8 9 … 113 000 000. Что интересно, можно найти совершенно противоположные мнения об одном и том же. С чем-то я согласен, а с чем-то в корне нет.

Последние же несколько лет так вообще постоянно подливают масло в огонь, появляются какие-то совсем странные программисты, которые называют себя Creative Technologist, Creative Coder и Interactive Developer.

Давайте же попробуем разобраться.
Читать дальше →
Всего голосов 148: ↑132 и ↓16+116
Комментарии129

Выбираем мультиплатформенный движок для разработки мобильных игр (часть 1)

Время на прочтение4 мин
Количество просмотров53K
imageРазработка мобильных приложений это весьма перспективное и выгодное занятие. Одним из самых интересных направлений являются игры. Однако, игры — это довольно сложные приложения, а учитывая, что на рынке существует как минимум две мобильные платформы, на которые стоит ориентироваться, сложность возрастает вдвойне. По этому, нам надо как то облегчить свой и без того нелегкий труд.
Читать дальше →
Всего голосов 63: ↑58 и ↓5+53
Комментарии66

Emacs Starter Kit

Время на прочтение8 мин
Количество просмотров15K
Emacs. Большая и сложная программа. Ему как ничему другому подходит это определение. Эмакс был создан очень давно в лаборатории искуственного интллекта MIT, он несет в себе гены очень своеобразной культуры лисп-хакеров былых времен. С тех пор он не раз переписывался, улучшался, дополнялся и обрастал тысячами расширений в течение десятков лет. Эмакс, если и был когда-то мощным текстовым редактором, сейчас стал некоей универсальной программой, в нём можно делать абсолютно всё что угодно, если это хотя бы немного затрагивает собой задачу отображения или редактирования текста, и даже больше. Людям знающим универсальность играет на руку, ведь одной программой можно делать тысячу разных дел, при этом не прилагая усилий для переучивания к разным интерфейсам. Людей, впервые запустивших эмакс подобная универсальность и непривычный интерфейс поначалу пугает. Научиться пользоваться эмаксом, понять его идею и проникнуться ею задача непростая, трудоемкая и долгая (как говорится, пологая кривая обучаемости).
Читать дальше →
Всего голосов 84: ↑79 и ↓5+74
Комментарии76

Введение в org-mode emacs

Время на прочтение4 мин
Количество просмотров51K
По сути это даже не перевод, а свободное изложение моих мыслей на эту тему, после ознакомления с указанным источником. То есть — переработка. Некоторые, показавшиеся очевидными, вещи, были намеренно исключены из текста. Какие-то, показавшиеся полезными — добавлены.

Введение


Описано было довольно хорошо вот здесь.

Как его подключить

Если у Вас версия 22 и выше — он у Вас уже установлен. Если нет — установите новую версию. :)

Дальше - больше.
Всего голосов 37: ↑29 и ↓8+21
Комментарии29

Организация информации — Emacs Org Mode

Время на прочтение5 мин
Количество просмотров28K
Привет всем!
Долгое время я пытался найти решение проблемы организации различного рода информации:
  • Личных и рабочих проектов — трекер проектов, документация, разделение на этапы, структуризация, приоритеты, риски, состояние отдельных этапов.
  • Простых TODO-списков — ведение списков дел в условиях сильного распараллеливания деятельности. Причем, чтобы обязательно было быстро, удобно, функционально и всегда под рукой.
  • Личной библиотеки — упорядочение огромного количества e-книг по категориям (со вложенными) + легкий доступ к ним чтобы был. Здесь сначала пытался просто понятно выстроить структуру папок, но масштабы уже не те, чтобы можно было потом быстро найти нужную книгу.

Ниже, я описал (знакомые мне) средства, которые могут быть использованы для решения этих задач. Лично для себя выбрал Emacs Org Mode, так что именно его описанию уделена большая часть текста.
Читать дальше →
Всего голосов 8: ↑7 и ↓1+6
Комментарии17

Emacs для начинающих: elisp

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


Сразу предупреждаю, что я не собираюсь писать ни учебник, ни
вводный курс Lisp и не претендую на какую либо полноту описания. А
собираюсь я дать некоторые полезные по моему мнению сведения, которые
помогут начинающим использовать emacs настраивать его по своему
усмотрению и писать несложные функции, которыми тоже можно будет
пользоваться в процессе использования emacs.
Читать дальше →
Всего голосов 37: ↑34 и ↓3+31
Комментарии35

Программирование музыки на Лиспе

Время на прочтение1 мин
Количество просмотров6.8K
Сэм Арон (Sam Aaron), один из разработчиков Overtone, выложил впечатляющее видео, как он синтезирует мелодии в редакторе Emacs, используя различные приёмы — триггеры инструментов, назначение будущих событий и проектирование сэмплов — на языке Clojure. Музыка звучит сразу после написания строчки кода (live coding).
Всего голосов 54: ↑46 и ↓8+38
Комментарии25

Context Free: язык для генерации изображений

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


Эта картина сгенерирована программой Context Free по следующему описанию:

startshape T
// FLIGIZ
background{b -1}
tile {s 2.5}
rule T {3*{r 120 hue 30}S{x .3}}
rule S 3{CIRCLE{hue 30}4*{r 20 b.007 sat .1}S[s.3.7y.9]}
rule S {CIRCLE{hue 15}9*{r 20 b.05 hue -3}S[s.3.7y.9]}
rule S {S{flip 90}}
Читать дальше →
Всего голосов 155: ↑149 и ↓6+143
Комментарии31

Roflbalt игрушка в ASCII (с ANSI цветом!)

Время на прочтение1 мин
Количество просмотров1.1K
Тем кто работает/учится в консоли Linux/OSx/Windows(Putty) может понравиться вот такая игрушка.

image

Над забавной мини-игрушкой трудились Paul Annesley (@pda) и Dennis Hotson (@dennishotson), вдохновленные Canabalt

исходный код
Всего голосов 37: ↑34 и ↓3+31
Комментарии21

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Зарегистрирован
Активность