Pull to refresh
-23
0
Send message

Chocolatey — apt-get для Windows

Reading time6 min
Views119K
Chocolatey — менеджер пакетов в среде Windows по аналогии с apt-get в Linux Мире.



Начал использовать по причине разработки на Node.js под Nodester. Мне хотелось бы регулярно обновлять ноду, git, dropbox, да и тот же skype, при этом, не заморачиваясь со скачиванием msi инсталяторов и установками, а просто обновить одной командой:

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

История про realloc (и лень)

Reading time9 min
Views48K

Простой макрос


Все началось с простого макроса: (приблизительный код)
#define ADD_BYTE(C) do {            \
  if (offset == capa) {             \
    if (capa < 16) {                \
      capa = 16;                    \
    } else {                        \
      capa <<= 1;                   \
    }                               \
    buffer = realloc(buffer, capa); \
    assert(buffer != NULL);         \
  }                                 \
  buffer[offset++] = (C);           \
} while(0)


Для тех, кто не знаком с языком программирования C, поясню: этот простой макрос добавляет байт «C» в динамически выделяемый буфер (buffer), размер которого (в байтах) равен capa. Следующая позиция для записи определяется при помощи параметра offset. При каждом заполнении буфера происходит двукратное увеличение его объема (начиная с минимального размера в 16 байт).

Мы добавляем байты в динамический буфер — это одна из наиболее распространенных операций практически в любой программе (для работы со строками, массивами и т. п.).

Но как понять, насколько эффективна стратегия перераспределения?
Читать дальше →

Как я проект в OpenSCADA сделал

Reading time14 min
Views86K
image

Речь в статье пойдет о той самой OpenSCADA, которая под Linux и с oscada.org.

Зачем:
• потому что SCADA на самом деле достойна внимания и популяризации;
• в некоторых малобюджетных или маленьких проектах просто безальтернативная;
• судя по статьям про АСУТП на хабре, многим читателям АСУТП представляется черной магией, недо-IT или чем-то похожим (ломают несчастный modbus, мучают WinCC, которая и так еле тарахтит… Люди читают и охают: «Как так можно…. дырявое ПО в промышленности», но никого не удивляет ломание Win95 и 6го ослика. Поломали бы LON шифрованный, OPC, OPC_UA…… А WinCC сама расшаривает папку с проектом с именем вида WinCC_Project_xxxxxx при первом открытии + это вы еще не видели как ее плагин к Excel может намертво винду подвесить при неаккуратной вставке ячеек чуть больше, чем он может за раз осилить!) – добавим ликбеза;
Читать дальше →

Обходим запрет Yota раздавать интернет с телефона

Reading time2 min
Views374K

Вместо введения.


Я пользуюсь Samsung Note 3 LTE (N9005). Оператор, с недавних времен, Yota. LTE на этом аппарате пока не поддерживается официально, по этому я решил сегодня сделать root на телефоне и вручную включить LTE.
Хочу интернет!

Универсальная метасистема на C++

Reading time8 min
Views16K
Привет, Хабрхабр!

Хочу поделиться своим опытом разработки метасистемы для C++ и встраивания различных скриптовых языков.
Сравнительно недавно начал писать свой игровой движок. Разумеется, как и в любом хорошем движке встал вопрос о встраивании скриптового языка, а лучше даже нескольких. Безусловно, для встраивания конкретного языка уже есть достаточно инструментов (например, luabind для Lua, boost.python для Python), и свой велосипед изобретать не хотелось.
Читать дальше →

Защищаем трафик при помощи Comodo TrustConnect и DNSCrypt

Reading time2 min
Views12K
Раньше я не уделял должного внимания шифрованию, так как данные передаваемые в общественных местах не имели большой важности, но сегодня я увидел в этом и оборотную сторону медали. В институте, как обычно, на паре информатики, студенты сидели вконтакте, хабре и других ресурсах и ничего не предвещало опасности. Все были в неведении того, что творилось по ту сторону сети. А творился там WireShark, любезно показывающий преподавателю адреса посещаемых страничек, шпор и соответственно индекс «внимания» студентов. В этот момент я понял — нам угрожает опасность не сдать сессию.
Тогда я решил найти способ скрыть действия в сети.
Читать дальше →

Малая авиация, летающие дроны, IT и моя мечта…

Reading time15 min
Views48K


Здравствуйте.

Я не являюсь активным пользователем Хабра. Я почти ничего не комментирую. Читаю его каждый день, но не считаю себя достаточно опытным в IT-сфере, чтобы высказывать свое мнение. Поэтому я не имею кармы и не стремлюсь её заработать.

Но у меня есть мечта и хобби.

Я – бывший пилот. Бывший – из-за неудачного парашютного прыжка. Так сложилось.

Всё обошлось, я переучился и стал неплохим экономистом, но мечта осталась, точно так же как понимание того, что небо может строго наказывать даже за мелкие проступки. Со временем у меня появилась идея сделать приложение для пилотов, основная цель и идея которого – уменьшение риска возникновения аварийных ситуаций и помощь пилоту в ситуации крайнего дефицита времени. Многие наработки могут быть полезны тем, кто занимается ПО для летающих дронов.
Статья будет ОЧЕНЬ длинной.

