Как стать автором
Обновить
4
0
Игорь @jobless

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

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

Возможности SQLite, которые вы могли пропустить

Время на прочтение8 мин
Количество просмотров42K
Если вы используете SQLite, но не следите за его развитием, то возможно некоторые вещи, позволяющие сделать код проще, а запросы быстрее, прошли незамеченными. Под катом я постарался перечислить наиболее важные из них.
Читать дальше →
Всего голосов 76: ↑76 и ↓0+76
Комментарии35

Дизассемблируем циклы, написанные на Си

Время на прочтение4 мин
Количество просмотров13K

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

Сегодня мы будем смотреть дизассемблированный код инструкций if, for, while, swich, которые написаны на языке Си. Воспользуемся radare2.

Дизассемблировать код
Всего голосов 10: ↑9 и ↓1+8
Комментарии21

System/360: проект, едва не погубивший IBM

Время на прочтение12 мин
Количество просмотров17K

Если когда-то будет составлен шорт-лист самых выдающихся изобретений XIX-XX веков, в него, без сомнения, войдут первая электролампочка, Ford Model T и IBM System/360. Эта серия мэйнфреймов навсегда изменила компьютерную индустрию и произвела революцию в работе заводов, компаний и государственных учреждений. 

Тем интереснее узнать, что перед выходом мейнфрейма на рынок (7 апреля 1964 года) S/360 казался создателям едва ли не самой драматичной ошибкой за всю историю предпринимательства. Чтобы создать программную и аппаратную начинку компьютера, сотрудникам IBM пришлось выложиться по полной. Колоссальные финансовые издержки, переработки и пивоты грозили разорить компанию. Позднее Кейт Павитт, эксперт по научной политике, сравнит эту ситуацию с «межплеменной войной»: молодая, быстрорастущая компания была вынуждена работать с новыми, практически не изученными технологиями, вызывавшими недопонимание и раздор внутри отделов.

Читать далее
Всего голосов 58: ↑58 и ↓0+58
Комментарии16

Собираем проект на python3&PyQT5 под Windows, используя PyInstaller

Время на прочтение4 мин
Количество просмотров155K

Причиной написания статьи, явилось огромное количество постоянно возникающих у новичков вопросов такого содержания: "Как собрать проект c pyqt5", "Почему не работает", "Какой инструмент выбрать" и т.д. Сегодня научимся собирать проекты без мучений и танцев с бубном.


Читать дальше →
Всего голосов 21: ↑21 и ↓0+21
Комментарии18

Архитектура облачного волейбольного сервиса

Время на прочтение4 мин
Количество просмотров2K
Не так давно я писал про волейбольный сервис, теперь пришло время описать его с технической точки зрения.

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

Краткое описание функциональности:

  • пользователь загружает видео с записью волейбольной игры
  • один хитрый алгоритм распознает мяч на кадрах
  • другой хитрый алгоритм выделяет розыгрыши
  • розыгрыши компонуются в отдельные видеофайлы
  • файлы с розыгрышами собираются в дайджест всей игры
  • все видео заливается в облако
  • пользователи смотрят/качают/шарят клипы с самыми классными розыгрышами
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии2

Буддизм с точки зрения программиста

Время на прочтение20 мин
Количество просмотров99K

Здравствуйте, меня зовут Сергей, я работаю JavaScript-программистом, и я - буддист. Но совсем не такой, каким вы меня только что представили. Наверняка, при прочтении слова "буддист", в вашей голове всплывает либо образ улыбчивого азиата в оранжевом одеянии, либо образ безработного хиппи-вегана, путешествующего по Индии, занимающегося йогой и ищущего "просветления" в сомнительных религиозных практиках. Так вот, я ни тот, и ни другой. Так кто же я? Чтобы ответить на этот вопрос, нужно для начала поближе познакомиться с историей буддизма.

