Начало 2024 года ознаменовалось возрождением сразу нескольких забытых проектов. Один из них — Damn Small Linux, о котором мы недавно писали. Теперь ещё и webOS, правда, в лице своего форка, получившего название LuneOS. Эта операционная система получила первое обновление примерно за четыре года. Подробности о том, что теперь представляет собой эта ОС, — под катом.
User
Производительность Raspberry Pi: добавляем ZRAM и изменяем параметры ядра
После установки Raspberry Pi в свою домашнюю серверную я заметил, что в моменты дефицита оперативной памяти она становилась очень невосприимчивой и даже подвисала. Чтобы решить эту проблему, я добавил ZRAM и внёс несколько изменений в параметры ядра.
Готовое решение markdown2pdf с исходным кодом для Linux
Предисловие
Markdown это прекрасный способ написать небольшую статью, а иногда и достаточно объемный текст, с несложным форматированием в виде курсива и толстого шрифта. Также Markdown неплох для написания статей с включением исходного кода. Но иногда хочется без потерь, танцев с бубном перегнать его в обычный, хорошо оформленный файл PDF, и чтобы не было проблем при конвертации, какие, например были у меня — нельзя писать по русски в комментариях исходного кода, слишком длинные строки не переносятся, а обрезаются и прочие мелкие проблемы. Инструкция позволит быстро настроить конвертер md2pdf не особенно вникая как это работает. Скрипт для более менее автоматической установки ниже в соотвествующем разделе.
Руководство по материалам электротехники для всех. Часть 1
В этой части начинаем разбирать проводники — Серебро, Медь, Алюминий.
Добро пожаловать под кат (ТРАФИК)
Автономный способ обхода DPI и эффективный способ обхода блокировок сайтов по IP-адресу
Существует два распространенных типа подключения DPI: пассивный и активный.
Пассивный DPI
Пассивный DPI — DPI, подключенный в провайдерскую сеть параллельно (не в разрез) либо через пассивный оптический сплиттер, либо с использованием зеркалирования исходящего от пользователей трафика. Такое подключение не замедляет скорость работы сети провайдера в случае недостаточной производительности DPI, из-за чего применяется у крупных провайдеров. DPI с таким типом подключения технически может только выявлять попытку запроса запрещенного контента, но не пресекать ее. Чтобы обойти это ограничение и заблокировать доступ на запрещенный сайт, DPI отправляет пользователю, запрашивающему заблокированный URL, специально сформированный HTTP-пакет с перенаправлением на страницу-заглушку провайдера, словно такой ответ прислал сам запрашиваемый ресурс (подделывается IP-адрес отправителя и TCP sequence). Из-за того, что DPI физически расположен ближе к пользователю, чем запрашиваемый сайт, подделанный ответ доходит до устройства пользователя быстрее, чем настоящий ответ от сайта.Программирование для Palm в 2017 году
Шло 12 мая 2017 года. Лежащий снег за окном и включённое отопление навевали мысли о вечном, и мой взор упал на шикарный промышленный КПК под управлением PalmOS.
Терминал сбора данных
Когда-то он мне был отдан, но я им ни разу так и не пользовался. По началу у него не было шнурка для СОМ-порта. А потом в процессе искусственной подпайки к контактам — был оборван шлейф от материнской платы кредла до разъёма порта КПК. Так и лежал мёртвым грузом.
И восхотел я реанимировать данный пальм, а чтобы была мотивация, решил для начала поглядеть какие бывают эмуляторы под linux, дабы посмотреть какое ПО есть и стоит ли овчинка выделки. И с поиском, установкой эмулятора немного увлёкся… Снега, холодная погода мая так повлияли на меня, что я решил попробовать писать для данного КПК. Тем более, что Palm — это КПК моей студенческой молодости, тогда это был безумно крутой гаджет. Тогда я не умел программировать под них, но очень хотел. Спустя больше 14 лет (почувствуй себя старым, ага) — решил таки попробовать это сделать.
Если вам интересно, как эмулировать данный КПК, а ещё лучше писать для него ПО, то поехали читать дальше.
Терминальная графика
Когда данных становится слишком много, бывает не хватает стандартного вывода printf в консольной программе. Особенно если различных событий много и различные данные превращаются в безумный листинг. Эти данные могут поступать от контроллера через UART, и тут нечего и думать о какой-то gui-программе. Может так же быть и обычный bash-скрипт, к которому хочется прикрутить какой-никакой псевдографический интерфейс.
Как программисты развлекались до появления программирования
У нас есть квайны (вики) — программы, которые выводят собственный исходный код. Композитор в какой-то жизненный момент, судя по всему, поспорил с одним своим немецким товарищем, и написал свой аналог квайна. В музыке это — произведение, которые можно проиграть «впрямую» и обратную сторону. В данном случае — два скрипача играют дуэтом, глядя на лист с разных сторон. Вот подобная штука:
Послушать можно вот тут.
Юристы — это вообще песня. Их профессия, пожалуй, наиболее близка к разработке кода, разве что в роли кода выступают люди.
Nuklear — идеальный GUI для микро-проектов?
Nuklear — это библиотека для создания immediate mode пользовательских интерфейсов. Библиотека не имеет никаких зависимостей (только C89! только хардкор!), но и не умеет создавать окна операционной системы или выполнять реальный рендеринг. Nuklear — встраиваемая библиотека, которая предоставляет удобные интерфейсы для отрисовки средствами реализованного приложения. Есть примеры на WinAPI, X11, SDL, Allegro, GLFW, OpenGL, DirectX. Родителем концепции была библиотека ImGUI.
Чем прекрасна именно Nuklear? Она имеет небольшой размер (порядка 15 тысяч строк кода), полностью содержится в одном заголовочном файле, создавалась с упором на портативность и простоту использования. Лицензия Public Domain.
Подводные камни Bash
В этой статье мы поговорим об ошибках, совершаемых программистами на Bash. Во всех приведённых примерах есть какие-то изъяны. Вам удастся избежать многих из нижеописанных ошибок, если вы всегда будете использовать кавычки и никогда не будете использовать разбиение на слова (wordsplitting)! Разбиение на слова — это ущербная легаси-практика, унаследованная из оболочки Bourne. Она применяется по умолчанию, если вы не заключаете подстановки (expansions) в кавычки. В общем, подавляющее большинство подводных камней так или иначе связаны с подстановкой без кавычек, что приводит к разбиению на слова и глоббингу (globbing) получившегося результата.
- for i in $(ls *.mp3)
- cp $file $target
- Имена файлов с предшествующими дефисами
- [ $foo = «bar» ]
- cd $(dirname "$f")
- [ "$foo" = bar && "$bar" = foo ]
- [[ $foo > 7 ]]
- grep foo bar | while read -r; do ((count++)); done
- if [grep foo myfile]
- if [bar="$foo"]; then ...
- if [ [ a = b ] && [ c = d ] ]; then ...
- read $foo
- cat file | sed s/foo/bar/ > file
- echo $foo
- $foo=bar
- foo = bar
- echo <<EOF
- su -c 'some command'
- cd /foo; bar
- [ bar == "$foo" ]
- for i in {1..10}; do ./something &; done
- cmd1 && cmd2 || cmd3
- echo «Hello World!»
- for arg in $*
- function foo()
- echo "~"
- local varname=$(command)
- export foo=~/bar
- sed 's/$foo/good bye/'
- tr [A-Z] [a-z]
- ps ax | grep gedit
- printf "$foo"
- for i in {1..$n}
- if [[ $foo = $bar ]] (в зависимости от цели)
- if [[ $foo =~ 'some RE' ]]
- [ -n $foo ] or [ -z $foo ]
- [[ -e "$broken_symlink" ]] возвращает 1, несмотря на существование $broken_symlink
- Сбой ed file <<<«g/d\{0,3\}/s//e/g»
- Сбой подцепочки (sub-string) expr для «match»
- Про UTF-8 и отметках последовательности байтов (Byte-Order Marks, BOM)
- content=$(<file)
- for file in ./*; do if [[ $file != *.* ]]
- somecmd 2>&1 >>logfile
- cmd; ((! $? )) || die
- y=$(( array[$x] ))
- read num; echo $((num+1))
- IFS=, read -ra fields <<< "$csv_line"
- export CDPATH=.:~/myProject
Японские кроссворды на QtQuick
Люблю в свободное время что-нибудь прототипировать. Это позволяет поизучать что-то новое. Данный прототип является клиентом для ресурса http://www.nonograms.ru/, разработчиком которого является Чугунный К.А/ KyberPrizrak /. Весь код доступен на GiHub. На стороне C++ работа с HTML, модель галереи. На стороне QtQuick визуализация.
В этот раз решил поковырять:
- Q_GADGET и его использование в Qml;
- есть ли жизнь без Qt WebKit;
поковырять Qt Labs Controls.
Что сделано:
- галерея кроссвордов;
- разгадывание кроссворда.
Под катом будет рассмотрено:
- скриншоты;
- как получить HTML без Qt WebKit;
- как сделать кроссворд без Canvas.
Мониторинг выполнения задач в IPython Notebook
def log_progress(sequence, every=10):
for index, item in enumerate(sequence):
if index % every == 0:
print >>sys.stderr, index,
yield item
Эта функция прекрасна, больше года она кочевала у меня из задачи в задачу. Но недавно я заметил в стандартной поставке Jupyter виджет IntProgress и понял, что пора что-то менять:
Model-View в QML. Часть вторая: Кастомные представления
Model-View в QML:
- Model-View в QML. Часть нулевая, вводная
- Model-View в QML. Часть первая: Представления на основе готовых компонентов
- Model-View в QML. Часть вторая: Кастомные представления
- Model-View в QML. Часть третья: Модели в QML и JavaScript
- Model-View в QML. Часть четвертая: C++-модели
Документируем код эффективно при помощи Doxygen
Данная статья входит в получившийся цикл статей о системе документирования Doxygen:
- Документируем код эффективно при помощи Doxygen
- Оформление документации в Doxygen
- Построение диаграмм и графов в Doxygen
Это первая и основная статья из упомянутого цикла и она представляет собой введение в систему документирования исходных текстов Doxygen, которая на сегодняшний день, по имеющему основания заявлению разработчиков, стала фактически стандартом для документирования программного обеспечения, написанного на языке C++, а также получила пусть и менее широкое распространение и среди ряда других языков.
В этой статье мы сначала познакомимся с самой системой и её возможностями, затем разберёмся с её установкой и базовыми принципами работы, и, наконец, завершим знакомство рассмотрением различных примеров документации, примеров того, как следует документировать те или иные части кода. Словом, познакомимся со всем тем, что позволит вам освоиться и начать работать с этой замечательной системой.
Лекции «Квантовые симуляторы: квантовые компьютеры специального назначения»
Одной из основных задач, стоящих перед квантовой физикой сегодня является создание квантового компьютера. Находясь в состоянии суперпозиции, квантовый процессор может решать задачу для всех исходных значений параллельно, что означает рост производительности компьютера на многие порядки и революционные изменения технологического уклада современного мира. Специалисты оценивают сроки применения первых квантовых компьютеров вплоть до нескольких десятков лет. Могут ли квантовые вычисления дать нам что-то уже сегодня? Ответ да, но лишь в специальных областях.
HP будет продавать Touchpad по 99 долларов 11 декабря на eBay
Похоже на то, что у любителей приобретать хорошие вещи по не очень высокой цене есть все шансы это сделать. Компания HP объявила о том, что будет продавать свои планшеты Touchpad с webOS на eBay 11 декабря. В продажу поступят как 16 ГБ, так и 32 ГБ модели. Стоимость их составляет 99 и 149 долларов, соответственно. Можно только представить себе, какой поднимется ажиотаж при «выбросе» партии этих планшетов.
Тысяча чертей! Потребитель? Защищайтесь!
Но есть луч света в темном царстве!
Закон о защите прав потребителя. Замечательная штука, поверьте. При прокачанном скиле использования данного закона можно стать настоящим потреб. террористом. Это, кстати, полуофициальный термин — так называют людей, намеренно злоупотребляющих широкими возможностями, которые предоставляются вышеупомянутым законом.
Итак! На что вы имеете право!
По просьбе NermaN я попробую составить мануал, как и что.
XKB: перенастроим клавиши под себя любимого
Надоедает тянуться до Esc, при этом клавишей CapsLock пользуетесь РЕДКО.
Надоедает смещать кисть вниз и нажимать Ctrl/Cmd/Win слабым мизинчиком, либо, не дай бог, тянуться до них большим пальцем.
Надоедает лезть за PgUp, PgDn, Home и End, двигая руку каждый раз, чтобы всего лишь промотать страницу вниз.
Надоедает каждый раз, когда вы делаете опечатку, со злобой смотреть на клавиатуру в поисках кнопки Backspace.
Сегодня мы узнаем, как навсегда избавиться от этих мучений.
Зачем это всё?
Чтобы меньше нажимать клавиши. Чтобы меньше тянуться пальцами до тех клавиш, которые часто нажимаем. Чтобы руки меньше уставали. Чтобы легче запоминать что где. Чтобы быстрее печатать, в конце концов.
Многие раскладки для печати (Dvorak, Colemak и т.п.) сильно улучшают расположение клавиш, ставя их ближе к тем местам, куда нужно меньше тянуться. Но при этом совершенно забывают о модификаторах, спец. символах и командных клавишах (Enter, Backspace, Tab, Esc, Delete). А мы подумаем о том, как улучшить существующее положение вещей.
В статье пойдём от простейших изменений, до более интересной и глубокой настройки. И, как в конце хороших фильмов, я оставлю читателя подумать, что делать дальше, и не дам готового рецепта на всё. В конце концов, идеальных и универсальных решений нет, и на раскладку клавиатур товарищей нет.
Программирование под MeeGo для начинающих
Введение
В данной статье будет дано введение в разработку приложений для платформы MeeGo. Начиная с самых азов, установки и настройки вспомогательного программного обеспечения, и заканчивая отладкой и развертыванием приложения. Мы создадим простое приложение, выполняющее основные операции над числами (калькулятор), данное приложенное довольно простое и имеет множество способов реализации, а мы рассмотрим пример нестандартного решения представленный в книге [7].
Что нужно знать про арифметику с плавающей запятой
В далекие времена, для IT-индустрии это 70-е годы прошлого века, ученые-математики (так раньше назывались программисты) сражались как Дон-Кихоты в неравном бою с компьютерами, которые тогда были размером с маленькие ветряные мельницы. Задачи ставились серьезные: поиск вражеских подлодок в океане по снимкам с орбиты, расчет баллистики ракет дальнего действия, и прочее. Для их решения компьютер должен оперировать действительными числами, которых, как известно, континуум, тогда как память конечна. Поэтому приходится отображать этот континуум на конечное множество нулей и единиц. В поисках компромисса между скоростью, размером и точностью представления ученые предложили числа с плавающей запятой (или плавающей точкой, если по-буржуйски).
Арифметика с плавающей запятой почему-то считается экзотической областью компьютерных наук, учитывая, что соответствующие типы данных присутствуют в каждом языке программирования. Я сам, если честно, никогда не придавал особого значения компьютерной арифметике, пока решая одну и ту же задачу на CPU и GPU получил разный результат. Оказалось, что в потайных углах этой области скрываются очень любопытные и странные явления: некоммутативность и неассоциативность арифметических операций, ноль со знаком, разность неравных чисел дает ноль, и прочее. Корни этого айсберга уходят глубоко в математику, а я под катом постараюсь обрисовать лишь то, что лежит на поверхности.
Information
- Rating
- Does not participate
- Registered
- Activity