Программа со знаком руки

Самая нужная программа на свете / Хабр

программа со знаком руки

Применение аварийной сигнализации и знака аварийной остановки 8. Правил. Регулировщик может подавать жестами руки другие сигналы. много программ тренировок; – поддержка Health Kit («Здоровье»); – детальное аудиосопровождение; – загрузка отдельных тренировок;. Какие программы помогут превратить фотографию в искусство? «с телефона», мировые СМИ как будто поставили на них знак качества. Не фотографировать, имея под рукой программы-фильтры, коллажи.

Как минимум, при построении дерева всегда можно выделить один условно главный признак, по которому можно производить группировку информации. Дерево имеет много других полезных свойств: Из дерева легко можно сделать граф: Создание идеального помощника В общем, я очутился в классической ситуации: В тот момент я присматривался к плюсовому фреймверку Qt, который вышел в своей 4-й версии.

И я решил, что нет ничего лучше, чем сделать свой собственный менеджер, который бы удовлетворял меня в меру моих собственных способностей. Я прочитал пару книжек, засел за программирование, и сделал первую минимальную версию программы. Я назвал её MyTetra. Выглядела она вот так: Изначально я точил те мелочи, которых мне не хватало в других менеджерах: Так же отказался от хранения данных в БД.

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

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

программа со знаком руки

Есть такие вещи, за которыми постоянно лезешь в свои записульки. К примеру, опции упаковки tar. Так же стал подробно записывать действия, которые произвожу при настройке какого-нибудь линухового софта.

Часто в Linux сложно не только настроить программу, а сложно ее установить, не говоря уже о запустить. И чтобы программа завелась, надо сделать не пять и не пятнадцать неочевидных действий, а гораздо. К концу, если что-то получилось, человек уже не помнит точно, что он делал в начале. А если записывал — то такой проблемы. Бывает так, что долго не можешь разобраться в каком-либо вопросе.

И вдруг натыкаешься на текст, в котором все подробно, легко и просто объясняется. Жалко такой текст потерять: Но если скинуть его в свою базу знаний, то можно испытать чувство успокоения, что эти важные сведения никуда не денутся, и останутся с вами.

8 фотоприложений для iPhone, которые сделают ваши снимки лучше

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

Постепенно база росла, а программа видоизменялась. В настоящий момент она выглядит вот так кстати, это скриншот из Linux, а не Windows: Да, учитывая, что сейчас легко доступны хостинги распределенных систем контроля версий, такие как GitHub и BitBucket, а так же облачные хранилища типа DropBox или Яндекс.

Диск, грех бы было ими не воспользоваться для бесплатного хранения в них своих баз знаний. Заодно решался вопрос бекапа и синхронизации. Возникала только одна проблема: В открытом виде их нельзя загружать на хостинг.

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

Почему была сделана библиотека, а не использована существующая? Потому что менеджер позиционируется как Qt-only. Такой принцип позволяет легко получать сборки для всех популярных платформ: Впрочем, в формате шифрования предусмотрено версионирование, и, возможно, я когда-нибудь прикручу OpenSSL, когда разберусь как ее включать в проект для всех вышеперечисленных платформ.

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

Спустя пять лет открытой разработки, получился PIM-менеджер с теми характеристиками, которые были нужны: Я, как человек, ежедневно пользующийся MyTetra, к настоящему времени держу в ней порядка записей. Средний прирост — около записей в год. Однако у него другой концепт: Я же собираю нужную мне информацию, оформляю ее, тегирую. И за последние три года накопилась вот такая статистика: Не каждый может похвастаться таким Contributions Map на GitHub-е.

А я даже не замечаю, как эта статистика набралась, так как MyTetra — это мой ежедневный рабочий инструмент. MyTetra и Интернет Менеджер персональных записей — это, конечно, хорошо. Каждый может сделать свой маленький огородик и втихомолку пилить свою базу знаний. Сколько в такой базе личных данных, а сколько таких, которые, возможно, были бы нужны другим людям? Это с учетом того, что в приватных записях у меня идет постоянная ежедневная работа.

Как то раз я игрался с визуализацией моей базы через пакет GraphViz. И для понимания масштаба моих открытых данных, сделал пару картинок. Здесь на сводной картинке облако повернуто на 90 градусов, иначе оно выглядело бы слишком широким. Здесь отображено около открытых записей. Ссылки на полноразмерные картинки Внимание! Картинки очень большие, браузер может сегфолтнуться. Лучше выкачать и посмотреть просмотрщиком.

7 лучших фитнес-приложений для iOS - статьи

Какой резон пользователям делиться своими базами знаний? Это каждый решает сам для. Кто-то испытывает потребность улучшить свою карму. Кто-то хочет это делать просто из альтруистических соображений, а кто-то из практических: В общем, помимо самой программы накопления записей я решил сделать сервис, позволяющий выводить свои записи в пространство Интернет. Я назвал это приложение MyTetra Web Client. Выглядит это дело вот так: Этот клиент был написан в году, и с тех пор я его не развивал.