Lua API++

Reading time19 min
Views22K
Здравствуйте, коллеги.
Хочу познакомить вас с моим небольшим проектом, который, надеюсь, сможет пригодиться и вам.

С Lua я познакомился несколько лет назад, когда подыскивал внедряемый скриптовой язык, отличающийся скромным размером и высокой производительностью. Lua не только отвечает этим запросам, но и подкупает удивительной простотой и выразительностью.

Не могу сказать, что я недоволен Lua API: это отличный набор функций, удобный и простой в использовании. Интеграция языка в своё приложение и добавление собственных расширений не вызвали трудностей, никаких «подводных камней» тоже не возникло. Но всё же при использовании этого API, ориентированного на Си, меня не оставляла мысль, что этот процесс мог бы быть и поудобнее. Первая попытка сделать удобную объектно-ориентированную обёртку потерпела неудачу: имеющимися средствами мне не удалось создать что-то заслуживающее существования, всё выходило чересчур громоздко и неочевидно.

А потом появился C++11, который снял все мешавшие мне препятствия (точнее говоря — добавил то, чего не хватало), и головоломка постепенно начала складываться. Второй заход оказался удачным, и в результате я сумел создать достаточно легковесную библиотеку-обёртку с естественным синтаксисом большинства операций. Эта библиотека, которую я назвал Lua API++, призвана служить удобной заменой для Lua API. Этой статья, написанная по мотивам моего выступления на Lua Workshop, поможет познакомиться с основными понятиями Lua API++ и предоставляемыми ей возможностями.
Читать дальше →

Немного о внутренностях WebKit

Reading time8 min
Views14K
Задался я с задачей, ознакомится с тем как работает в том или ином виде основа всех современных браузеров — WebKit, как происходит процесс загрузки ресурсов, и что с этим всем, собственно, можно сделать. Документации по вопросу, в принципе, достаточно:

* структурированная, но не покрывающая и 10 й части от Apple;
* разбросаные статьи в вики, разные по степени детализации и степени покрытия.

Целью данной статьи является не общий взгляд на систему сверху, а как раз точечный и детальный разбор одного из процессов, происходящих в системе. Который, по моему мнению, иногда дает лучшее представление о системе в целом, нежели абстрактный взгляд. А может быть просто будет маленьким кирпичиком, который понадобится разработчику для составления из разрозненной мозайки информации своего представления о системе.
Читать дальше →

Встраивание в ядро Linux: перехват функций

Reading time9 min
Views17K
Перехват функций ядра является базовым методом, позволяющим переопределять/дополнять различные его механизмы. Исходя из того, что ядро Linux почти полностью написано на языке C, за исключением небольших архитектурно-зависимых частей, можно утверждать, что для осуществления встраивания в большинство из компонентов ядра достаточно иметь возможность перехвата соответствующих функций.

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

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

Trie, или нагруженное дерево

Reading time4 min
Views102K
Здравствуй, Хабрахабр. Сегодня я хочу рассказать о такой замечательной структуре данных как словарь на нагруженном дереве, известной также как префиксное дерево, или trie.

Что это ?


Нагруженное дерево — структура данных реализующая интерфейс ассоциативного массива, то есть позволяющая хранить пары «ключ-значение». Сразу следует оговорится, что в большинстве случаев ключами выступают строки, однако в качестве ключей можно использовать любые типы данных, представимые как последовательность байт (то есть вообще любые).
Читать дальше →

Apache, fastcgi и c++: «Hello, world»

Reading time6 min
Views43K
img
Писать web-приложения на C/C++ дело неблагодарное. Многие говорят, что это полное безумие, когда есть PHP и Perl. И я с ними согласен. Это очень просто написать сайт на PHP(особенно используя фреймворки вроде Zend Framework).
Но..(всегда есть какое-то «но»).
Давайте не будем забывать, что простота использования складывается не только из простого синтаксиса. Учитывается множество параметров. И одним из весомых параметров является наличие статей «Get started with ...» с примерами «hello, world»-программ. Я собираюсь добавить немного простоты написанию fastcgi на C/C++. И если прочитав эту статью хоть один человек скажет «А это не так уж и сложно», то я буду считать свою миссию выполненной.
читать далее

Разработка сайтов (веб-приложений) на C++ (и не только) в виде подключаемых библиотек (*.so, *.dll)

Reading time4 min
Views53K

Введение (лирика)


Около двух лет я занимался веб-разработкой, создавая сайты и веб-приложения на языке PHP. Вот только в веб-разработку я попал по стечению весьма странных жизненных обстоятельств. Не сказать, что мне было это не интересно — мне, как раз, было очень интересно узнать, как создаются сайты и как вообще работает интернет.

Но, в то же время, меня всегда привлекало низкоуровневое программирование. Ещё во время учёбы мне очень понравился язык программирования C++. Только негде было его применять, кроме как для своего развлечения. Дальше я опустился пониже — изучил Assembler. Понял, как работает процессор (хотя слишком поверхностно) и как выполняются программы на самом деле.

