Очередная статья про «азы программирования на C++» меня подтолкнула к мысли, что многие программисты не понимают сути объектно-ориентированного программирования (ООП).
Виктор Наумик @vicnaum
User
10 лет практики. Часть 1: построение программы
6 min
22KДесять лет я пишу на С++. Первые пять лет моей задачей было писать эффективный код для компьютерных игр, потом основным требованием была стабильность, так как речь шла об автоматизации промышленных объектов. Я бы хотел поделиться своим личным опытом и практическими наработками, которые помогут создавать эффективные и в то же время стабильно работающие программы.

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

Материал разбит на части, от самых общих практических правил, интересных начинающим, до конкретных вопросов, актуальных опытным программистам.
В первой части я на практике дам свой ответ на самые базовые вопросы. Как вообще писать программу, в особенности — сложную программу? Что следует сделать в самом начале, чтобы потом не переделывать с нуля? Как создать оптимальную структуру программы?
+98
Продолжая тему прослушки GSM
1 min
23KНеугомонный Карстен Нол, который уже много лет исследует криптоустойчивость GSM сетей, на конгрессе Chaos Computer Club в Берлине представил новый способ перехвата и расшифровки GSM сигнала, который не требует дорогостоящего оборудования и значительного количества времени.
+47
RadioNet – недосеть, зато бесплатная
3 min
2.2KRadioNet, если вкратце – это система, которая позволяет кому попало и бесплатно бродить по локальной радиосети. Но, обо всем по порядку.
Около года назад скучая и слушая радио с телефона, я никак не мог оторвать глаза от текстовой полоски RDS. «А почему идею не развивают дальше?»
Около года назад скучая и слушая радио с телефона, я никак не мог оторвать глаза от текстовой полоски RDS. «А почему идею не развивают дальше?»
+75
История одной красивости или псевдотрёхмерное изВращение
2 min
1.1KДавным-давно, когда компьютеры были уже не такими большими, но тактовые частоты всё ещё измерялись единицами мегагерц, мой пытливый ум случайно
изобрёл некий весьма любопытный эффект. Взгляните на картинку и представьте, что вся эта совокупность точек вертится самым невероятным образом.

Конечно, для современных видеокарт такая задача является примитивной, однако в те времена на 3.5 мегагерцовом «Cпектруме» о подобных мощностях можно было лишь помечтать. Так что забудьте о графических процессорах, матрицах вращения и нереально ресурсоёмких вычислениях и попробуйте хотя бы примерно прикинуть, каким образом можно реализовать вот такую красивость.
Любопытно? Тогда добро пожаловать под кат!
изобрёл некий весьма любопытный эффект. Взгляните на картинку и представьте, что вся эта совокупность точек вертится самым невероятным образом.

Конечно, для современных видеокарт такая задача является примитивной, однако в те времена на 3.5 мегагерцовом «Cпектруме» о подобных мощностях можно было лишь помечтать. Так что забудьте о графических процессорах, матрицах вращения и нереально ресурсоёмких вычислениях и попробуйте хотя бы примерно прикинуть, каким образом можно реализовать вот такую красивость.
Любопытно? Тогда добро пожаловать под кат!
+57
Рисуем кнопку в SVG
7 min
8.9KВ настоящее время я работаю над одним веб-приложением, и вот захотелось мне обновить нынешний, довольно-таки топорный интерфейс на что-то более современное, более красивое. Начать решил с кнопок как с наиболее технически нагруженной части: в них требуется не только заменить внешний вид, но и добавить индикацию нажатия и обработку событий. Сразу же возникла проблема: как обеспечить масштабирование? Обычной растровой картинкой не обойтись, так как у пользователей могут использоваться разные шрифты (как вид, так и размер), и картинка-подложка не будет под них адаптирована. Логично было бы попробовать использовать для этих целей SVG, чем я и занялся.
К сожалению, в конечном итоге я пришёл к выводу, что овчинка не стоит выделки: слишком много проблем вылезло при попытке реализации этой идеи. Тем не менее, я не считаю это время потерянным: я приобрёл новые знания и навыки и теперь хотел бы поделиться ими с сообществом, чтобы облегчить жизнь тем, кто решит повторить мой путь. Описать свои мучения я планирую в двух статьях: в первой — работа над собственно SVG-картинкой, во второй — техника внедрения полученной картинки в качестве кнопок, возникающие при этом проблемы и их решение или обходные пути. Кому интересна первая часть, прошу под кат.
К сожалению, в конечном итоге я пришёл к выводу, что овчинка не стоит выделки: слишком много проблем вылезло при попытке реализации этой идеи. Тем не менее, я не считаю это время потерянным: я приобрёл новые знания и навыки и теперь хотел бы поделиться ими с сообществом, чтобы облегчить жизнь тем, кто решит повторить мой путь. Описать свои мучения я планирую в двух статьях: в первой — работа над собственно SVG-картинкой, во второй — техника внедрения полученной картинки в качестве кнопок, возникающие при этом проблемы и их решение или обходные пути. Кому интересна первая часть, прошу под кат.
+35
«Правильная» музыка. Или как навести порядок в своей MP3 коллекции
5 min
81K
Мотивы
Навеяно хабратопиком.
Предыстория
В октябре 2008 года я купил себе iPhone 3G и, до нынешнего лета, в качестве mp3-плеера использовал именно его. Необходимость загружать музыку в смартфон, используя iTunes, по началу меня изрядно напрягала. Но, как выяснилось значительно позже, возможно именно это избавило меня от головной боли с конвертированием тегов, записанных кириллицей. Я просто не задумываясь добавлял альбомы из своей коллекции в «тунец» и всегда гарантированно получал на телефоне треки без «кракозябр». Удобно. Но всему приходит конец.
+61
Такой разный опыт
3 min
1.2KКак, все-таки, по-разному приходит к нам профессиональный и житейский опыт. Иногда по-хорошему, а бывает и по-плохому. Что характерно в обоих случаях — доходит не до всех.
+16
C чего начинался ASUS
7 min
75K По историческим меркам компания ASUS является младенцем – её история начинается в недалёком 1989 году. То есть даже я старше этой компании на несколько лет ;)
Собственно, отмотаем как раз до 1989 года. Компьютером уже вроде бы как никого особо не удивишь, но интерес к ним колоссальный – нет ничего удивительного в том, что многие захотели заработать в этой сфере. Поспособствовала этому и компания IBM, которая незадолго до этого сделала архитектуру своих компьютеров открытой – получается, делать компьютеры или комплектующие к ним мог кто угодно. Да-да, уже в то время Тайвань буквально кишел всевозможными компаниями по производству электроники.

Собственно, отмотаем как раз до 1989 года. Компьютером уже вроде бы как никого особо не удивишь, но интерес к ним колоссальный – нет ничего удивительного в том, что многие захотели заработать в этой сфере. Поспособствовала этому и компания IBM, которая незадолго до этого сделала архитектуру своих компьютеров открытой – получается, делать компьютеры или комплектующие к ним мог кто угодно. Да-да, уже в то время Тайвань буквально кишел всевозможными компаниями по производству электроники.
+12
Интересный баг в Google Chrome OS
2 min
2.8KЯ недавно писал про Cr-48, первый ноутбук с Google Chrome OS. С тех самых пор я его нещадно мучаю и даже иногда отправляю багрепорты обратно в Гугл. Но сегодня столкнулся с довольно интересным, на мой взгляд, багом, которым и хочу поделиться. Обсуждение, предложения, вопросы — велкам.
Как воспроизвести баг и скриншот — под катом.
Как воспроизвести баг и скриншот — под катом.
+42
Малый бизнес 2011. Волк и овцы
6 min
35KНа прошлой неделе мы начали публикацию case’ов, помогающих решать проблемы реального бизнеса в реальной жизни. От вас было получено много пожеланий как это продолжать, у нас у самих возникла масса идей и вот, мы продолжаем! Уже немало написано о том, что с 2011 года для малого бизнеса наступят темные времена. Взносы вырастут в 2,5 раза, отчетность придется сдавать новую, больше и в 4 раза чаще, кроме того, нет никакой гарантии, что наши кровные деньги пойдут по назначению и сделают жизнь бабушек, дедушек и детушек лучше. Но что теперь делать бизнесменам? Уходить «в тень»? Закрываться? Бежать из страны?
Большинство способов малозаконны. А можно личто-то сделать вполне легально и пережить трудное время, пока правительство не одумается и не прекратит «кошмарить» малый бизнес?
Большинство способов малозаконны. А можно ли
+109
Как хакер издевался над преступником, своровавшим его ПК
1 min
31KХакер под ником Zoz выступил на конференции Defcon 18 с 20-минутным рассказом, как ему удалось обнаружить десктоп, украденный год назад. История действительно необычная (слайды презентации, видео (см. с 3:15)).
Zoz месяцами выслеживал, когда где-нибудь на аукционах появятся комплектующие с его серийными номерами, но безуспешно. Аккаунт в сервисе DynDNS (привязка домена к динамическому IP-адресу) тоже не подавал признаков жизни. Через 30 дней они прислали письмо, что если желаете сохранить аккаунт в режиме отсутствия активности, то нужно купить апгрейд до версии Pro. В октябре 2009 года Zoz сделал это — и удача повернулась у нему лицом.
7 мая 2010 года в аккаунте DynDNS появилась странная запись.
Zoz месяцами выслеживал, когда где-нибудь на аукционах появятся комплектующие с его серийными номерами, но безуспешно. Аккаунт в сервисе DynDNS (привязка домена к динамическому IP-адресу) тоже не подавал признаков жизни. Через 30 дней они прислали письмо, что если желаете сохранить аккаунт в режиме отсутствия активности, то нужно купить апгрейд до версии Pro. В октябре 2009 года Zoz сделал это — и удача повернулась у нему лицом.
7 мая 2010 года в аккаунте DynDNS появилась странная запись.
+233
Плавная анимация на iPhone и iPad
3 min
21KВсем известно, насколько популярен стал мобильный браузинг. На современных устройствах веб все меньше и меньше уступает настольному оригиналу. Однако есть один камень преткновения: скорость. Хоть на выходе мы и получаем красиво отрисованную веб-страницу, производительность рендеринга и JavaScript оставляет желать лучшего.

Особенно это заметно на всевозможных слайдшоу: на мобильных и планшетах они тормозят, глючат, мерцают и всячески портят впечатления. Сегодня мы заставим анимацию работать идеально на iPhone и iPad.

Особенно это заметно на всевозможных слайдшоу: на мобильных и планшетах они тормозят, глючат, мерцают и всячески портят впечатления. Сегодня мы заставим анимацию работать идеально на iPhone и iPad.
+40
Жрецы программирования
4 min
7KСовсем недавно я понял, отчего многие программисты, использующие PHP, отличаются от программистов «в целом». Основой для моего понимания стали слова Руслана Косолапова: «Это PHP. Понять невозможно, только запомнить». А ведь действительно, это так. Объясню, почему.
+127
Вторая жизнь чека
5 min
14K
Те хабражители, для которых книга Николая Носова «Незнайка на Луне» стала в свое время кратким введением в капитализм, вероятно обратили внимание на привычку ее героев вести товарно-денежное общение, выписывая друг другу чеки. Такой способ передачи денег был весьма характерен для героев литературы советского периода, однако, когда капитализм добрел, наконец, до России, чеки не были уже так популярны. Для повседневных нужд гораздо удобнее использовать кредитки, и с чеками современный хабражитель имеет дело в очень редких случаях (например, когда получает деньги от Google AdSense). Вернее, наш абстрактный «хабражитель» считает, что редко видит чеки. На самом деле он пользуется ими всегда, когда оплачивает что-либо через электронные платежные системы или получает через них деньги.
В интернете довольно часто обсуждается то, соответствует ли закону деятельность таких систем, но в суде этот вопрос был разобран сравнительно недавно. Давайте посмотрим, как это было.
+61
Домейнер, скриншоттер и шампанское!
1 min
7.2KСегодня закончился конкурс-угадайка от Ticno по двум софтоподаркам, анонсированный вместе с семью новыми программами в прошлом посте.
Мы получили немало предположений (смешных и не очень). Один хабражитель прислал сразу 20 разных вариантов с максимально широкой трактовкой (типа дополнение к браузерам), но не угадал… Обе программы не назвал никто, но у нас есть победитель, угадавший одну программу — скриншоттер.
Он получает набор шампанского от Asti Martini. Подробности о программах под катом!

