Как стать автором
Обновить
119
0
Роман @Antigluk

разработчик Python

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

Разработка своего первого USB устройства. Маленький шаг вперед

Время на прочтение5 мин
Количество просмотров61K
Давным-давно уже бредил мечтой собрать какое-нибудь устройство, пусть незамысловатое, но которое бы выполняло определенные действия под управлением компьютера. По профессии я web-разработчик, опыта в программировании микроконтроллеров никакого, но тема интересная. Навыков пайки тоже мало (ну наушники или проводки разные могу спаять конечно, но чипы паять не пробовал). Поэтому решил, что начинать необходимо с чего-то простого — например на основе уже готовой макетной платы с микроконтроллером. 

Что будет в посте?

В посте я расскажу о своем опыте разработки своей первой поделки, которая управляет светодиодами на плате с помощью программы на компьютере, а конкретнее некое подобие индикатора уровня громкости с одной полосой визуализации.
Читать дальше →
Всего голосов 117: ↑113 и ↓4+109
Комментарии35

Фриланс и вывод денег: личный опыт

Время на прочтение4 мин
Количество просмотров105K
Добрый день, жители хабра! Я занимаюсь фрилансом (хотя это слово не очень люблю) на протяжении последних четырёх лет. В этом небольшом топике мне хотелось бы рассказать о различных способах вывода заработанных непосильным трудом денежных средств. Для начала стоит сказать о том, как именно организована моя работа. Я использую всего два варианта – oDesk и работа напрямую. С клиентами из России работать ещё не доводилось, так что о таких знакомых вариантах вывода денег, как WebMoney и Яндекс.Деньги речь идти не будет.

Читать дальше →
Всего голосов 86: ↑81 и ↓5+76
Комментарии104

Книги, видео и другие материалы по разработке под iOS

Время на прочтение4 мин
Количество просмотров114K
«Хочу программировать под iPhone — говори, что почитать...»
Любимая девушка


Когда решаешься заняться разработкой под iOS, то трудно выбрать литературу и ресурсы, которые действительно были бы полезны. Хорошо еще, что Apple предоставляет множество учебных материалов и программ с открытым исходным кодом в своем центре для разработчиков. В остальных книжках можно если и не утонуть, то порядочно захлебнуться. Сейчас я жалею, что потратил время на пару «мануалов». Не буду делать им антирекламу, а лучше порекомендую хорошие материалы по программированию под iOS.

Под катом книги, видеокурсы и блоги, которые будет полезно прочитать/посмотреть.
Читать дальше →
Всего голосов 105: ↑99 и ↓6+93
Комментарии58

Опасности обучения на Java

Время на прочтение10 мин
Количество просмотров168K
«Вы счастливчики. Мы по три месяца жили в мешках из дерюги в грязных сараях. Мы вставали в шесть утра, стирали мешки, съедали по корке чёрствого хлеба и шли работать на мельницу, по 14 часов в день, с понедельника и до воскресенья, и когда мы возвращались домой, наш папа порол нас своим ремнем»
— Летающий цирк Монти Пайтона, Четыре йоркширца


Ленивая молодёжь.

Что может быть хорошего в тяжёлой работе?

Верный признак моего старения — моё ворчание и жалобы о «современной молодёжи» и о том, как не хотят или не могут больше делать ничего сложного.
Читать дальше →
Всего голосов 186: ↑152 и ↓34+118
Комментарии259

Загрузка файлов с помощью HTML5 и сколько раз мы сказали нехорошие слова

Время на прочтение3 мин
Количество просмотров7.2K
Стояла задача: найти или создать загрузчик файлов на сервер, использующий возможности HTML5 для мультизагрузки. Загрузчик должен:
  • отправлять методом POST любые параметры вместе с файлом;
  • отправлять куки;
  • предоставлять возможность выбора сразу нескольких файлов (или нескольких тысяч – тут как пользователь захочет);
  • отправлять файлы группами;
  • файлы собираются в группы до определенного количества мегабайт, или до определенного количества файлов в группе; (это связано с тем, что на сервере есть ограничение на размер POST запроса и на количество файлов в одном пакете)

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

Итак, что из этого получилось

Читать дальше →
Всего голосов 87: ↑84 и ↓3+81
Комментарии67

Знакомство с межпроцессным взаимодействием на Linux

