Обновить
33
0
Sam Protsenko@skb7

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

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

Десять возможностей C++11, которые должен использовать каждый C++ разработчик

Время на прочтение12 мин
Охват и читатели549K
В данной статье рассматривается ряд возможностей С++11, которые все разработчики должны знать и использовать. Существует много новых дополнений к языку и стандартной библиотеке, эта статья лишь поверхностно охватывает часть из них. Однако, я полагаю, что некоторые из этих новых функций должны стать обыденными для всех разработчиков С++. Подобных статей наверное существует много, в этой я предприму попытку составить список возможностей, которые должны войти в повседневное использование.

Сегодня в программе:
  • auto
  • nullptr
  • range-based циклы
  • override и final
  • строго-типизированный enum
  • интеллектуальные указатели
  • лямбды
  • non-member begin() и end()
  • static_assert и классы свойств
  • семантика перемещения
Читать дальше →

Уроки по электрическим цепям — линии передачи

Время на прочтение10 мин
Охват и читатели270K
Ещё не начав читать статью, попробуйте подумать над вопросом: побежит ли ток, если подключить к батарейке очень длинный провод(более чем 300 тысяч километров, сверхпроводник), если противоположные концы провода никуда не подключены? Сколько Ампер?

Прочитав эту статью, вы поймёте в чём смысл волнового сопротивления. Из лекций по теории волн я вынес только то, что волновое сопротивление — это сопротивление волнам. Большая часть студентов, кажется, поняла ровно то же самое. То есть ничего.

Эта статья — весьма вольный перевод этой книги: Lessons In Electric Circuits
Статьи по теме: На Хабре: Контакт есть, сигнала нет
Трэш в Википедии: Длинная линия

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

Подмена обработчика системного вызова

Время на прочтение6 мин
Охват и читатели10K
Всем доброго времени суток! Я студентка-второкурсница технического ВУЗа. Пару месяцев назад пришла пора выбирать себе тему курсового проекта. Темы типа калькулятора меня не устраивали. Поэтому я поинтересовалась, есть ли что-нибудь более интересное, и получила утвердительный ответ. «Подмена обработчика системного вызова» — вот моя тема.

Введение

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

Зачем?

Главная цель, пожалуй, наглядно на рабочей системе посмотреть как оно работает, а не «грызть» сухую теорию. Ну, или как раньше программисты пытались «делать многозадачность» в DOS, переопределяя обработчик событий таймера.
Читать дальше →

4 шага на пути в Google, не имея высшего образования

Время на прочтение4 мин
Охват и читатели192K


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

Wasted Dreams — история забытой игры (статья-пилот из цикла «Истории Игровой Индустрии»)

Время на прочтение16 мин
Охват и читатели72K


В поисках утраченного ковчега – часть I


Представим, что вы тертый в боях игрок. Старый. Опытный. Человек, которого трудно удивить. Человек, который многое повидал. Человек, который видел Истоки. Каждая новая игра сопровождается вашим скрипом, — «А вот раньше…», «Помню, были времена…», «Детки, то, что вы считаете новым, не более чем хорошо забытое старое, я это видел в 19..». Предположим также, что вы новый Индиана Джонс своего времени, боец невидимого археологического фронта, который каждый божий день пытается отыскать свой Грааль. Грядущее вас интересует мало, настоящее вызывает скепсис, цель ваших поисков – прошлое. Полагаю, что нам с вами, сегодня, по пути.

Почему прошлое? Потому что оттуда с завидным постоянством приходит то, что есть в настоящем и то, что грядет в будущем. Половина, если не большинство гениальных идей «озаряющих» разработчиков сегодня — уже давно сделанные кем-то игры. Все что нужно в этом случае – отряхнуть находку, заново раскрасить и сделать казуальный контроллер, добавив пару новшеств.
Не секрет, что во многих старых играх игроку нашего времени разобраться сложно, да и старый игрок частенько буксует. Общепринятые решения по части удобства использования интерфейсов, привычные схемы ставшие нормой сегодняшнего дня тогда не были реализованы даже в зачатках. Каждая новая игра была, по сути, полностью самостоятельным миром, зачастую без оглядки на других разработчиков. Это было великое время экспериментов, недооцененных потенциалов, игр которые многие до сих пор не могут воссоздать и до сих пор не могут переосмыслить.

