Обновить
55
0
Илья@WST

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

Отправить сообщение

Невидимая фотография

Время на прочтение4 мин
Охват и читатели75K


О чём речь?


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

Поскольку лучше один раз увидеть, чем сто раз услышать, то вот вам небольшая демка. С 15-ю предметами. Здесь они в видимом спектре, а дальше мы на них посмотрим в других диапазонах:

[Видимый свет, 400-750 нм. F/6.3, 1/2500 сек, ISO 200, стеклянная 35-мм линза Nikkor. Снято на модифицированный Nikon D90 с удалёнными внутренними ИК/УФ фильтрами через светофильтр видимого света Kolari Vision Hot Mirror UV/IR Cut filter.]
Читать дальше →

Astra Linux «Орел» Common Edition: есть ли жизнь после Windows

Время на прочтение7 мин
Охват и читатели294K
Мы получили развернутый обзор от одного из пользователей нашей ОС, которым хотели бы с вами поделиться.

Astra Linux — дериватив Debian, который был создан в рамках российской инициативы перехода на СПО. Существует несколько версий Astra Linux, одна из которых предназначена для общего, повседневного использования — Astra Linux «Орел» Common Edition. Российская операционка для всех — это по определению интересно, и я хочу рассказать об «Орле» с позиции человека, который ежедневно пользуется тремя операционными системами (Windows 10, Mac OS High Sierra и Fedora) и при этом последние 13 лет был верен Ubuntu. Опираясь на этот опыт, я рассмотрю систему с точки зрения установки, интерфейсов, ПО, базовых возможностей для разработчиков и удобства с разных ракурсов. Как покажет себя Astra Linux в сравнении с более распространенными системами? И сможет ли она заменить Windows дома?


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

Unix-пароль Кена Томпсона

Время на прочтение2 мин
Охват и читатели49K
Где-то в 2014 году в дампах исходного дерева BSD 3 я нашла файл /etc/passwd с паролями всех ветеранов, таких как Деннис Ричи, Кен Томпсон, Брайан В. Керниган, Стив Борн и Билл Джой.

Для этих хэшей использовался алгоритм crypt(3) на основе DES — известный своей слабостью (и с длиной пароля максимум 8 символов). Поэтому я подумала, что будет легко взломать эти пароли ради удовольствия.

Берём стандартные брутеры john и hashcat.
Читать дальше →

Уравнение Навье-Стокса и симуляция жидкостей на CUDA

Время на прочтение24 мин
Охват и читатели70K
Привет, Хабр. В этой статье мы разберемся с уравнением Навье-Стокса для несжимаемой жидкости, численно его решим и сделаем красивую симуляцию, работающую за счет параллельного вычисления на CUDA. Основная цель — показать, как можно применить математику, лежащую в основе уравнения, на практике при решении задачи моделирования жидкостей и газов.


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

Удаленное управление компьютером через браузер

Время на прочтение1 мин
Охват и читатели63K
Около полугода назад задумал сделать программу для управления компьютером через браузер. Начал с простого односокетного HTTP сервера, который передавал картинки в браузер и получал координаты курсора для управления.

На определенной стадии понял что для этих целей хорошо подходит технология WebRTC. Такое решение есть у Chrome браузера, оно устанавливается через расширение. Но хотелось сделать маловесную программу, которая будет работать без установки.

Сначала попробовал использовать библиотеку которую предоставляет Google, но после компиляции она занимает 500MB. Пришлось реализовать весь WebRTC стек почти с нуля, удалось все уместить в exe файл размером 2.5MB. Друг помог с интерфейсом на JS, вот что в итоге получилось.
Читать дальше →

Рендеринг текста вас ненавидит

Время на прочтение14 мин
Охват и читатели31K

Рендеринг текста: насколько сложным он может быть? Оказывается, невероятно сложным! Насколько мне известно, буквально ни одна система не выводит текст «идеально». Где-то лучше, где-то хуже.

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

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

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

Загрузка музыки ВКонтакте

Время на прочтение6 мин
Охват и читатели28K

Доброго времени суток всем.


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


Для работы нужно скачать модули vk_api и request!


Для начала подключим необходимые модули и объявим некоторые переменные:


import os
import pickle
import vk_api
import requests

from vk_api import audio

from time import time

vk_file = "vk_config.v2.json"
REQUEST_STATUS_CODE = 200 
path = 'vk_music/'
Читать дальше →

Не стесняемся, минусуем

Время на прочтение1 мин
Охват и читатели71K
Среди 437 моих постов на Хабре нет ни одного с отрицательным рейтингом (ну или я невнимательно смотрел), поэтому можете поставить точку этому безобразию и слить этот пост, прям хоть рекорд можем поставить. Если бы мог, сам бы минусанул.

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

В Германию разработчиком без в/о

Время на прочтение4 мин
Охват и читатели52K
image

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

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

Как делать сайты в 2019 году

Время на прочтение3 мин
Охват и читатели130K

Веб стремительно меняется, не отставай и ты!



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


Давайте-ка шаг за шагом разберём важнейшие принципы веб-дизайна в 2019 году.


Обязательно дайте пользователю знать, что у сайта есть мобильное приложение


Это важнейший принцип, и на то есть свои причины. Фокус-группы, на которые мы уже потратили кучу денег, показали что первое же, чего захочет пользователь попав на ваш сайт — установить мобильное приложение.


Ну а кратчайший путь к этому — показать здоровенное модальное окно:



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


Совет: Если у вас нет мобильного приложения, не беда! Просто запихните весь сайт в  webview с отключенной безопасностью и пишите, что это мобильное приложение!

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

Анализ сишного Hello World

Время на прочтение7 мин
Охват и читатели72K
Hello World — одна из первых программ, которые мы пишем на любом языке программирования.

Для C hello world выглядит просто и коротко:

#include <stdio.h>

void main() {
  printf("Hello World!\n");
}

Поскольку программа такая короткая, должно быть элементарно объяснить, что происходит «под капотом».
Читать дальше →

Сети кабельного телевидения для самых маленьких. Часть 9: Головная станция

Время на прочтение2 мин
Охват и читатели11K


Головная станция собирает сигналы с нескольких источников, обрабатывает их и вещает в кабельную сеть.
Читать дальше →

Как опубликовать консольную утилиту на PyPI за 1 минуту

Время на прочтение2 мин
Охват и читатели9K


Разработав консольную утилиту, вы решаетесь опубликовать её на PyPI. Ну правда, что может быть лучше, чем сделать её доступной через pip install? Погуглив, что для этого надо, вы, возможно, наткнётесь на единственный найденный мной пост по теме, который мало того что от 2014 года, так ещё и требует от вас создать кучу папок и файлов для совершенно ненужных (вам) вещей.


Как же решить эту задачу без лишней головной боли в 2019 году? Я уже задавался этим вопросом и поэтому, прочитав тонну документации, создал для вас этот туториал. Вот пошаговая инструкция.

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

Arduino и Raspberry вне закона

Время на прочтение2 мин
Охват и читатели92K
Эта публикация призвана обратить внимание сообщества радиолюбителей и небольших производителей РЭА на грядущее изменение законодательства. Возможно, в ближайшем будущем за изготовление и продажу умной кормушки для котика на Arduino без декларации о соответствии вы будете преследоваться по закону, а затем наказаны по всей его строгости.
Читать дальше →

10 английских идиом, о значении которых вы никогда не догадаетесь

Время на прочтение4 мин
Охват и читатели53K
Кот в пижаме, деревянный никель и дядя Боб — о чем вообще говорят эти англичане? Эксперты онлайн-школы английского языка Skyeng собрали для вас самые странные идиомы и даже докопались до их корней.

Go out on a limb — Рискнуть

Как ввернуть в разговор: Это подходящий оборот, чтобы подчеркнуть свою (или чью-то еще) самоотверженность. Если вы хотите сказать, что оказывая услугу, вы рискуете и вообще изрядно напрягаетесь, смело говорите I go out on a limb. Идиома подходит и для случаев, когда вы отважно высказываете непопулярное мнение или смелое предположение, которое никак не можете доказать.
Пример: I’m going to go out on a limb here and say that Sarah is pregnant. — Рискну предположить, что Сара беременна.
Откуда взялось: Помните, как в детстве взбирались на дерево и ползли по ветке, пока она не начинала опасно сгибаться? Go out on a limb — это как раз и означает “карабкаться по ветке”, то есть оказаться в крайне шатком и ненадежном положении, причем по доброй воле.


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

Легкодоступная левитация в ультразвуке

Время на прочтение3 мин
Охват и читатели29K


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

Методы в примитивных типах PHP

Время на прочтение10 мин
Охват и читатели21K
Некоторое время назад назад Энтони Феррара выразил мысли по поводу будущего PHP. Соглашусь с большинством его взглядов, но не со всеми. В статье я остановлюсь на одном конкретном аспекте: преобразования примитивных типов данных, таких как строки или массивы, в “псевдо-объекты”, позволяя выполнять в них вызовы методов.