Время на прочтение11 мин
Количество просмотров207K
Межпроцессное взаимодействие (Inter-process communication (IPC)) — это набор методов для обмена данными между потоками процессов. Процессы могут быть запущены как на одном и том же компьютере, так и на разных, соединенных сетью. IPC бывают нескольких типов: «сигнал», «сокет», «семафор», «файл», «сообщение»…

В данной статье я хочу рассмотреть всего 3 типа IPC:
  1. именованный канал
  2. разделенная память
  3. семафор
Отступление: данная статья является учебной и расчитана на людей, только еще вступающих на путь системного программирования. Ее главный замысел — познакомиться с различными способами взаимодействия между процессами на POSIX-совместимой ОС.
Читать дальше →
Всего голосов 79: ↑78 и ↓1+77
Комментарии22

IPO for dummies. Часть IV: влияние IPO на доход от адулт-партнёрок

Время на прочтение6 мин
Количество просмотров3.1K
Начало и оглавление см. в первой части.

Неужели те деньги, что владельцы (фирмы, выпускающей акции) получают единоразово, окупают очевидную потерю части денег из-за передачи акций (а следовательно — и части владения компаний, а следовательно — и части прибыли) в чужие руки?

При оценке рынком стоимости акций прибыль — только один из учитываемых пунктов. Рынок может переоценить какую-то компанию или даже целую отрасль, если посчитает, что у неё очень хорошие перспективы.
Читать дальше →
Всего голосов 123: ↑118 и ↓5+113
Комментарии51

SkypeTab — вкладки для линуксового скайпа. Теперь под любые оконный менеджер и панель

Время на прочтение2 мин
Количество просмотров1.4K
Устарело, см. свежую версию тут.

  • Если Вы не пользуетесь Linux или Skype, то этот пост не для Вас.
  • Если Вы настроили себе мост в Pidgin и теперь все 3.5 скайпоконтакта у Вас в этом списке, то этот пост не для Вас.
  • Если Вас устраивает то, как скайпоокна группирует KWin, и не смущает тот факт, что они как в таскбаре место все дружно занимали, так и занимают, то этот пост тоже не для Вас.
А вот если Вы активно пользуетесь скайпом, активно переключаетесь между несколькими конфами и хотите удобного нативного интерфейса, то рекомендую всё же ознакомиться.



Когда я разрабатывал предыдущую версию, я упёрся лбом в стену. Все попытки поправить косяки упирались в «умные» оконные менеджеры, лучше меня знающие, где должны находиться окна, и в кривые утилиты таскбара (да-да, gnome-panel в их числе), игнорирующие SKIP_TASKBAR_HINT, если он не был установлен до появления окна на экране. Знаете, я тогда сдался.

Но на прошлой неделе на переходе в метро меня кто-то толкнул и я полетел вниз с лестницы. В нижней точке полёта, в момент удара лбом в стену, в тот чудесный миг, я осознал, что никакой стены на самом деле нет. Нет, мне потом в больнице рассказали, что стена на самом деле была, причём даже бетонная. Но я сейчас про ту метафорическую стену из предыдущего абзаца.
Читать дальше →
Всего голосов 119: ↑111 и ↓8+103
Комментарии87

Простой цифровой термометр своими руками

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

Простой цифровой термометр с подключением через COM-порт.


Читать дальше →
Всего голосов 111: ↑108 и ↓3+105
Комментарии148

Получение Y-комбинатора в 7 простых шагов

Время на прочтение3 мин
Количество просмотров6.8K
Y-комбинатор это метод реализации механизма рекурсии в языке программирования который не поддерживает его изначально (на самом деле, он используется больше для осуществления программирования мозгов). Однако требуется, чтобы язык поддерживал анонимные функции.
Читать дальше →
Всего голосов 58: ↑55 и ↓3+52
Комментарии47

Беззахватные алгоритмы: модель «сделай, запиши,(поручи другому)»

Время на прочтение7 мин
Количество просмотров1.7K
Следуя совету хабрапублики, пробую новый вариант перевода термина "lock-free"

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

В общей переменной теперь нужны два служебных бита: вдобавок к флагу захвата, как в прошлом примере, — флаг «поручена новая работа»; а если порученная работа сложная, то кроме флага, нужно будет где-то хранить ещё и её параметры. Например, в общей переменной можно хранить указатель на (выравненный в памяти) объект с параметрами, а в свободных младших битах указателя — два названных флага.

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

