Search
Write a publication
Pull to refresh
56
0
Илья @WST

Инженер-программист

Send message

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

Reading time7 min
Views68K

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


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

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

Затемнение изображения в CollapsingToolbarLayout или Image Scrim

Reading time3 min
Views10K
Привет, хабражителям и любителям профессионалам разработки под Android. В этой статье я хочу с вами поделиться на мой взгляд нужной и интересной информацией. Речь пойдет о такой вещи, как Image Scrim (скажу сразу, что данное понятие я ввел самостоятельно).
Читать дальше →

Подключаем геймпад от Nintendo Classic Mini к Raspberry pi

Reading time5 min
Views12K
Праздники подходят к концу, а значит пора пожалеть печень и включить голову. Вот и мне пришла в голову очередная идея. После того, как я подключил геймпад от Dendy (он же джойстик, он же контроллер, он же кнюппель, он же игровой пульт и т. д.) geektimes.ru/post/281520, я задумался о подключении второго к Raspberry pi. Второе барахло с заедающими кнопками покупать не хотелось, и тут как раз кстати вывалили на прилавки Nintendo Classic Mini, ну как вывалили — хрен купишь. Самой цели покупать эмулятор за 4К не было, а вот геймпад я и решил купить. Благо мне удалось его купить, был последний в магазине. Те, кому интересно, что из этого получилось, могут ткнуть мышкой по кнопке ниже.

Вот прямая ссылка на пруф, если не активируется штатная.

image
Читаем далее

VulnHub: Слепая эксплуатация и Брайнфак в DC416 Basement

Reading time11 min
Views8.1K

Продолжаем разбор CTF с конференции DefCon Toronto's. Задания предоставлены командой VulnHub, за что им огромное спасибо. А мы рассмотрим DC416 Basement.
Ниже, вы можете ознакомиться с предыдущим райтапом:
Читать дальше →

Про Z-оrder и R-дерево

Reading time15 min
Views16K
image

Индекс на основе Z-order кривой в сравнении с R-деревом имеет массу преимуществ, он:

  • реализован как обычное B-дерево, а мы знаем что
  • страницы B-дерева имеют лучшую заполняемость, кроме того,
  • Z-ключи сами по себе более компактны
  • B-дерево имеет естественный порядок обхода, в отличие от R-дерева
  • B-дерево быстрее строится
  • B-дерево лучше сбалансировано
  • B-дерево понятнее, не зависит от эвристики расщепления/слияния страниц
  • B-дерево не деградирует при постоянных изменениях
  • ...

Впрочем, у индексов на основе Z-order есть и недостаток — сравнительно низкая производительность :). Под катом мы попробуем разобраться с чем связан этот недостаток и можно ли что-то с этим сделать.
Читать дальше →

Малоизвестные Git-команды

Reading time4 min
Views74K


У Git есть строгие обязательства по обратной совместимости: многие продвинутые возможности скрыты за разнообразными опциями, а не применяются как поведение по умолчанию. К счастью, Git также поддерживает и алиасы, так что вы можете создавать свои собственные команды, которые делают всю характерную для Git магию. Под катом — подборка полезных (или как минимум забавных) алиасов, определённых в моём .gitconfig.
Читать дальше →

Сознание не копируется. Значит, оно не отсюда

Reading time3 min
Views21K
image

Сознание, личность — клонировать или перенести на другой носитель невозможно. Примем это как данность. Почему — по каким именно логическим причинам — неплохо изложено вот в этом недавнем посте.


Правда, есть важная оговорка. Это своё сознание скопировать невозможно — чужое запросто. Если сделать суперточную копию Вашего близкого человека, пока он крепко спит — и разбудить её одновременно с уничтожением спящего оригинала — Вы не заметите разницы. Да и копия, скорее всего, будет считать себя оригиналом. А вот что при этом всё же в действительности случится с оригиналом — с его собственной, «настоящей» точки зрения — Вы не узнаете, пока не окажетесь на его месте. Других способов это выяснить не существует.


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

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

Ханойские башни — теоретическое решение без рекурсии

Reading time5 min
Views61K

Задача Ханойских башен — одна из самых первых задач, которые предлагаются начинающим программистам, в основном, чтобы проиллюстрировать концепцию рекурсивных решений. В этой статье приводится метод, который позволяет теоретическим путем, без рекурсии, указывать оптимальное решение для текущего хода.


image

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

Методы оптимизации нейронных сетей

Reading time17 min
Views228K

В подавляющем большинстве источников информации о нейронных сетях под «а теперь давайте обучим нашу сеть» понимается «скормим целевую функцию оптимизатору» лишь с минимальной настройкой скорости обучения. Иногда говорится, что обновлять веса сети можно не только стохастическим градиентным спуском, но безо всякого объяснения, чем же примечательны другие алгоритмы и что означают загадочные \inline \beta и \inline \gamma в их параметрах. Даже преподаватели на курсах машинного обучения зачастую не заостряют на этом внимание. Я бы хотел исправить недостаток информации в рунете о различных оптимизаторах, которые могут встретиться вам в современных пакетах машинного обучения. Надеюсь, моя статья будет полезна людям, которые хотят углубить своё понимание машинного обучения или даже изобрести что-то своё.


image


Под катом много картинок, в том числе анимированных gif.

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

Современный подход к сборке мусора

Reading time12 min
Views45K


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

Вот первичный анонс о внедрении нового сборщика, датированный августом 2015-го:

В Go создаётся сборщик мусора (GC) не только для 2015 года, но и для 2025-го, и ещё дальше… Сборщик в Go 1.5 возвещает о наступлении будущего, в котором паузы на сборку больше не являются барьером для перехода на безопасный язык. Это будущее, в котором приложения без труда масштабируются вместе с оборудованием, и по мере роста мощности оборудования сборщик мусора больше не является сдерживающим фактором при создании более качественного, масштабируемого ПО. Go — хороший язык для использования как минимум в ближайший десяток лет.

Создатели утверждают, что они не просто решили проблему пауз на сборку мусора, а пошли куда дальше:

Одним из высокоуровневых способов решения проблем с производительностью является добавление GC-настроек (knobs), по одной на каждую проблему. Программист может менять их, подбирая наилучшую комбинацию для своего приложения. Недостатком этого подхода является то, что при внедрении каждый год одной-двух новых настроек через десять лет придётся законодательно регулировать труд людей, которые будут менять эти настройки. Go не пошёл по этому пути. Вместо кучи настроек мы оставили одну и назвали её GOGC.

Более того, освободившись от бремени поддержки десятков настроек, разработчики могут сосредоточиться на улучшении runtime’а приложения.

Не сомневаюсь, что многие пользователи Go были просто счастливы получить новый подход к runtime’у в Go. Но у меня есть претензии к этим заявлениям: они выглядят как недостоверный маркетинговый булшит. А поскольку они раз за разом воспроизводятся в Сети, пришло время подробно с ними разобраться.
Читать дальше →

2017 — это не просто простое число…

Reading time2 min
Views86K



Прощай, год 2016-й. Здравствуй, год 2017-й.


Все мы знаем, что число 2017 простое (это же Гиктаймс, не так ли). Но оно гораздо больше, чем просто простое число.

Немного нумерологии

Почему останки звёзд бывают зелёными

Reading time3 min
Views14K
Одно прикосновение природы содеет родственным весь мир
— Уильям Шекспир

В январе 2006 года космический телескоп им. Хаббла, оснащённый величайшей из всех когда-либо созданных камер-телескопов, получил это подробное изображение шарового скопления NGC 1846.


Щёлкательно

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

Будни российского киборга

Reading time4 min
Views69K
Привет, меня зовут Константин и я обычный российский киборг.

image

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

В этом блоге не будет сюсюканий и историй преодоления инвалидности — оставим это Андрею Малахову. Приходит время терминаторов и киборгов. И они уже среди вас, просто об этом почти никто не знает. Кому интересно, добро пожаловать под кат.
Читать дальше →

Публикуем свою разработку в журнале Радио

Reading time6 min
Views18K
Однажды, холодным декабрьским вечером, меня настигла печаль и я задумался о вечном.
Вечным — оказался всем известный и когда то очень популярный журнал «Радио».
У моего отца даже была подборка всех экземпляров данного журнала с 1957 по 1999 гг. включительно.



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

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

Под катом tutorial на примере публикации одной из моих статей в журнал «Радио».
Читать дальше →

Кошмар перед новым годом: что нужно знать про рак

