Pull to refresh
74
-1
Храбров Дмитрий @DeXPeriX

Программист

Миниатюрное десктопное GUI приложение на PHP — 2 МБ хватит для всех

Reading time 6 min
Views 14K
Abnormal programming *PHP *Programming *Development for Linux *Development for Windows *

Я часто заморачиваюсь на тему минимизации размера своих GUI приложений. Прошлая моя статья была про Nuklear. Но сейчас захотелось более современных технологий. Чтоб HTML5, CSS3 и PHP. Чтоб приложение ни от чего не зависело, т.е. построено по принципу "всё включено". И чтоб конечный размер приложения не превысил 2 МБ. Получится ли?

В Linux я часто пользуюсь утилитой df. Мне её очень не хватает в Windows, а искать аналоги лень. Так что было сделано волевое решение сделать свою, на РНР 5, с бутстрапом и JQuery.

Читать далее
Total votes 33: ↑32 and ↓1 +31
Comments 58

Nuklear+ — миниатюрный кроссплатформенный GUI

Reading time 6 min
Views 18K
Open source *Programming *C *Development for Linux *Development for Windows *

Nuklear+ (читается как "Nuklear cross", значит "кроссплатформенный Nuklear") — это надстройка над GUI библиотекой Nuklear, которая позволяет абстрагироваться от драйвера вывода и взаимодействия с операционной системой. Нужно написать один простой код, а он потом уже сможет скомпилироваться под все поддерживаемые платформы.


Я уже писал на хабре статью "Nuklear — идеальный GUI для микро-проектов?". Тогда задача была простой — сделать маленькую кроссплатформенную утилиту с GUI, которая будет примерно одинаково выглядеть в Windows и Linux. Но с тех самых пор меня не отпускал вопрос, а можно ли на Nuklear сделать что-то более-менее сложное? Можно ли целиком на нём сделать какой-нибудь реальный проект, которым будут пользоваться?

Читать дальше →
Total votes 20: ↑18 and ↓2 +16
Comments 7

Продвинутый Jekyll

Reading time 10 min
Views 47K
Website development *Open source *JavaScript *Programming *GitHub *

Jekyll — генератор статических сайтов. Это означает, что на вход ему даётся какая-либо информация, а на выходе получается набор HTML-страничек. Всё отлично когда сайт простой или даже одностраничный. Но что насчёт более сложных сайтов? Справится ли Jekyll? Будет ли удобно?


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

Читать дальше →
Total votes 30: ↑28 and ↓2 +26
Comments 19

Читаем tar за 26 строк ANSI C кода

Reading time 5 min
Views 20K
Programming *C *

Архиваторы — это страшно! Огромные и ужасные алгоритмы, которые обычному человеку никогда в жизни не понять! Rar, zip, gzip, tar — современные стандарты де-факто, а значит крайне сложные и навороченные штуки, которые и пытаться понять не стоит. Ну, tar выглядит попроще, может там всё не так сложно? Смотрим git с исходниками. Видим десятки файлов, многие на десятки килобайт. Мда. Видимо, тупик.