Со всем этим набором знаний и опыта я попал в веб-разработку. Всё поначалу казалось весьма и весьма хорошо, оказалось гораздо проще, чем я думал. А со временем приелось, стало слишком просто, неинтересно, нет простора для оптимизаций и интересных решений. Генерируешь веб-странички, пишешь и подключаешь js-скрипты, оформляешь страницы с помощью css. Чувствовал, что больше не развиваюсь как программист.
Читать дальше →

Обзор систем управления проектами

Reading time3 min
Views166K
Мне пришлось за последние пару дней просмотреть много систем управления проектами и хочется поделиться тем, что я нашел…

Мы искали варианты с хостингом у создателя софта, чтобы не возиться с инсталяцией у себя (поэтому, например, тут нет Redmine в чистом виде).
Мне была важна интеграция с Google calendar и github.

Также хотелось чего то большего чем Bug tracking — еще и управление фичерами, требованиями и т.д.

Прошу прощения за много терминов на английском.

Картинки по клику открываются в полный размер

UPD: я не претендую на то, что просмотрел все такие сайты. их очень много!!!

краткий обзор возможностей некоторых сайтов для управления проектами

Часы на кривых Безье

Reading time1 min
Views67K


Bézier Clock — часы на кривых Безье, где цифры плавно перетекают из одной формы в другую. Автор говорит, что это его первый проект на Processing.js, исходный код опубликован. Можно отредактировать его и изменить, например, скорость анимации.

При выключенной анимации цифры трансформируются за 5 секунд до смены значения, а при включенной (пробелом) — в течение всего времени. Например, в 12:30:35 цифра «2» будет уже на полпути к превращению в «3». Направляющие скрываются кликом мыши.

Заявления Free Software Foundation и Defective By Design в связи с последней пресс-конференцией Apple

Reading time4 min
Views87K
Данная статья является переводом публичных заявлений двух организаций в ответ на пресс-конференцию Apple:

  • Free Software Foundation — некоммерческая организация, всемирная миссия которой — продвижение свободы и защита прав пользователей компьютеров и программного обеспечения.
  • Defective by Design («Намеренно испорченная», это про DRM) — кампания FSF по продиводействию распространению технологий DRM, что они рассшифровывают как Digital Restrictions Management (система управления цифровыми запретами) и считают угрозой инновациям в медиа, приватности потребителей и свободе пользователей компьютеров.

От переводчика.

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

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

Чтобы указать на опечатку или предложить лучший вариант перевода, пишите, пожалуйста, в личку.

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

Noisli: онлайн-генератор фоновых шумов, помогающих сконцентрироваться

Reading time1 min
Views182K


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

Сайт Noisli содержит коллекцию фоновых шумов на любой вкус и возможность смешивать их в произвольной пропорции. Здесь есть и звуки природы — шум дождя, плеск воды, пение птиц, шуршание листьев, и звуки техногенного характера — стук колёс поезда, звук работающего вентилятора, и звуки многолюдного кафе. Есть и искусственные белый, розовый и коричневый шум. Коллекция звуков постоянно пополняется.
Читать дальше →

Редизайн Qt Creator своими руками

Reading time7 min
Views63K


Многие из тех кто занимаются разработкой на C++/Qt знакомы с такой средой как Qt Creator, создатели которой потрудились над дизайном не меньше чем над функциональностью. Но меня, как любителя темных цветовых схем и плоского минимализма, всегда не устраивали светлый фон панелек и градиентные заголовки.

Казалось бы, открытый исходный код — бери да меняй, но неопытность и лень останавливали меня, пока я не узнал про такую вещь как Qt Style Sheets, позволяющюю описать вид виджетов в формате css.

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

Сверхкомпактная высокоинтегрированная x86-плата от AMD

Reading time1 min
Views46K

GizmoSphere и AMD представили высокоинтегрированную плату Gizmo Board для независимых разработчиков, производителей встроенных систем и гиков.

Gizmo Board представляет собой четырехдюймовый квадрат текстолита, заряженный двухъядерным x86-процессором G-T40E, который работает на частоте 1 ГГц, и GPU Radeon 6250. Эти два компонента в таком компактном дизайне обеспечивают приличную вычислительную мощь, правда всего 1 ГБ оперативной памяти DDR3, распаянной прямо на плате, возможно существенно ограничивают ее. Устройство способно работать под Android, Linux или Windows и снабжено следующими коммуникационными разъемами: SATA, Ethernet, USB, VGA, Audio, PCI, PCIe, а так же кучей выводов GPIO.
Читать дальше →

Наш велосипед или скрипты, облегчающие жизнь админа

Reading time2 min
Views39K
image
В комметариях к одной из предыдущих статей была просьба выложить на всеобщее обозрение все наши наработки, используемые в повседневной жизни. Общими усилиями все было собрано, описано и выложено на github.
Под катом ссылка на репозиторий и краткое описание скриптов.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity