• Создание, ввод и распознавание форм

    @Maccimo
    Abbyy FlexiCapture смотрели?
    Судя по описанию примерно то, что вам нужно.
    Есть FormDesigner для создания бланков, есть распознавание всего этого.
    Ответ написан
    Комментировать
  • Skype паранойя

    @Maccimo
    С чего вы решили, что число в квадратных скобках — количество «запущенных копий аккаунта»?
    Лично у меня таким образом указывается количество чатов (групповых и одиночных), в которых есть непрочитанные сообщения.
    Ответ написан
    Комментировать
  • Во что переименовать хабрафуршет?

    @Maccimo
    идея открывать посты такого рода у меня вертелась уже с год

    Всё уже украдено до нас и фуршеты на хабре уже были.

    P.S. Интересно, есть ли специальный термин для фобии нарушить чьи-либо интеллектуальные права?
    Ответ написан
    1 комментарий
  • Потерян USB ключ защиты. Законно ли требование покупки всей программы заново?

    @Maccimo
    Кроме этого не совсем понятен вопрос легальности взлома защиты, дабы отучить программу от ключиков. Строго говоря — мы используем лицензионную копию


    На вскидку:

    Статья 1280. Свободное воспроизведение программ для ЭВМ и баз данных. Декомпилирование программ для ЭВМ
    1. Лицо, правомерно владеющее экземпляром программы для ЭВМ или экземпляром базы данных (пользователь), вправе без разрешения автора или иного правообладателя и без выплаты дополнительного вознаграждения:
    1) внести в программу для ЭВМ или базу данных изменения исключительно в целях их функционирования на технических средствах пользователя и осуществлять действия, необходимые для функционирования таких программы или базы данных в соответствии с их назначением, в том числе запись и хранение в памяти ЭВМ (одной ЭВМ или одного пользователя сети), а также осуществить исправление явных ошибок, если иное не предусмотрено договором с правообладателем;

    Правда последняя фраза довольно скользкая, так что что-то определённое вам может сказать только юрист.
    Сходите в юрконтору, как уже посоветовал Iforgot.
    Ответ написан
    Комментировать
  • Как найти файл по его типу, если расширение изменено?

    @Maccimo
    Если операция единоразовая, то можно поступить «в лоб»:
    1. Сначала найти все файлы, содержащие подходящие нам маркеры. Для rar это будет строка в начале файла «Rar!» (без кавычек, с соблюдением регистра).
    2. Затем отбросить все файлы с «правильным» расширением (для rar-архивов — *.rar)
    3. С оставшимися файлами разобраться в частном порядке.
    Ответ написан
    1 комментарий
  • Перевод из C на Java. Указатели?

    @Maccimo
    В Java параметры в методы передаются по значению. В случае примитивных типов передаётся само значение, в случае классов — ссылка на экземпляр. out-параметров нет.

    Варианты:

    а) Переписать реализацию так, что бы выходных параметров не было. Например, создать класс, где оригинальная фунция decode и все вспомогательные станут методами, а параметры — полями класса с getters/setters.

    б) Применить следующую уловку:

    public class ByRef<T> {
    
    	private T ref;
    
    	public ByRef(T ref) {
    		set(ref);
    	}
    
    	public T get() {
    		return this.ref;
    	}
    
    	public void set(T ref) {
    		this.ref = ref;
    	}
    
    }
    
    


    Пример использования:

    public class Foo {
    
    	public static void bar(ByRef<String> value) {
    		value.set("Good bye!");
    	}
    
    	public static void main(String... args) {
    	
    		ByRef<String> message = new ByRef<String>("Hello!");
    
    		System.out.println("Before call: " + message.get());
    
    		bar(message);
    
    		System.out.println("After call: " + message.get());
    	
    	}
    
    }
    
    


    Но вариант «а» всё же более идеологически верный.
    Ответ написан
    1 комментарий
  • Где хранить IP пользователей?

    @Maccimo
    Голосовать могут только зарегистрированные пользователи?
    Ответ написан
  • Как работают "раскрыватели паролей под звездочками"?

    @Maccimo
    Если речь идёт о стандартном элементе управления Windows, то всё довольно-таки просто.
    Такое поле ввода — это обычное однострочное поле ввода, у которого установлен стиль окна ES_PASSWORD

    Для того, что бы такое поле ввода показало текст пароля вместо звёздочек, достаточно послать ему сообщение EM_SETPASSWORDCHAR c wParam = 0

    Статья по теме в MSDN

    Защитить — например, вместо ранее введённого пароля показывать отвлечённый текст с предложением ввести новый пароль. Иными словами — не сообщать элементу управления ранее введённый пароль.
    Начиная с какого-то сервиспака WinXP так делают в диалогах удалённого доступа, например.
    Ответ написан
    Комментировать
  • Декомпиляция flash с использованием embed

    @Maccimo
    «Сокрыти еданных» это громко сказано :)

    Если часть классов вынесено в отдельный SWF, внедрённый в основной SWF при помощи embed, то всё довольно просто:

    Внедрённые данные хранятся в тегах DefineBinaryData.
    Добываете их из основного SWF и те из них, что начинаются с символов CWS или FWS пытаетесь декомпилировать.

    Достать полезную нагрузку тегов можно, например, при помощи утилиты swfbinexport из комплекта RABCDAsm.
    Ответ написан
  • Точка входа в процедуру sqlite3_open_v2 не найдена?

    @Maccimo
    На странице загрузок официального сайта SQLite cреди прочего есть и precompiled библиотека со следующим описанием:

    sqlite-dll-win32-x86-3071000.zip
    (286.49 KiB) This ZIP archive contains a DLL for the SQLite library version 3.7.10. The DLL is built using SQLITE_ENABLE_COLUMN_METADATA so that it is suitable for use with Ruby on Rails.
    (sha1: 0ca60b6eed9cca4f5d3807a587a7fe5a6c9930e5)

    Вы пробовали с этой библиотекой?
    Ответ написан
    1 комментарий
  • Что делать, если в СМИ скажут, что конец света наступит через 24 часа?

    @Maccimo
    Пойду проверить, написали ли уже об это на Хабре.
    Ответ написан
    Комментировать
  • Windows: Узнать технологии/библиотеки/фрэймворки используемые приложением?

    @Maccimo
    Какие библиотеки подлинкованы статически покажет куча специализированных утилит.
    Это и вышеупомянутый Process Explorer и консольные утилиты, идущие с компиляторами.

    Для продуктов от Borland/CodeGear/Embarcadero это tdump.exe, для продуктов от Microsoft — dumpbin.exe с ключём /exports.

    Исходя из подлинкованных библиотек уже можно делать предположения об использованных технологиях.
    Так, наличие в списке использованных библиотек mscoree.dll даст основания предполагать, что приложение написано под .Net, а наличие msvc*.dll намекнёт на использование MS Visual C.

    Если файл экспортирует функции, то есть смысл поискать по именам экспортированных функций в Google. Подопытный может оказаться чьим-либо плагином.

    Так же не лишне будет посмотреть ресурсы внутри исполняемого файла.

    Наличие ресурсов с именами DVCLAL и PACKAGEINFO — признак того, что скорее всего приложение создано либо в Delphi либо в C++Builder.

    По содержимому PACKAGEINFO можно узнать имена модулей, использованных в программе и идентифицировать по ним использованные библиотеки компонентов.

    Наличие же ресурсов в секции TYPELIB укажет нам на то, что что данный файл может являться COM-сервером.

    Некоторые программы (например, malware) бывают упакованы специальными пакерами, многие из них поможет распознать PEiD.

    Часто для пакеров существуют свободно распространяемые распаковщики. В этом случае после распаковки можно продолжить изучение файла.

    Это, конечно, далеко не полный список методов узнать подробности об интересующей нас программе.
    Чем больше у вас будет опыта в данной области, тем проще и быстрее вы получите интересующую вас информацию.
    Ответ написан
    1 комментарий
  • Какие устройства, по вашему мнению, являются культовыми?

    @Maccimo
    Автомат Калашникова, он даже на гербах государств встречается.
    Ответ написан
    Комментировать
  • Выделение лексем в мат. выражении (при помощи регекспов)?

    @Maccimo
    Однако в этом случае у пользователя есть возможность ввести «x 1», и это будет воспринято как одна лексема «x1»:variable. Можно ли учесть все условия в одном регекспе, чтобы не производить предварительное удаление пробельных символов?
    Предварительно удаляя пробелы вы не упрощаете задачу разбора выражения, а напротив — усложняете.

    Уберите удаление пробелов и добавьте вместо этого пробелы в качестве ещё одной альтернативы в
    regexp идущий сейчас вторым.

    Т.е.:

    var match = Regex.Match(infix, @"[-+*/^%()]|[A-Za-z][A-Za-z0-9]*|[+-]?[0-9]+\.?[0-9]*|[ \t]+");
    

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

    При более-менее серьёзной задаче, естественно, стоит написать нормальный лексер, а не городить огород из Regex. И модифицировать его проще будет и работать он будет быстрее.

    Как лучше всего проверить валидность выражения?

    можно ли обойтисть только регулярками, или лучше заюзать генератор вроде Сосо/R
    Задачу проверки корректности арифметического выражения средствами одних толкьо regexp-ов, насколько мне известно, решить нельзя.

    Можно задействовать генератор парсеров, а можно написать простенький свой, работающий по методу рекурсивного спуска.

    Всё зависит от того, что вам нужно — разобрать выражение или разобраться, как разбирать выражения.

    Если вас интересует тема парсеров/компиляторов и т.п., то однозначно стоит прочитать «Компиляторы. Принципы, технологии и инструментарий».

    Построение парсера арифметических выражений есть там в качестве пошагового примера.
    Ответ написан
    1 комментарий
  • Есть ли какая-нибудь IDE, которая упрощает создание сайтов с jquery?

    @Maccimo
    «Визуальный редактор» применительно к jquery — это как?
    Ответ написан
  • Нужен ли на Хабре обзор библиотеки для склонения ФИО?

    @Maccimo
    Пенелопа Круз не по зубам оказалась.

    При нажатии на кнопки «русский»/«украинский» получаю 404 ошибку:
    The requested URL /case/ru/Пенелопа Круз/demo.php was not found on this server.
    Ответ написан
    1 комментарий
  • Какие технологии использовать для браузерной игры?

    @Maccimo
    Так же попутно идеологички-технический вопрос касательно передачи передвижения шарика? Если я двигаю свой шарик, что передавать другим игрокам? новые координаты шарика? позиция + направление? что делать если нужно чтобы шарики у каждого игрока имели разную скорость? и т.д.
    С клиента на сервер передавать направление движения и скорость.
    С сервера клиентам рассылать новые координаты объектов, направления движения всех (!) подвижных объектов и их скорости.

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

    Стоит учесть, что в ряде случаев это может приводить к резким «скачкам» подвижных объектов на карте
    т.к. в передаче данных по сети возможны задержки.

    Плюсы этого подхода:
    • усложнение жизни недобросовестным игрокам, пытающимся изменить игровую ситуацию в обход правил. Например, перенестись в противоположный угол игрового поля послав на сервер специально сформированную команду. Довольно частое явление, кстати.
    • борьба с рассинхронизацией отображения игрового поля у различных игроков.

    Минусы:
    • задержки в сети могут приводить к не красивым визуальным эффектам
    • алгоритм рассчёта движения прийдётся реализовывать и на клиенте и на сервере. Причём они должны возвращать идентичные результаты при одинаковых входных данных.
    Ответ написан
    Комментировать
  • Zend или IonCube? Чем закодировать, что надежнее?

    @Maccimo
    Ещё есть NuCoder: www.nusphere.com/products/nucoder.htm
    Ответ написан
    Комментировать