Архив за 23 августа 2012 - 2

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

В начале июля директор (теперь уже бывший) агентства "Карамель" Наталья Прыткова написала пост о том, почему ей надоело быть гендиром SMM-компании, который собрал кучу лайков и разнообразных мнений. От "Наталья, вам лучше удалить свой пост ради своего будущего, до "Самый крутой пост ever!"

Читать полностью »

Одна из постоянных проблем верстальщиков адаптивных сайтов — это задача удобно представить обычные таблицы на мобильных устройствах. Вот как выглядят такие таблицы чаще всего:
Таблицы с данными в адаптивном дизайне

Не очень удобно, правда? К счастью уже существует несколько хитрых способов решить такую проблему.Читать полностью »

Одна из постоянных проблем верстальщиков адаптивных сайтов — это задача удобно представить обычные таблицы на мобильных устройствах. Вот как выглядят такие таблицы чаще всего:
Виды таблиц с данными в адаптивном дизайне

Не очень удобно, правда? К счастью уже существует несколько хитрых способов решить такую проблему.Читать полностью »

Одна из постоянных проблем верстальщиков адаптивных сайтов — это задача удобно представить обычные таблицы на мобильных устройствах. Вот как выглядят такие таблицы чаще всего:
Способы реализации адаптивных таблиц

Не очень удобно, правда? К счастью уже существует несколько хитрых способов решить такую проблему.Читать полностью »

С 5 марта по 10 июня мной был пройден дистанционный курс обучения Массачусетского технологического института по программе 6.002 MITx «Circuits and electronics».

image

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

Алгоритмы сортировки. Их не много, но и не мало. Есть часто используемые, есть никому не нужные. Я решил произвести обзор этих алгоритмов, чтоб освежить и свою память, и память хабрапользователей. И начнём с редкоиспользуемого алгоритма Gnome Sort(гномья сортировка).
Читать полностью »

Программы для удаления компьютерных блокираторов-вымогателей, как правило, предназначены для неискушенного пользователя, которому использование таких средств как regedit.exe или uVS в повседневной жизни не требуется, и когда приходит «нежданно-негаданно» блокиратор, то пользователю хочется найти панацею, которая быстро и легко излечит его компьютер. Конечно, панацею найти не удается, но получается найти какую-нибудь программу, которая попытается излечить компьютер. И если эта программа помогает неискушенному пользователю, то он превозносит эту программу, как средство от всех программных вымогателей, а если не поможет — выражает свое «фу» при упоминании ее названия другими пользователями. Предлагаю провести небольшое сравнение этих программ.
Читать полностью »

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

Да, C++ был почти идеальным языком в этом плане. Но времена меняются, старые технологии уходят и на их место приходят новые более продуктивные и удобные. Так наша команда перешла на .NET. Но в обмен на простоту разработки и удобство отладки, мы в придачу получили в довесок и простоту декомпиляции нашего ПО. Теперь хакер мог не просто обойти лицензионные ограничения, но и получить почти полный исходник нашей программы просто скормив ее рефлектору.
Разумеется, в качестве решения этой проблемы на рынке было представлено множество различных обфускаторов. Но, как ни странно, большинство из них разочаровывали меня сразу с двух сторон: и ценовой политикой (даже минимальная лицензия некоторых превосходила стоимость нашего ПО в несколько раз), и «интеллектуальностью» алгоритма. Так, после некоторых обфускаторов, умудрялись падать даже простые WinForms приложения. Что же касалось WPF, то без долгого-долгого черного шаманства над эксклудами, запустить среднего размера программу не представлялось возможным в принципе.

Так сформировалось понимание проблемы и четкое желание создать свой продукт, сводящий озвученные выше проблемы к минимуму. И появился SaaS обфускатор и протектор .NET кода AppFuscator.com

Обфускатор и протектор .NET кода appfuscator

Читать полностью »

«Год или два, с момента начала работы в Bell Labs, я работал в паре с Кеном Томпсоном над интерактивным графическим языком, разработанным Джерардом Хольцманом (Gerard Holzmann). Я печатал быстрее, поэтому я сидел за клавиатурой, а Кен стоял позади меня. Мы работали быстро, и когда компилятор выдавал ошибку, я рефлективно начинал закапываться в проблему, изучая стек вызовов, вывод программы, запускал отладчик и так далее. Но Кен просто стоял рядом и думал, игнорируя меня и код, который мы только что написали. Вскоре я заметил закономерность: Кен зачастую понимал, в чем проблема, раньше меня и произносил: „Я знаю, что не так“. Обычно он был прав. Я понял, что Кен выстраивал ментальную модель кода и, когда что-то ломалось, это была ошибка в модели. И думая о том, как эта проблема могла возникнуть, он выяснял, в каком месте модель была неверна или где наш код мог неправильно эту модель отразить.Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js