Начнем с нескольких примеров:

$str = "test foo bar";
$str->length();      // == strlen($str)        == 12
$str->indexOf("foo") // == strpos($str, "foo") == 5
$str->split(" ")     // == explode(" ", $str)  == ["test", "foo", "bar"]
$str->slice(4, 3)    // == substr($str, 4, 3)  == "foo"

$array = ["test", "foo", "bar"];
$array->length()       // == count($array)             == 3
$array->join(" ")      // == implode(" ", $array)      == "test foo bar"
$array->slice(1, 2)    // == array_slice($array, 1, 2) == ["foo", "bar"]
$array->flip()         // == array_flip($array)        == ["test" => 0, "foo" => 1, "bar" => 2]

Здесь $str — это обычная строка и $array является простым массивом — они не объекты. Мы просто даем им немного объектного поведения, позволяя вызывать в них методы.

Обратите внимание, такое поведение совсем не за горами. Это уже не сон, кое-что уже существует прямо сейчас. PHP расширение scalar objects позволяет определить методы для примитивных типов.

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

Как это работать со Студией Лебедева: опыт Туту.ру

Время на прочтение8 мин
Охват и читатели82K
Меня зовут Никита Иванов, я дизайн-директор Туту.ру. Наш бизнес работает с 2003 года, и в прошлый раз мы переосмыслили его айдентику почти 12 лет назад — в конце 2006.

Сейчас Туту.ру из набора популярных сервисов растёт в единый продукт для путешествий. Дизайн — один из инструментов, который нам в этом помогает.

В этой статье я расскажу, как мы искали новую айдентику и выбирали партнёра, почему остановились на Студии Артемия Лебедева и как устроена работа с их командой, а также как мы сейчас меняем дизайн сервисов с 15-летней историей.


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

Троянский пингвин: Делаем вирус для Linux

Время на прочтение6 мин
Охват и читатели25K
Нет, я не собираюсь рассказывать, как написать своего шифровальщика-вымогателя, майнера или эксплуатировать супер-новую уязвимость, как вы могли подумать. И тем более я не горю желанием поднимать холивар «Linux безопаснее Windows?(да)». Моей целью было написание простого вируса для linux, некого, так сказать, «Just for Fun», единственной функцией которого является распространение своей копии. О том, что у меня получилось, я расскажу в этой статье. В конце я приведу ссылку на GitHub с исходниками.

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

Программирование с PyUSB 1.0

Время на прочтение15 мин
Охват и читатели63K
От переводчика:
Это перевод руководства Programming with PyUSB 1.0
Данное руководство написано силами разработчиков PyUSB, однако быстро пробежавшись по коммитам я полагаю, что основной автор руководства — walac.


Позвольте мне представиться


PyUSB 1.0 — это библиотека Python обеспечивающая легкий доступ к USB. PyUSB предоставляет различные функции:

  • На 100% написана на Python:
    В отличии от версий 0.x, которые были написаны на C, версия 1.0 написанна на Python. Это позволяет программистам на Python без опыта работы на C лучше понять как работает PyUSB.
  • Нейтральность платформы:
    Версия 1.0 включает в себя фронтенд-бэкенд схему. Она изолирует API от специфичных с точки зрения системы деталей реализации. Соединяет эти два слоя интерфейс IBackend. PyUSB идет вместе со встроенными бэкендами для libusb 0.1, libusb 1.0 и OpenUSB. Вы можете сами написать свой бэкенд, если хотите.
  • Портативность:
    PyUSB должен запускаться на любой платформе с Python >= 2.4, ctypes и, по крайней мере, одним из поддерживаемых встроенных бэкендов.
  • Простота:
    Взаимодействие с устройством USB никогда не было таким простым! USB — сложный протокол, а у PyUSB есть хорошие предустановки для наиболее распространенных конфигураций.
  • Поддержка изохронных передач:
    PyUSB поддерживает изохронные передачи, если лежащий в основе бэкенд поддерживает их.

Несмотря на то, что PyUSB делает программирование USB менее болезненным, в этом туториале предполагается, что у Вас есть минимальные знания USB протокола. Если Вы ничего не знаете о USB, я рекомендую Вам прекрасную книгу Яна Аксельсона «Совершенный USB» (Jan Axelson «USB Complete»).
Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Красногвардейское, Адыгея, Россия
Дата рождения
Зарегистрирован
Активность