Если же объект удалось захватить, то после завершения работы с ним снимаем флаг захвата и одновременно проверяем, не поручили ли нам новую работу. (Т.е. не было ли обращений к объекту за то время, пока мы его держали захваченным.) Если есть работа, то мы выполним и её; и так далее, пока однажды при разблокировке объекта отложенной работы не окажется. Мы не вправе оставить объект в состоянии «не захвачен, но есть работа».
Читать дальше →
Всего голосов 16: ↑11 и ↓5+6
Комментарии18

Git Wizardry

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


В своей прошлой заметке я постарался осветить в общих чертах стиль работы с
распределенной системой контроля версий git и указать на отличия по сравнению с
классическими централизованными СКВ. Целью было прежде всего обобщение опыта
работы с системой без упоминания тонкостей синтаксиса отдельных команд.

Данный же топик задумывался как непосредственное введение в работу с git, нечто
среднее между tutorial и обобщенной справкой, до которого все же рекомендуется
прочитать упомянутое выше введение. Сознательно избегаются технические
подробности работы git, употребляются только общие для СКВ термины и
ограничивается список упоминаемых команд.

Читать дальше →
Всего голосов 89: ↑66 и ↓23+43
Комментарии76

От песка до процессора

Время на прочтение9 мин
Количество просмотров380K
Сложно в это поверить, но современный процессор является самым сложным готовым продуктом на Земле – а ведь, казалось бы, чего сложного в этом куске железа?

image

Как и обещал – подробный рассказ о том, как делают процессоры… начиная с песка. Все, что вы хотели знать, но боялись спросить )

Читать дальше →
Всего голосов 321: ↑289 и ↓32+257
Комментарии154

Пишем расширение Firefox для интеграции с панелью Unity

Время на прочтение12 мин
Количество просмотров2K
Narwhals, Narwhals, swimming in the ocean, causing a commotion coz they are so awesome!С выходом Ubuntu 11.04 оболочка Unity достаточно неожиданно заняла место оболочки по умолчанию. Появление Unity в Ubuntu Netbook Edition, несмотря на медленную скорость работы, было довольно обоснованным: оно позволило эффективно использовать маленькие экраны нетбуков, благодаря, например, вертикальной панели для переключения между запущенными программами. Почему же возникла необходимость переноса Unity на десктопы? Ответить на этот вопрос можно было бы уже сейчас. Однако такой неполный, без готовых примеров, субъективный ответ вряд ли бы удовлетворил пользователя, которому на данный момент пришлось столкнуться с неудобством перехода. Поэтому речь пойдёт о том, как улучшить, а не о том, как и зачем пережить.

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

Итак, что нам понадобится:
Читать дальше →
Всего голосов 71: ↑67 и ↓4+63
Комментарии7

Продолжаем написание операционок. Шаг за шагом

Время на прочтение2 мин
Количество просмотров7.8K
На написание этого поста меня подтолкнуло то, что посты iley прекратились, а хабралюди всё же хотели посты по осьдеву. Оговорюсь сразу, я сам изучаю и пишу небольшую ось, но изучаю, так что продвигаться будем вместе. Я собираюсь рассмотреть написание систем под защищённый режим для IA-32, рассказать о:
1) Проектировании;
2) Отладке;
3) Работе с графикой;
4) Работе с дисками;
5) Memory management;
6) Task management;
Возможно о чём-нибудь ещё, если это будет востребовано.
Читать дальше →
Всего голосов 92: ↑73 и ↓19+54
Комментарии56

TOP'ай сюда

Время на прочтение5 мин
Количество просмотров177K
Обзор практически всех *top утилит под linux (atop, iotop, htop, foobartop и т.д.).

top

Все мы знаем top — самую простую и самую распространённую утилиту из этого списка. Показывает примерно то же, что утилита vmstat, плюс рейтинг процессов по потреблению памяти или процессора. Совсем ничего не знает про загрузку сети или дисков. Позволяет минимальный набор операций с процессом: renice, kill (в смысле отправки сигнала, убийство — частный случай). По имени top суффикс "-top" получили и все остальные подобные утилиты в этом обзоре.

atop


Atop имеет два режима работы — сбор статистики и наблюдение за системой в реальном времени. В режиме сбора статистики atop запускается как демон и раз в N времени (обычно 10 мин) скидывает состояние в двоичный журнал. Потом по этому журналу atop'ом же (ключ -r и имя лог-файла) можно бегать вперёд-назад кнопками T и t, наблюдая показания atop'а с усреднением за 10 минут в любой интересный момент времени.

В отличие от top отлично знает про существование блочных устройств и сетевых интерфейса, способен показывать их загрузку в процентах (на 10G, правда, процентов не получается, но хотя бы показывается количество мегабит).