Reading time6 min
Views33K
По данным Всемирной организации здравоохранения, за 2012 год в Европе, СНГ, Прибалтике, Турции и Израиле среди всех причин смерти рак составлял 22 %. По количеству летальных исходов этот мрачный рекорд могут побить разве что сердечно-сосудистые заболевания. Эта страшная статистика широко известна.

Тема онкологических заболеваний – одна из самых горячих в науке. Эту область изучают клеточные биологи, генетики, молекулярные биологи, биоинформатики и даже экологи. Абитуриенты, студенты биологических и медицинских факультетов, а также некоторые великие ученые по-прежнему мечтают найти «лекарство от рака». The game is on.

Мир замер в ожидании спасительного решения. Ученые уже включили бензопилу CRISPR/Cas9, и анализируют ДНК опухолей. То тут, то там возникают новые препараты. Тем обиднее за Оливера Сакса, известного нейробиолога и популяризатора науки, погибшего от неоперабельной или метастазирующей меланомы всего за три месяца до регистрации эффективного лекарства от этого агрессивного вида рака.

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

Релиз Python 3.6 — да, теперь он с нами

Reading time3 min
Views54K


Прошло 15 месяцев, и наконец-то мир увидел релиз языка программирования Python 3.6. Нового довольно много, ведь не зря разработчики ждали целых 15 месяцев. В релизе добавлены новые модули, обновлены стандартные библиотеки, улучшены наборы различных настроек. В целом, Python 3.6 получил много улучшений, что можно считать отличным подарком к Новому Году. Давайте посмотрим подробнее, что принес нам Дед Мороз новый релиз.
Читать дальше →

Деплой веб-приложений с помощью Ansistrano

Reading time10 min
Views14K

ansistrano.deploy и ansistrano.rollback — роли Ansible, предназначенные для управления процессом развертывания приложений, созданных на скриптовых языках программирования (например, PHP, Python и Ruby). По сути это реализация Capistrano в Ansible.


Использование Ansistrano дает следующие преимущества:


  • откат за секунды (с ролью ansistrano.rollback);
  • настройка процедуры развертывания с использованием методов-обработчиков событий «до» и «после» критически важных шагов;
  • оптимизация использования дискового пространства за счет хранения ограниченного количества релизов;
  • выбор между SCP, RSYNC, GIT, SVN, HTTP Download или S3 GET-стратегиями развертывания (в дополнение возможно использование unarchive).
Читать дальше →

Почему мы злые?

Reading time1 min
Views61K
Вечером в воскресенье на просторах одной российской социальной сети я увидел ссылку на статью — What I learned from writing six functions that all did the same thing (Что я узнал от написания шести функций которые делали одно и то же).
Читать дальше →

TeamCity как Debian-репозиторий

Reading time8 min
Views7.2K

… или использование TeamCity для сборки *.deb-пакетов и не только.


Написать статью меня побудило знакомство с модулем tcDebRepository. Я наивно полагал, что "вот сейчас я его подключу, и всё волшебным образом заработает". Как водится, не заработало, и в конце концов был накоплен некий опыт, который захотелось систематизировать.


Статья ни в коей мере не является введением в основы TeamCity и предполагает, что читатель уже знаком и собственно с TeamCity, и с инфраструктурой Debian GNU/Linux. Если вы уже представляете, что такое continuous integration, но ещё ни разу не держали в руках TeamCity — вам, наверное, сюда. О сборке пакетов в Debian можно почитать в Debian New Maintainers' Guide.


Для игр (на случай, если кто-то захочет воспроизвести результаты) использовался сервер TeamCity 10 и 3 агента под управлением Debian 8.0 (Jessie). 3 агента — это лимит в случае TeamCity Professional. Всё ниженаписанное, думаю, без проблем переносится на любой другой дистрибутив на основе Debian GNU/Linux, напр., Astra Linux.

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

Генная терапия продлила жизнь мышам на 30%

Reading time4 min
Views15K

Сравнительное состояние мышей. У перепрограммированной мыши +Dox состояние гораздо лучше, чем у мыши −Dox того же возраста. В эксперименте участвовали мыши с редким генетическим заболеванием — синдромом Хатчинсона-Гилфорда, который вызывает преждевременное старение. Таких мышей взяли для удобства, чтобы быстрее наступило старение и проявились результаты клеточного перепрограммирования

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

Information

Rating
Does not participate
Location
Красногвардейское, Адыгея, Россия
Date of birth
Registered
Activity