Я часто гуляю с лопаткой по улицам и подземкам давно забытых городов. Именно с этой целью. Поиск хорошо забытого старого. Новое, безусловно, удивляет, но что может сравниться с покрытой пылью бутылкой хорошего старого скотча? Расскажу вам. Как археолог археологу.

На глубине временных пластов периода 1999 года моя лопата со звоном ударилась о неизвестный объект. По моим выкладкам в этом секторе не должно было находиться крупных и не изученных игр. Обкопав объект по периметру и сдув пыль там, где она мешала разглядеть символы я увидел… чудо. Это покажется невозможным, но в наш короткий игровой век мы до сих продолжаем находить неизвестные широкой публике работы древних зодчих. Можете представить мое удивление, изумление и благоговейный восторг, когда я увидел игру, созданную в стилистике…


Дать лопате шанс

progress bar для консольных утилит

Время на прочтение1 мин
Охват и читатели35K
По долгу службы мне время от времени приходится копировать, архивировать, разархивировать и проводить другие стандартные действия с большими файлами. Консольные утилиты, типа cp, tar или cat — отлично справляются с поставленной перед ними задачей, но возникает одна маленькая проблема: предположим, что надо заархивировать SQL-дамп на 500 Мб, на среднем железе данная операция может выполняться 5 — 10 минут и при этом, стандартный tar не выводит никакой строки прогресса, т.е. консоль как бы подвисает и только открыв top в соседнем окне можно понять что что-то происходит. Я думаю, что будет намного удобнее, если в консоли появится полоска прогресса как в том же scp и тогда пользователь будет лучше осведомлен о том, как долго ему осталось ждать до завершения операции.
Как же этого добиться?

pv — маленькая, но очень полезная утилита

Время на прочтение2 мин
Охват и читатели92K
Один мой друг сказал по поводу pv следующее «Я админю семь лет, мне нужна была эта тулза десятки раз, а я даже не знал что она существует». В размышлениях над тем как заполучить инвайт на Харбе, я набрал в поиске pv. И ничего не нашел.
Читать дальше →

Три возраста паттерна Singleton

Время на прочтение5 мин
Охват и читатели100K
Паттерн Singleton появился, пожалуй, как только появились статичные объекты. В Smalltalk-80 так был сделан ChangeSet, а чуть в самых разных библиотеках стали появляться сессии, статусы и тому подобные объекты, которых объединяло одно — они должны были быть одни-единственные на всю программу.

В 1994 году вышла известная книга «Паттерны проектирования», представив публике, среди 22-х прочих, и нашего героя, которого теперь назвали Singleton. Была там и его реализация на C++, вот такая:
Читать дальше →

Ежедневная работа с Git

Время на прочтение40 мин
Охват и читатели911K
Я совсем не долго изучаю и использую git практически везде, где только можно. Однако, за это время я успел многому научиться и хочу поделиться своим опытом с сообществом.

Я постараюсь донести основные идеи, показать как эта VCS помогает разрабатывать проект. Надеюсь, что после прочтения вы сможете ответить на вопросы:
  • можно ли git «подстроить» под тот процесс разработки, который мне нужен?
  • будет ли менеджер и заказчик удовлетворён этим процессом?
  • будет ли легко работать разработчикам?
  • смогут ли новички быстро включиться в процесс?
  • можно ли процесс относительно легко и быстро изменить?


Конечно, я попытаюсь рассказать обо всём по-порядку, начиная с основ. Поэтому, эта статья будет крайне полезна тем, кто только начинает или хочет разобраться с git. Более опытные читатели, возможно, найдут для себя что-то новое, укажут на ошибки или поделятся советом.

Далее очень много букв случайным образом превратились в пост.

Вычисление N-го знака числа Пи без вычисления предыдущих

Время на прочтение4 мин
Охват и читатели137K
С недавних пор существует элегантная формула для вычисления числа Пи, которую в 1995 году впервые опубликовали Дэвид Бэйли, Питер Борвайн и Саймон Плафф:
image

Казалось бы: что в ней особенного — формул для вычисления Пи великое множество: от школьного метода Монте-Карло до труднопостижимого интеграла Пуассона и формулы Франсуа Виета из позднего Средневековья. Но именно на эту формулу стоит обратить особое внимание — она позволяет вычислить n-й знак числа пи без нахождения предыдущих. За информацией о том, как это работает, а также за готовым кодом на языке C, вычисляющим 1 000 000-й знак, прошу под хабракат.
Читать дальше →

Строим декоративный транзисторный компьютер — шаг 1

Время на прочтение7 мин
Охват и читатели120K
Недавно на хабре была статья о проектировании собственного компьютера, где автор хотел сначала строить компьютер из транзисторов, но затем решил продолжить на микросхемах 7400-серии из-за того, что на транзисторах ему это показалось слишком сложным и дорогим занятием.

Похожая задача интересовала и меня последние 3 года — но от изначальной идеи строить на транзисторах я не отказался, и сейчас могу рассказать свои соображения и показать текущие наработки, а также — хочу спросить вашего мнения о том, каким на ваш взгляд должен быть _серийный_ транзисторный декоративный компьютер. Но сразу нужно заметить, что работы впереди еще на пару лет :-)

Главный вопрос — зачем все это нужно, если есть FPGA и всякие Raspberry Pi?

Ответ простой:
1) Мне интересно этим заниматься в свободное время и
2) Декоративный компьютер (декоративный — это вопрос отношения к компьютеру, а не его внешности) — он как декоративные домашние животные: мопс не отгрызет ногу грабителю, а персидский котик не победит в бою метрокрысу. Но с ними интересно играть и показывать гостям — даже если в области вычислений, охраны и охоты они сильно уступают «боевым» аналогам.
Читать дальше →

Чему ИТ-индустрия научилась у Линуса Торвальдса?

Время на прочтение3 мин
Охват и читатели52K


Джим Землин (Jim Zemlin), исполнительный директор Linux Foundation, наверное, один из тех немногих людей, кто был в гуще событий при появлении и развитии Linux, крупнейшей совместной разработки в истории вычислительной техники. Он понимает, что скорость инноваций и качество разработки ПО диктуется теми, кто смотрит вперёд и работает в сотрудничестве друг с другом. Вот почему он был приглашен на недавний TEDx, с рассказом о том, чему ИТ-индустрия научилась у Linuх и особенно у основателя этого проекта Линуса Торвальдса (Linus Torvalds).
Читать дальше →

Чем опасен rebase, или как получилось, что 2*3=5

Время на прочтение2 мин
Охват и читатели98K
Однажды старший программист Антон искал причину очередного бага в очень важном проекте компании:
git bisect start
git bisect bad
git bisect good
…

В компании использовали rebase, история коммитов была линейной, и поиск по ней доставлял Антону одно удовольствие.
— Ага, нашел. Ну конечно: в коде написано «2*3=5», ещё бы оно работало с этим бредом! Какой @#$%^ это написал?
Читать дальше →

Linux, безопасность и все такое… (вдогонку)

Время на прочтение2 мин
Охват и читатели14K
Навеяло вот этим топиком. Автор задал правильные вопросы, но к сожалению не дал правильных ответов.
На самом деле это общая грустная тенденция. Почему-то все свято уверены, что раз вирусов под линуксом нету, то и безопасность сама собой обеспечивается. Понимание ошибочности этого взгляда приходит зачастую слишком поздно, когда ты уже хакнут, причем еще неизвестно, какой из описанных в комментах случаев хуже — хакнутый корпоративный сервер или установленная любимым сыном дома маме десктопная убунта.
Давайте глянем, как можно обезопасить себя от всякой фигни.
Дальше