Незаменимое средство для поиска источников лагов на сервере, так как сохраняет не только статистику загрузки системы, но и показатели каждого процесса — то есть «долистав» до нужного момента времени можно увидеть, кто этот счастливый момент с LA > 30 создал. И что именно было причиной — IO программ, своп (нехватка памяти), процесор или что-то ещё. Помимо большего количества информации ещё способен двумя цветами подсказывать, какие параметры выходят за разумные пределы.
Читать дальше →
Всего голосов 401: ↑389 и ↓12+377
Комментарии122

«Когда идеи чего-то стоят» или что, если схему «перевернуть»?

Время на прочтение3 мин
Количество просмотров3.6K
Однажды кто-то сказал: «Идея ничего не стоит». И был, возможно, где-то прав. По крайней мере, в существовавшей на тот момент схеме взаимодействия «стартаперов» и «инвесторов» небыло места для человека, имеющего в багаже одну лишь только идею интернет-проекта.

Множество раз мы слышали, как венчурные инвесторы говорили: «У нас тысячи идей, но их некому реализовывать, поэтому нам нужна 'команда+идея', а лучше – 'команда+прототип', а ещё лучше – 'прототип, имеющий аудиторию, и приносящий хоть какую-то прибыль'».

В этом топике я хочу рассказать о новой взаимовыгодной модели взаимодействия трёх участников:
• автора идеи,
• инвестора,
• команды разработчиков
... Читать далее ...
Всего голосов 50: ↑33 и ↓17+16
Комментарии126

Бульбулятор травилка. Ускоритель травления печатных плат

Время на прочтение3 мин
Количество просмотров30K
Помню ещё в 12 лет, когда травил свою первую печатную плату, просто изнывал от нетерпения произвести этот процесс быстрее. Тогда раствор был старым и травление шло почти сутки. Ныне я травлю, конечно, значительно быстрее, но всё же не за пару минут. А ведь так хочется узрить результат своих трудов и перейти к более интересной стадии – сверлению и запайке деталей. И вот поселилась в моей голове мысль, как же ускорить данный процесс. Собственно говоря, все кто травит печатные платы, знают, что ускорение травления обеспечивают два фактора: повышение температуры раствора и постоянное его перемешивание. Первый фактор легко достижим – залил хлорное железо кипяточком и получил профит. А для реализации второго, каких только конструкций я не встречал: и мешалки, и качалки, и педальки и т.п. бред. Но на самом деле, всё оказалось значительно проще, дешевле, а главное доступнее.

image
Бульбулятор собственной персоной

Для изготовления потребуется:
— поллитровая пластиковая бутылка любимого напитка;
— дешевый аквариумный компрессор;
— вертикальная прямоугольная ёмкость, желательно прозрачная (я использовал ёмкость от старого аккумулятора, можно использовать квадратную вазу, главное чтобы была не металлическая);
— шланг для компрессора, длинной метр (покупается в том же магазине, где и сам компрессор);
— прямоугольная пластина, для сборки (можно использовать фанеру, или железо, я же использовал толстый гетинакс).

Из инструментов нам потребуется только термоклей с термопистолетом.

Читать дальше →
Всего голосов 126: ↑122 и ↓4+118
Комментарии98

8 вещей, которые я хотел бы знать, когда начинал свой бизнес

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

Предисловие


В мире, наполненном стартапами, успех или неудачу сложно предсказать. Но одно можно сказать точно: тот, кто решается открыть своё дело, уже никогда не будет таким, как прежде. Постоянные трудности, связанные с появлением новых возможностей и проблем, делают процесс удивительным и интересным. Я думаю, что именно поэтому многие люди начинают своё дело, несмотря на наличие другой (более простой) альтернативы — работать на кого-то другого.
За свою жизнь я открыл несколько фирм и могу сказать, что некоторые извлечённые мной уроки были интуитивно понятны и доступны, в то время как другие — далеко не так просты и очевидны. Однако, учитывая временные и денежные затраты на понимание этих уроков, ни один из них я не могу назвать дешёвым.
Эти уроки изменили моё мировозрение, изменили меня как личность. Я рад, что мне пришлось столкнуться с ними, но это не значит, что я не хотел бы знать их изначально.
Вот эти восемь вещей, которые я хотел бы знать, когда начинал своё первое дело.
Читать дальше →
Всего голосов 166: ↑147 и ↓19+128
Комментарии64

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

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

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

Информация

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