Мы получили немало предположений (смешных и не очень). Один хабражитель прислал сразу 20 разных вариантов с максимально широкой трактовкой (типа дополнение к браузерам), но не угадал… Обе программы не назвал никто, но у нас есть победитель, угадавший одну программу — скриншоттер.
Он получает набор шампанского от Asti Martini. Подробности о программах под катом!

+37
Делаем SMS-сервис «на коленке»
6 min
9.1K
Сейчас я расскажу, как мои коллеги за неделю (по часу в день) запустили «по фану» SMS-сервис и как это делается. Вообще, мне было интересно, как надо правильно прикручивать SMS-уведомления к интернет-магазину, но тут прямо целый кейс микропроекта. Сразу говорю, если вы хорошо знаете как работает SMS-агрегатор, SMS-шлюз и другие штуки, этот «первый кирпичик» покажется вам банальным.
Задача перед мини-стартапом стояла простая:
- Создать прикольную штуку на «коленке» за минимум времени
- Потратить на запуск меньше 1000 рублей (время не считается)
- Собрать работающий монетизируемый сервис
UDP: в комментах ещё есть статистика во время хабраэффекта и феерический конец истории от агрегатора.
+95
Журнальный киоск, доступный всем
4 min
5.5K…а не только владельцам iPad

+18
Небольшое исследование самозащиты продуктов Dr.Web
4 min
7.8KПродолжая свой предыдущий топик про ремувер от ЛК, как и обещал, расскажу про утилиту удаления продуктов от Dr.Web. В прошлый раз Лаборатория Касперского довольно быстро отреагировала и усложнила капчу, теперь от нее рябит в глазах, а желания писать алгоритм распознавания не возникает. Правда, перед тем как выложить версию с новой каптчей (build 157), они обновили старую, куда добавили удаление новейших продуктов линейки 2011 (build 155)…
Про ремувер от Dr.Web я собирался написать еще в сентябре, но т.к. была обнаружена довольно серьезная уязвимость в модуле самозащиты не только самой утилиты удаления, но и всей линейки антивирусов, пришлось дать время программистам из Dr.Web на ее исправление.
Про ремувер от Dr.Web я собирался написать еще в сентябре, но т.к. была обнаружена довольно серьезная уязвимость в модуле самозащиты не только самой утилиты удаления, но и всей линейки антивирусов, пришлось дать время программистам из Dr.Web на ее исправление.
+64
Не используй человека-клавиатуру
3 min
2.4KTranslation

Есть несколько вещей, которые раздражают меня больше, чем когда мне не по своей воле приходится принимать участие в создании привычки (или культуры), которая заставляет относиться к людям как к компьютерным клавиатурам. Люди не должны восприниматься как кнопки, на которые можно нажать, чтобы вызвать определенные функции.
Что я подразумеваю под термином «человек-клавиатура»? Представьте себе на минуту, что вместо набора на клавиатуре или использования мыши, вам приходилось бы просить человека выполнить какую-нибудь задачу.
«Зайди в мою электронную почту».
«Покажи первое сообщение».
«Прокрути немного вниз».
«Прокрути чуть больше вниз».
«Я хочу ответить на это письмо».
Представляете себе, насколько страшное воздействие на производительность и удобство использования компьютером окажет такой интерфейс! Для такой простой задачи как «проверка e-mail» требуется 2 человека – вы и «человек-клавиатура», что повлечет за собой двойные затраты, двойные ошибки, проблемы в коммуникации между ними. Тем не менее, несмотря на глупость этого примера, похожие ситуации возникают довольно часто в бизнесе, при взаимодействии между сотрудниками, которые решают и ставят задачи друг друга.
+48
Information
- Rating
- Does not participate
- Location
- Беларусь
- Date of birth
- Registered
- Activity