От программирования к железу или «Почему оно не работает?».Ликбез

Время на прочтение9 мин
Охват и читатели148K
image
Привет Хабр. В последнее время среди программистов все больше стала набирать популярность цифровая электроника, появляются все новые платформы, позволяющие без каких либо особых знаний в электронике собирать различные устройства. Сам я начинал заниматься аналоговой электроникой, позже — цифровой и программированием. Многие же — наоборот — сначала программированием, а потом пытаются заниматься железом, при этом знания по части электроники практически нулевые и люди не знают/не понимают элементарных для олдфажного электронщика вещей. В данной статье я постараюсь затронуть наиболее важные на мой взгляд моменты, как по части проектирования схем, так и по части разводки плат. Надеюсь мои советы помогут миновать некоторые грабли
Читать дальше →

Что же происходит на рынке IT-труда в США?

Время на прочтение3 мин
Охват и читатели72K
В посте о новых правилах иммиграции в США затронули довольно интересную тему – нехватка квалифицированных IT-специалистов в Америке. Эта проблема существовала всегда, но почему именно сейчас это привлекло внимание гигантов промышленности?

У меня на этот счет есть собственное мнение, которым и хочу поделиться. Это не статистические данные, просто наблюдения и выводы. Действие происходит в районе Сиэтла, в 20-минутах от Microsoft, Google, Amazon, Expedia и т.д.
Читать дальше →

10 девайсов, которые вы можете проапгрейдить, немного поковырявшись с электроникой

Время на прочтение4 мин
Охват и читатели180K

Правило №1 в DIY: никогда не довольствуйтесь тем, что вам дано. Вы можете проапгрейдить или улучшить все что угодно обладая скромными познаниями и приложив немного усилий, особенно если вы немного знакомы с электроникой. Под катом 10 домашних предметов, которые вы можете круто прокачать, используя капельку припоя и ряд DIY ноу-хау.
Читать дальше →

Как стать ведущим разработчиком. Часть 2

Время на прочтение8 мин
Охват и читатели40K
Продолжение перевода статьи Джона Оллспоу о личных качествах ведущих разработчиков.

Зрелые разработчики не жалуются просто так


Вместо этого они рассуждают, основываясь на наблюдениях, и предлагают варианты решения найденной ими проблемы. Один опытный менеджер сказал мне: «Никогда не приходи к своему начальнику с жалобами, если у тебя нет готового решения проблемы. И лучше, если решений будет несколько». Но даже если у вас не получилось найти ни одного решения — это уже лучше, чем жаловаться просто так.
Читать дальше →

Как стать ведущим разработчиком. Часть 1

Время на прочтение8 мин
Охват и читатели142K
Это перевод статьи, написанной Джоном Оллспоу, который на данный момент является старшим вице-президентом технического отдела в Etsy.

Продолжение перевода здесь

В нашей сфере деятельности нам доступны огромные объёмы знаний, в особенности тех, которые позволяют разработчику стать эффективным. Но почему-то, несмотря на существование множества книг о специфических задачах и обязанностях менеджеров в нетехнических областях, я практически не вижу новых книг или статей о том, как стать хорошим ведущим разработчиком. Замечательным исключением, конечно, являются статьи Кейт Maцудайры [от переводчика: на фотографии, кстати, именно она], немало написавшей о культурных составляющих инженерии.

Но в то же время, все мои знакомые преуспевающие разработчики помнят своих наставников, которые научили их тому, что значит быть „ведущим“.
Читать дальше →

Обзор исходного кода Quake 3: Архитектура (Часть 1)

Время на прочтение5 мин
Охват и читатели106K
Так как у меня была одна неделя до моего следующего контракта, я решил закончить мой цикл статей id. После Doom,Doom Iphone, Quake1, Quake2, Wolfenstein iPhone и Doom3, я решил изучить код, который я еще не рассматривал: idTech3 — 3D движок Quake III и Quake Live.
Читать дальше →

Информация

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