Около трех с половиной тысяч лет назад Древняя Индия была завоевана ариями - одним из индоевропейских племен, пришедшем в Индию с предгорий Кавказа через территорию современного Ирана. Немного отклонившись от основной темы поста, скажу, что с этим завоеванием связано много интересных фактов. Именно потому, что кроме Индии эти племена завоевали также территории Европы и Ирана, все европейские, персидский и индийские языки родственны друг другу и входят в одну языковую семью. Вы же понимаете санскритское слово "веды" без перевода, верно? И именно по названию места происхождения этих племен в английском языке европеоидная раса называется caucasian race. А также именно по названию этого племени французский граф Жозев Артюр де Гобино дал имя своей печально известной расовой теории, позже популяризованной и претворенной в жизнь Адольфом Гитлером. Но давайте вернемся назад к нашей теме.

Читать далее
Всего голосов 134: ↑102 и ↓32+103
Комментарии575

IaaS 152-ФЗ: итак, вам нужна безопасность

Время на прочтение11 мин
Количество просмотров7.3K

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

• тонкости классификации ПДн по категориям — когда небольшой интернет-магазин собирает данные, относящиеся к специальной категории, даже не зная об этом;

• где можно хранить бэкапы собранных ПДн и производить над ними операции;

• чем отличается аттестат и заключение о соответствии, какие вообще документы запрашивать у провайдера и все в таком духе.

Напоследок мы поделимся с вами собственным опытом прохождения аттестации. Поехали!

Читать далее
Всего голосов 4: ↑3 и ↓1+3
Комментарии9

7 расширений для VS Code, установив которые, вы не захотите выходить из редактора

Время на прочтение4 мин
Количество просмотров50K
…Даже простейшие инструменты могут давать людям возможность делать великие дела.
Биз Стоун, «Решайся! Заряд на создание великого от основателя Twitter»

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



Многие программисты используют в наши дни Visual Studio Code. Этот редактор кода поддерживает установку расширений. Существует столько подобных расширений, что можно говорить о том, что возможности настройки VS Code практически безграничны.

Но на Visual Studio Marketplace, на площадке, где публикуются расширения для VS Code, опубликовано просто невероятное количество расширений. А это значит, что программистам сложно находить именно то, что им действительно пригодится. Если некое расширение показалось кому-то полезным, то оно, вполне возможно, принесёт пользу и другим людям. Поэтому я расскажу здесь о 7 расширениях для VS Code, которые способны значительно облегчить работу программиста. Всё это — бесплатные расширения. Любой может свободно их загружать и использовать.
Читать дальше →
Всего голосов 58: ↑35 и ↓23+26
Комментарии64

VPS на Linux с графическим интерфейсом: запускаем сервер RDP на Ubuntu 18.04

Время на прочтение6 мин
Количество просмотров86K

В предыдущей статье мы разобрали запуск сервера VNC на виртуальной машине любого типа. У этого варианта масса недостатков, основным из которых являются высокие требования к пропускной способности каналов передачи данных. Сегодня мы попробуем подключиться к графическому рабочему столу на Linux по RDP (Remote Desktop Protocol). Система VNC основана на передаче массивов пикселей по протоколу RFB (Remote Framebuffer), а RDP позволяет отправлять более сложные графические примитивы и высокоуровневые команды. Обычно он используется для организации служб удаленных рабочих столов в Windows, но серверы для Linux также доступны.
Читать дальше →
Всего голосов 56: ↑56 и ↓0+56
Комментарии48

Альфа-версия Flutter для Linux и разработка настольных приложений

Время на прочтение10 мин
Количество просмотров14K
Материал, перевод которого мы публикуем сегодня, подготовили Крис Селлз из Google и представитель компании Canonical Кен ВанДин.

Компания Google, в том, что касается Flutter, всегда стремилась к тому, чтобы сделать этот фреймворк универсальным инструментом, позволяющим создавать привлекательные интерфейсы, работающие на любых платформах так же быстро, как интерфейсы «родных» приложений этих платформ. Чтобы убедиться в том, что это возможно, мы начали с того, что сосредоточили усилия на мобильных платформах — Android и iOS. В результате в Google Play оказалось опубликовано более 80000 быстрых и красивых Flutter-приложений.



