Pull to refresh
0
0
Иван Волков @oOLokiOo

Пользователь

Send message

Четыре способа написать Hello world, или инструменты для создания GUI на Python

Level of difficultyEasy
Reading time5 min
Views32K

После написания программы ее можно модифицировать и добавить графический интерфейс — с Python это проще, чем кажется. Для программирования красивого и функционального GUI иногда достаточно простого знания html и css.

Под катом — подборка некоторых инструментов для создания интерфейсов на Python. Сохраняйте статью в закладки и предлагайте свои варианты в комментариях!
Читать дальше →
Total votes 56: ↑53 and ↓3+50
Comments61

Введение в Git Merge и Git Rebase: зачем и когда их использовать

Reading time4 min
Views325K
Часто у разработчиков возникает выбор между Merge (слияние) и Rebase (перемещение). В Гугле вы увидите разное мнение, многие советуют не использовать Rebase, так как это может вызвать серьезные проблемы. В статье я объясню, что такое слияние и перемещение, почему вы должны (или не должны) использовать их и как это сделать.

image

Git Merge и Git Rebase преследуют одну и ту же цель. Они предназначены для интеграции изменений из одной ветки в другую. Хотя конечная цель одинаковая, принципы работы разные.

Некоторые считают, что вы всегда должны использовать Rebase, другие предпочитают Merge. В этом есть свои плюсы и минусы.

Git Merge


Слияние — обычная практика для разработчиков, использующих системы контроля версий. Независимо от того, созданы ли ветки для тестирования, исправления ошибок или по другим причинам, слияние фиксирует изменения в другом месте. Слияние принимает содержимое ветки источника и объединяет их с целевой веткой. В этом процессе изменяется только целевая ветка. История исходных веток остается неизменной.
Читать дальше →
Total votes 44: ↑32 and ↓12+20
Comments18

Telegram бот с offline распознаванием голосовых и генерацией аудио из текста

Reading time9 min
Views25K

Всем привет! После прочтения постов про голосового ассистента и  сервис Silero, мне стало интересно поиграться с offline распознаванием аудио в текст, а также с обратным преобразованием текст в аудио. И как все начинающие разработчики я сделал своего Telegram бота. Просто Telegram – это удобный и мобильный интерфейс для взаимодействия с чем угодно.

В своем пет-проекте я использовал aiogram, vosk, silero и ffmpeg.

Подробности под катом!
Total votes 19: ↑16 and ↓3+13
Comments14

Новая техника атаки WPA2, не требующая наличия клиента на AP

Reading time3 min
Views81K
image

 
Участниками проекта hashcat обнаружен новый вектор атаки на беспроводной стандарт WPA2, не требующий классического перехвата "рукопожатия" между клиентом и точкой доступа. Данная уязвимость выявлена в рамках исследования потенциальных проблем безопасности нового протокола WPA3.

Читать дальше →
Total votes 44: ↑43 and ↓1+42
Comments50

Как получить пароль WPA2 WiFi с помощью Aircrack-ng?

Reading time2 min
Views58K

Друзья, всех приветствую!

В этой статье я покажу вам как использовать airmon-ng (скрипты из пакета aircrack-ng) для обнаружения беспроводных сетей вокруг нас. Затем мы деаутентифицируем клиентов определенной беспроводной сети, чтобы перехватить handshake, а затем расшифруем его, чтобы найти пароль WiFi.

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

Прежде чем приступить к работе, давайте посмотрим, что нам понадобится.

Читать далее
Total votes 45: ↑27 and ↓18+9
Comments31

Мой компьютер Микроша: продолжаем неделю ностальгии

Reading time10 min
Views16K

Для многих людей, родом из СССР, из тех, кто интересовался компьютерами, появление первого компьютера запомнилось на всю жизнь. Не стал исключением и я. Здесь я расскажу свою историю.


У меня в детстве был компьютер Микроша. Это такой небольшой советский бытовой компьютер, гордо именуемый ПЭВМ: персональная электронно-вычислительная машина. В нашем городе компьютеры очень редко появлялись в продаже. Единственным местом, где иногда на прилавке можно было увидеть хоть какой-нибудь компьютер, был местный магазин-мастерская. Эта точка продаж была всегда пустынна, и выглядела примерно так:


Магазин - мастерская


Суровые тетеньки в халатах, которые в момент покупки могли профессионально задать тебе вопрос, ответа на который ты не знал, и развести в сторону руками: с какими покупателями нам приходится работать! Что ты вообще сюда пришел? Основательные, но устаревшие в момент проектирования формы электронных приборов, характерные для позднего советского времени. Редко расставленные небольшие товары под стеклянным прилавком с трафаретными ценниками. Высокие потолки и гулкость полупустого помещения. Все это присутствовало в полной мере, согласно неписанным канонам.

Читать дальше →
Total votes 67: ↑66 and ↓1+65
Comments138

Воссоздание в новой игре того, за что мы любили старые

Reading time12 min
Views27K

В процессе работы над своей игрой, которая повторяет некоторые элементы старых игр, я задумался, а так ли необходимо намеренно придерживаться ретро-стиля. И за что мы, собственно, любим старые игры? Не воспринимаем ли мы понятие ретро-игр слишком буквально и стереотипно?

Вообще, что такое ретро-игра? Скорее всего, первое, что придет на ум большинству — это модный нынче пиксель-арт. Если это 2D, то нарисуйте множество пиксельных спрайтов, сделайте слегка угловатые движения персонажей — и готово. Если это 3D, то… Ну, наверно, нужно понизить разрешение текстур, реализовать движение игрока в стиле «бульдозер», как это было в первом Doom, стрелочками вперед-назад-влево-вправо, добавить слегка мультяшных персонажей и… Я уж не знаю, как еще сделать современный клон старого Doom или Quake. Но в этом ли, в действительности, заключается дух старых игр? Уверяю вас, нет.
Читать дальше →
Total votes 47: ↑45 and ↓2+43
Comments208

«Двигай телом»: обзор новой игровой консоли Nex Playground

Reading time6 min
Views3.8K

На выставке CES 2024 Nex Playground назвали интересной инновацией этого года. Из необычного — консоль использует технологию отслеживания движений, чтобы пользователи могли управлять процессом игры. Мы решили разобраться, откуда пошел тренд на «управлением всем телом» и какое будущее ждет игровую индустрию с развитием искусственного интеллекта. Подробнее — под катом.
Читать дальше →
Total votes 35: ↑34 and ↓1+33
Comments10

Стеганография

Reading time4 min
Views83K
На хабре уже писали несколько раз о стеганографии, в частности недавний пост о LSB стеганографии (который, к сожалению, перенесен автором в черновики) пробудил во мне желание поделиться своими знаниями и мыслями по этой теме.

Давайте предположим, что вы шпион и (как у любого уважающего себя шпиона) у вас на жестком диске имеется много секретной информации. Вам нужно её спрятать так, чтоб никто её не нашел. Причем в случае если вас поймают, то ваш компьютер отдадут на обследование и тот кто будет искать эту информацию будет на 99% уверен, что такая информация на жестком диске есть.

Так какие же способы спрятать информацию есть в нашем распоряжении…
Читать дальше →
Total votes 60: ↑40 and ↓20+20
Comments38

HTML5 Drag and Drop загрузка файлов

Reading time4 min
Views137K
image
Благодаря нововведениям HTML5 создавать Drag and Drop интерфейсы стало гораздо проще. К сожалению, эти нововведения еще не обладают обширной поддержкой браузеров, но надеюсь в скором времени это изменится (на данный момент работает в Firefox 4+, Chrome и Opera 11.10).

Читать дальше →
Total votes 81: ↑79 and ↓2+77
Comments61

4 революционных возможности JavaScript из будущего

Reading time8 min
Views21K
JavaScript, с момента выхода стандарта ECMAScript 6 (ES6), быстро и динамично развивается. Благодаря тому, что теперь новые версии стандарта ECMA-262 выходят ежегодно, и благодаря титаническому труду всех производителей браузеров, JS стал одним из самых популярных языков программирования в мире.

Недавно я писал о новых возможностях, которые появились в стандарте ES2020. Хотя некоторые из этих возможностей и весьма интересны, среди них нет таких, которые достойны называться «революционными». Это вполне можно понять, учитывая то, что в наши дни спецификация JS обновляется достаточно часто. Получается, что у тех, кто работает над стандартом, просто меньше возможностей для постоянного внедрения в язык чего-то особенного, вроде ES6-модулей или стрелочных функций.



Но это не значит, что нечто исключительно новое в итоге в языке не появится. Собственно говоря, об этом я и хочу сегодня рассказать. Мне хотелось бы поговорить о 4 возможностях, которые, в перспективе, можно будет назвать революционными. Они находятся сейчас на разных стадиях процесса согласования предложений. Это, с одной стороны, означает, что мы можем никогда их в JavaScript и не увидеть, а с другой стороны — наличие подобных предложений даёт нам надежду на то, что мы их, всё же, когда-нибудь встретим в языке.
Читать дальше →
Total votes 47: ↑42 and ↓5+37
Comments33

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

Reading time6 min
Views38K
Недавно несколько человек просили меня рассказать об использовании трейтов в новом проекте, который я пишу. Примерно в тоже время Рафаэль Домс показал мне его новую речь о сложных когнитивных процессах, которые мы не замечаем. Так как наш мозг — это большой мешок, перемешивающий все, в результате получился пост, который пытается охватить и то как я использую трейты, и то как я решаю где они нужны.

Воздействие vs Абстракция


Первое, что вы должны сделать — пойти почитать пост “Abstraction or Leverage” от Майкла Найгарда. Это отличная статья.

Если же у вас мало времени, основная суть поста состоит в том, что части кода (функции, классы, методы и т.д.) могут предназначаться либо для абстракции, либо для воздействия. Разница в:

  • Абстракция содержит высокоуровневый концептуальный код, позволяющий лаконичнее работать с ним другому коду.
  • Воздействие содержит код, изменения в котором влияют лишь на определенную часть.
Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments31

Введение в PHP 7: Что добавлено, что убрано

Reading time12 min
Views300K
Одним из самых значительных событий, произошедших в мире PHP в 2015 году, стал выпуск PHP 7. Целых 10 лет отделяют его от выпуска первого релиза PHP с номером 5. С увеличением первой цифры в номере версии, в PHP 7 появилась масса новшеств, увеличилась и скорость работы.
Однако в седьмой версии была убрана устаревшая функциональность, что привело к некоторым проблемам с обратной совместимостью, затруднив перевод старых приложений на новую версию. Эта статья может послужить вам кратким руководством, если вы планируете написание новых или перевод своих существующих приложений на PHP 7.
Читать дальше →
Total votes 42: ↑39 and ↓3+36
Comments117

Малоизвестные CSS-свойства

Reading time5 min
Views27K
Существует много CSS-свойств, о которых некоторые дизайнеры просто не знают. Или — знают, но забывают использовать эти свойства там, где они способны принести большую пользу. Некоторые из этих свойств могут помочь отказаться от использования JavaScript ради достижения некоего результата, некоторые позволяют экономить время за счёт написания меньших объёмов CSS-кода. Я, занимаясь фронтенд-разработкой, постоянно натыкаюсь на подобные свойства. Однажды я подумал о том, чтобы взять и составить список CSS-свойств, интересных, но используемых редко. Так и родилась эта статья.

Здесь я расскажу о некоторых CSS-свойствах, которые, хочется надеяться, покажутся вам достойными внимания. При разговоре о некоторых из них, не отличающихся идеальной браузерной поддержкой, я расскажу о том, как применять их, используя технологию прогрессивных улучшений. Это позволит вам спокойно пользоваться этими свойствами и не беспокоиться об их поддержке браузерами.


Читать дальше →
Total votes 54: ↑47 and ↓7+40
Comments26

Принципы SOLID в картинках

Reading time4 min
Views420K


Если вы знакомы с объектно-ориентированным программированием, то наверняка слышали и о принципах SOLID. Эти пять правил разработки ПО задают траекторию, по которой нужно следовать, когда пишешь программы, чтобы их проще было масштабировать и поддерживать. Они получили известность благодаря программисту Роберту Мартину.

В Сети множество отличных статей, где рассказывается о принципах SOLID, но иллюстрированных среди них мне практически не попадалось. Из-за этого таким людям со склонностью к визуальному восприятию информации – таким, как я – бывает сложно схватывать суть и не отвлекаться.

Основная цель этой статьи – лучше усвоить принципы SOLID через отрисовку иллюстраций, а также определить назначение каждого принципа. Дело в том, что некоторые из принципов кажутся похожими, но функции выполняют разные. Может получиться так, что одному принципу следуешь, а другой при этом нарушаешь, хотя с виду особой разницы между ними нет.

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

Ну, приступим.
Читать дальше →
Total votes 64: ↑59 and ↓5+54
Comments26

Веб-приложение на Node и Vue, часть 1: структура проекта, API, аутентификация

Reading time13 min
Views92K
Перед вами — первый материал из серии, посвящённой разработке полноценного веб-приложения, которое называется Budget Manager. Основные программные средства, которые будут использованы в ходе работы над ним — это Node.js для сервера, Vue.js для фронтенда, и MongoDB в роли базы данных.



Эти материалы рассчитаны на читателей, которые знакомы с JavaScript, имеют общее представление о Node.js, npm и MongoDB, и хотят изучить связку Node-Vue-MongoDB и сопутствующие технологии. Приложение будем писать с нуля, поэтому запаситесь любимым редактором кода. Для того, чтобы не усложнять проект, мы не будем пользоваться Vuex и постараемся сосредоточиться на самом главном, не отвлекаясь на второстепенные вещи.

Автор этого материала, разработчик из Бразилии, говорит, что ему далеко до JavaScript-гуру, но он, находясь в поиске новых знаний, готов поделиться с другими тем, что ему удалось найти.
Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments3

Как написать одностраничное приложение (SPA) с использованием Vue.js

Reading time7 min
Views127K
Одностраничные приложения

Одностраничные приложения (SPA) имеют мнжество преимуществ, таких как скорость, по-настоящему хороший UX, и полный контроль HTML-разметки. Становится всё больше и больше сайтов SPA; всё больше инструментов, которые упрощают процесс разработки SPA. Вы, вероятно уже читали о молодом и перспективном фреймворке Vue.js. Предлагаю вам глубже погрузиться в Vue и на конкретном примере разобраться с простым SPA.

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

Ознакомившись с примером этого приложения, вы научитесь извлекать данные в Vue, создавать роуты и разберётесь с интересной особенностью Vue — однофайловыми компонентами.
Читать дальше →
Total votes 17: ↑15 and ↓2+13
Comments28

Как сделано интро на 64k

Reading time13 min
Views37K

Введение в интро


Демосцена — это о создании классных штук, которые работают в реальном времени (как бы «крутятся в вашем компьютере»). Их называют демки. Некоторые из них по-настоящему маленькие, скажем, 64k или меньше — такие называются интро. Название происходит от рекламирования или представления взломанных программ (crack intro). Итак, интро — это просто маленькая демка.

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

Бинарник под Windows: guberniya_final.zip (61.8 kB) (немного ломается на картах AMD)
Total votes 91: ↑90 and ↓1+89
Comments24

React + Mobx: в чём смысл?

Reading time16 min
Views139K
Сегодня я хочу рассказать вам о том, как на нашем проекте состоялся переход на Mobx, какие преимущества это даёт. Также будет показан типовой проект и даны пояснения по основным вопросам. Но сначала вводные.

image
Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments143

5 причин, почему вы должны забыть о Redux в приложениях на React

Reading time3 min
Views76K
Я работаю с Реактом на протяжении почти 3 лет, использовал как Redux так и MobX и у меня к текущему моменту возник вопрос. Почему абсолютное большинство front-end разработчиков продолжают свято верить в то, что Redux + Redux Saga + Reselect + 100500 других библиотек «облегчающих» жизнь — это лучшее решение на сегодняшний момент? Я приведу 4 аргумента в пользу того, чтобы в следующем проекте вы использовали MobX вместо Redux.
Читать дальше →
Total votes 76: ↑64 and ↓12+52
Comments478
1
23 ...

Information

Rating
Does not participate
Location
Гродно, Гродненская обл., Беларусь
Date of birth
Registered
Activity