__________________|      |____________________________________________
     ,--.    ,--.          ,--.   ,--.
    |oo  | _  \  `.       | oo | |  oo|
o  o|~~  |(_) /   ;       | ~~ | |  ~~|o  o  o  o  o  o  o  o  o  o  o
    |/\/\|   '._,'        |/\/\| |/\/\|
__________________        ____________________________________________
                  |      |dwb

На самом деле всё не так сложно. В документации было описано, что tar — просто способ записи нескольких файлов на ленту. Т.е. всё должно быть просто. По факту — набор вспомогательной информации для каждого файла и непосредственно его содержимое. Именно понимание этого факта и позволило сделать читатель tar-файлов в 26 строк.

Читать дальше →
Total votes 63: ↑57 and ↓6 +51
Comments 34

Nuklear — идеальный GUI для микро-проектов?

Reading time 7 min
Views 62K
Open source *Programming *C *Development for Linux *Development for Windows *

Nuklear — это библиотека для создания immediate mode пользовательских интерфейсов. Библиотека не имеет никаких зависимостей (только C89! только хардкор!), но и не умеет создавать окна операционной системы или выполнять реальный рендеринг. Nuklear — встраиваемая библиотека, которая предоставляет удобные интерфейсы для отрисовки средствами реализованного приложения. Есть примеры на WinAPI, X11, SDL, Allegro, GLFW, OpenGL, DirectX. Родителем концепции была библиотека ImGUI.


Чем прекрасна именно Nuklear? Она имеет небольшой размер (порядка 15 тысяч строк кода), полностью содержится в одном заголовочном файле, создавалась с упором на портативность и простоту использования. Лицензия Public Domain.

Читать дальше →
Total votes 109: ↑107 and ↓2 +105
Comments 80

Что ещё можно делать на e-ink книге с Android

Reading time 4 min
Views 105K
Gadgets
Как-то просидев очередные сутки за компьютером я понял, что не могу дальше работать, т.к. болят глаза. Обычно мне хватает несколько дней отдыха и я снова в строю. Но эти несколько дней надо прожить почти без компьютера и не пялиться в мобильный телефон.

Но отказаться от компьютерной техники в целом не получается, зависимость требует новую дозу! Тут и могут помочь устройства с E-ink экраном — от них глаза не болят. Уже год, как использую Nook Simple Touch. На нём сразу установлен Android 2.1 с кучкой самописанных программ от Barnes & Noble. После рутирования получается хоть и старенький, но полнофункциональный и полный андроид. В качестве примера дальше будет использоваться Nook, однако по аналогии можно сделать аналогичные действия на любой другой книге с Android. Итак, что же можно эффективно делать на читалке, какие именно приложения оказались наиболее полезными?
Читать дальше →
Total votes 50: ↑42 and ↓8 +34
Comments 77

QtCreator: Qt кросс-компиляция из linux 64 в linux 32, win32, win64 и Mac OS X; upx, usb, dmg, etc

Reading time 14 min
Views 76K
Programming *Qt *


Библиотека Qt позволяет делать действительно кроссплатформенные приложения. Единожды написанный код можно откомпилировать под многие операционные системы. Но проблема именно в слове «компилировать», т.к. подразумевается, что необходимо перезагрузиться под целевую систему, иметь в ней настроенную среду разработки, установленный и настроенный зоопарк библиотек. Спасает кросс-компиляция — компиляция, производящая исполняемый код для платформы, отличной от той, на которой исполняется.
Читать дальше →
Total votes 59: ↑57 and ↓2 +55
Comments 24

Vim и переключение раскладки клавиатуры

Reading time 2 min
Views 24K
VIM *
Все команды Vim нужно вводить на английском языке. Если основной текст вводится на каком-либо другом языке, то это представляет из себя проблему, т.к. нужно часто переключать раскладку. Одно из решений представлено тут, однако оно заставляет привыкать к новой горячей клавише для переключения раскладки. Так же существует множество платформенно-зависимых решений с вызовом тех или иных утилит. Целью плагина vim-xkbswitch является предоставить единое поведение для многих операционных систем и языков.
Читать дальше →
Total votes 24: ↑23 and ↓1 +22
Comments 17

Vim в Windows и переключение раскладки клавиатуры

Reading time 2 min
Views 9.1K
VIM *
UPD: Это «историческая» версия топика. Новое решение проблемы смотреть здесь.

Проблема русской раскладки в Vim поднималась много раз. Одно из решений можно увидеть здесь, однако оно заставляет привыкать к новой горячей клавише для переключения раскладки. Также существует множество решений с вызовом системной утилиты для смены раскладки, но под Windows подобной утилиты не нашел, так что пришлось реализовать её самостоятельно.
Читать дальше →
Total votes 11: ↑7 and ↓4 +3
Comments 9

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

Reading time 3 min
Views 7.6K
JavaScript *
Sandbox
Недавно пришлось делать загрузчик фотографий на сервер. Поскольку опыт использования сторонних скриптов уже был, а время на их доработку часто было больше времени на разработку скрипта с нуля, то было принято решение сделать загрузчик самостоятельно.

При обращению к гуглу выдаёт много статей по загрузке файлов через iframe. Алгоритм в общем сводится к:
1) Создаём скрытый фрейм (обычно просто обнуляется ширина и высота через HTML и CSS свойства)
2) Устанавливаем action формы в имя фрейма.
3) Отправляем файл. Радуемся.

Для удобства использования отдельная кнопка «Начать загрузку» не создавалась, а был повешен обработчик onChange для файлового input'a.

Читать дальше →
Total votes 45: ↑36 and ↓9 +27
Comments 32

Information

Rating
Does not participate
Location
Brno, Jihomoravsky Kraj, Чехия
Date of birth
Registered
Activity