Мы, опираясь на достигнутые успехи, вот уже более года заняты расширением возможностей Flutter на настольные платформы — на macOS, Windows и Linux. Это касается и веб-приложений, и традиционных настольных проектов. В частности, мы заняты серьёзным рефакторингом движка. Рефакторинг направлен на поддержку работы с мышью и клавиатурой в том стиле, в котором это принято в настольных системах, а так же на поддержку окон, размер которых можно менять. Сюда входят и новые возможности пользовательских интерфейсов, которые хорошо подходят для настольных платформ. Это, например, поддержка Material Density и NavigationRail. Сюда же относятся и эксперименты по глубокой интеграции с настольными операционными системами благодаря Dart:FFI, и работа с системными меню и со стандартными диалоговыми окнами. Всё это делалось для того чтобы убедиться в том, что Flutter подходит не только для создания мобильных проектов, но и готов к тому, чтобы на его основе можно было бы разрабатывать настоящие настольные приложения.
Читать дальше →
Всего голосов 40: ↑40 и ↓0+40
Комментарии16

19 полезных возможностей файла .htaccess

Время на прочтение14 мин
Количество просмотров112K
19 полезных возможностей файла .htaccess


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

Читать дальше
Всего голосов 28: ↑17 и ↓11+6
Комментарии16

Raspberry Pi Foundation захостила свой сайт на Raspberry Pi 4. Теперь этот хостинг доступен всем

Время на прочтение2 мин
Количество просмотров18K

Мини-компьютер Raspberry Pi был создан для обучения и экспериментов. Но с 2012 года «малинка» стала гораздо более мощной и функциональной. Плату используют не только для обучения, но и для создания настольных ПК, медиацентров, умных телевизоров, плееров, ретроконсолей, частных облаков и других целей.

Сейчас появились и новые кейсы, причем не от сторонних разработчиков, а от самих создателей мини-ПК — Raspberry Pi Foundation — и их хостинга, компании Mythic Beasts. Этот провайдер обслуживает сайт и блог «малинки».
Читать дальше →
Всего голосов 19: ↑19 и ↓0+19
Комментарии21

Надоел JavaScript — используй браузерный Python

Время на прочтение9 мин
Количество просмотров42K
Мой опыт разработки игры «Змейка» на Brython

image

«Погоди, что?» – думаю, большинство читателей отреагирует на заголовок именно так.

В смысле «просто использовать Python в браузере»?

Все знают, что в браузерах работает только JavaScript.

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

Да, это Python!

А теперь, давайте поговорим о том, как и насколько хорошо это работает, а также обсудим ряд других альтернатив JavaScript.

Знакомство с Brython


Brython — это реализация Python3, написанная на JavaScript, которая позволяет писать код на Python для веба.

По сути, это JavaScript-библиотека, которая преобразует ваш код на Python в эквивалентный JS и исполняет его в рантайме.

Поскольку написание браузерного кода на Python звучит круто, я решил попробовать.
Читать дальше →
Всего голосов 37: ↑34 и ↓3+45
Комментарии52

Расширенная настройка web сервера (Apache2 + Nginx)

Время на прочтение11 мин
Количество просмотров39K

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


В этой статье будет идти речь о настройке сервера с использованием: Apache2, Nginx, ngx_pagespeed, PHP, PHP-FPM, MariaDB и MemCached.

Читать дальше →
Всего голосов 14: ↑8 и ↓6+9
Комментарии10

Деплой приложения на Laravel 7 на Ubuntu & Nginx

Время на прочтение11 мин
Количество просмотров23K

Laravel 7 Logo


Решил я тут своё портфолио сделать на Laravel 7. Чтобы главная страница была лендингом, а всю информацию на ней можно было менять с помощью админки. Не суть. Дело дошло до деплоя. Нашел пару хороших туториалов, как это сделать на полноценном сервере со всеми заморочками. В деплое я не очень силен, я вообще больше фронт, чем фулстек. И, если писать и тестить на PHP я еще могу, то до управления сервером и т.п. я еще не дорос. Но пришлось разбираться.


Сейчас пройдемся по всем шагам, начиная с запуска через SSH и заканчивая рабочим сайтом. Постараемся обойти все подводные камни.


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

Читать дальше →
Всего голосов 5: ↑3 и ↓2+3
Комментарии11

Как жить и работать дальше, если вам поставили психиатрический диагноз

Время на прочтение6 мин
Количество просмотров109K


UPD Cсылка на стрим на youtube

Привет, Хабр!

Меня зовут Сания Галимова, я 6 лет в рекламе, два из них — руковожу отделом маркетинга в IT-компаниях и уже 4 года пью психотропные препараты по назначению психиатра.

Раньше мне было очень трудно заканчивать проекты и даже просто удержаться на одном месте работы: я была сверхэмоциональной, со мной было трудно договориться, а иногда я просто не могла работать — после 3-4 месяцев интенсивной работы и демонстрации хороших результатов меня «выключало» — я сидела перед монитором и не могла прочесть даже строчки текста.

Меня увольняли, от меня уходили партнеры, я еле сводила концы с концами, но это ни в какое сравнение не шло с галлюцинациями, навязчивыми суицидальными мыслями и клиническими депрессиями.

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

Сейчас я уже 3-й год в ремиссии, моя карьера пошла вверх, я могу жить, работать и путешествовать, не переживая о здоровье и бытовых вещах. Во многом это правильная диагностика, подбор препаратов и работа с психиатром и как раз об этом я и хочу рассказать.
Читать дальше →
Всего голосов 146: ↑126 и ↓20+159
Комментарии169

Как Авито выявляет мошенников и борется с фродом

Время на прочтение11 мин
Количество просмотров183K

Привет, Хабр. Я Игорь, руководитель команды, которая борется с мошенниками на Авито. Сегодня поговорим про вечную битву с негодяями, которые пытаются и даже иногда обманывают интернет-покупателей с помощью доставки товаров.


Читать дальше →
Всего голосов 78: ↑75 и ↓3+91
Комментарии393

Программируем прямо в Nginx

Время на прочтение13 мин
Количество просмотров38K


Nginx — великолепный веб-сервер. Все мы привыкли использовать его в связке с бекендами на разных языках программирования. Но оказывается можно писать простые программы прямо внутри конфигурационного файла Nginx. Это можно использовать для балансировки, написания простых API и даже отдавать динамические страницы прямо из конфига.

В статье мы разберем примеры написания простых программ в конфиге nginx.
Читать дальше →
Всего голосов 30: ↑22 и ↓8+26
Комментарии23

Универсальный GUI ~= конец страданиям

Время на прочтение5 мин
Количество просмотров9.1K
Для меня идеальный GUI это app, который не требует затрат на программирование, дизайн, обслуживание и способный одинаково работать с любыми языками, и на любой платформе без всяких подстроек. Возможно ли это при нашей жизни мы попробуем разобраться.

Читать дальше →
Всего голосов 21: ↑8 и ↓130
Комментарии75

Памятка по работе с Canvas API

Время на прочтение2 мин
Количество просмотров15K


Доброго времени суток, друзья!

Данная статья представляет собой небольшую подборку примеров работы с Canvas API, к которой удобно обращаться при необходимости вспомнить изученный материал.

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

Для меня это также своего рода промежуточный итог в изучении холста.

Код разбит на отдельные блоки-песочницы, которые для удобства чтения помещены под «кат».

Парочка важных моментов.

Ширину и высоту холста лучше определять с помощью атрибутов:

<canvas width="300" height="300"></canvas>

Если мы хотим, чтобы холстом была вся область просмотра, то делаем следующее:

const width = canvas.width = innerWidth
const height = canvas.height = innerHeight

Холст и двумерный контекст рисования я обычно определяю следующим образом:

const canvas = document.querySelector('canvas')
// не путать с объектом jQuery
const $ = canvas.getContext('2d')

Довольно слов.
Всего голосов 13: ↑12 и ↓1+20
Комментарии2

Информация

В рейтинге
4 263-й
Откуда
Новосибирск, Новосибирская обл., Россия
Зарегистрирован
Активность