Это очень простая оболочка, в которой не сделано даже поиска по названию записей и тегам. Просто демонстрация того, что базу MyTetra можно увидеть в браузере прямо в Интернете, если хранить данные в открытых репозитариях GitHub или BitBucket. Клиент работает и сейчас, а увидеть демонстрацию его работы можно так: Скопируйте в буфер обмена следующий URL: Никакой регистрации не требуется — все просто работает.

Если в базе есть приватные зашифрованные ветки, то они просто не отображаются: Однако у этого веб-клиента имеется один недостаток: Какой толк от баз знаний, если о них никто не знает? Поэтому я сделал второй проект, который называется MyTetra Share. На официальной страничке проекта перечислено 8 баз пользователей, которые можно сразу просмотреть.

программа со знаком руки

Принцип такой же как у MyTetra Web Client: Если поисковик проиндексирует такой URL, значит он пойдет дальше и проиндексирует все содержимое открытой базы данных. Как я уже сказал, таких баз сейчас 8 пример одной базыи они проиндексированы поисковиками.

программа со знаком руки

Выглядит MyTetra Share следующим образом. Этот проект оказался более востребованным, и я с помощью него даже смог монетизировать содержание своего хоумпейджа и сервиса MyTetra Share: Этих средств хватает на оплату хостинга, доменного имени и оплаты мобильного телефона. Можно было бы зарабатывать больше, но я сразу поставил жесткий фильтр на всякие аудио-наркотики, игровые автоматы, вибраторы, микрозаймы, на колдунов и экстрасенсов. К сожалению, даже в текстовой рекламе основные прибыли идут с мракобесия и разврата.

Я же занимаюсь выравниванием цифровой вселенной в более правильное русло, поэтому такие вещи на моем сайте не допустимы.

Благодаря размещению хорошо протегированной информации, проект MyTetra Share сформировал для сайта индекс цитирования в ТИЦ, и обеспечил около посетителей в сутки. Для Pet-проекта это не полохие показатели, учитывая что никакой раскруткой я не занимался.

программа со знаком руки

О несбывшихся надеждах Какие же надежды я возлагал на этот гигантский и многолетний проект? Самое главное, чего я хотел от проекта — это формирование хоть небольшой, но постоянной команды разработчиков, чтобы можно было развиваться не как программист-одиночка, а в плотном общении с себе подобными.

К сожалению, ни того ни другого не произошло. Периодически появлялись люди, которые делали небольшие правки и багфиксы в проекте.

И я им очень благодарен. Иногда они делали что-то для проекта сами, без просьбы, иногда я сам обращался к сообществу ЛОРа и Тостера, и находились люди которые помогали решить конкретную проблему.

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

Возможно, мне помогли бы книги, которые мне очень рекомендовали: С экрана же глубокого чтения у меня не получается. Максимум что могу читать — художественную литературу с книгочиталки. Но техническую не воспринимаю. Самое вменяемое, что я нашел — это курсы Евгения Линского на lektorium.

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

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

программа со знаком руки

Апофеозом моего понимания языка стала новость на ЛОРе, которую быстро выпилили, вот небольша часть: Из наиболее заметных улучшений: В данной статье я хочу рассказать про три с половиной основных способа взлома программ. NET, цель, которую я преследую — помочь разработчикам лучше понять механизмы защиты своих программ, то есть выяснить наиболее очевидные угрозы и предпринять соответствующие меры или не принимать. Я не буду углубляться в детали и использовать сложные инструменты для взлома.

А основным будет Reflectorдекомпилятор программ. NET В качестве подопытного кролика я выбрал Expresso — анализатор регулярных выражений. Данная программа бесплатная, в лицензии вроде бы ничего не указано про взлом, но при этом без регистрации она будет работать всего 60 дней.

7 лучших фитнес-приложений для iOS

Другими словами, вред от взлома данной программы минимальный, к тому же внутреннее её устройство очень уж хорошо подходит для тренировки. Буду надеяться, что автор данной программы не обидится на. Для начала краткий ликбез по структуре. NET программы, для тех кто не знаком с разработкой под данный Framework: Это что-то типа ассемблера, только весьма умного и обладающего весьма мощными инструкциями.

И это, в принципе, такой же равноправный язык как и Cтолько синтаксис похуже а возможности. Кроме того, в программе. NET активно используются метаданные, то есть вся информация о классах, метода, пропертях, атрибутах и всём остальном сохранена в исполняемом файле. Перейдём, собственно, к взлому. Обнуление триала Собственно, это даже не взлом, а полулегальный способ продлить срок использования неактивированной программы.

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

Открываем рефлектор и ищем код на предмет классов содержащих License или Registration, видим: При вводе имени и кода по имени вычисляется некий хеш, который и сравнивается с кодом. Данный хеш использует DES и всякие префиксы Байты конвертятся в строку с помощью данного метода. Теперь всё выяснилось, открываем IDE и копируем все необходимые куски кода или сами реализовываем. Я их приводить не буду, это уже технические детали. В результате генерируем ключ на любое имя и видим: