Как стать автором
Обновить
0

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

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

FTP исполнилось 50 лет

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


16 апреля 1971 года-это не только день, когда The Rolling Stone впервые выпустила Brown Sugar, но и день публикации RFC 114, знаменующий день рождения FTP.

В те дни вьетнамская война была в центре внимания, TCP/IP еще не существовал, Джими Хендрикс умер 6 месяцев назад, telnet был новым крутым парнем, а некоторые из самых влиятельных рок-н-ролльных артистов собирались выпустить свои шедевры, в то время как FTP использовал сетевой протокол под названием NCP.

За прошедшие годы протокол FTP был усовершенствован 16 раз, добавивилась поддержка TCP/IP, безопасного расширения, также известного как FTPS, которое использует ту же технологию, что и HTTPS, и более поздние дополнение, такое как поддержка IPv6.
Всего голосов 25: ↑19 и ↓6+13
Комментарии48

[Разбор] На что обращать внимание при выборе банка для ведения проектов

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

Моя прошлая статья о налоге на банковские вклады вызвала большой интерес, так что сегодня я продолжу финансовую тематику. Еще один вопрос, который не очень-то подробно освещен в интернете – как выбрать банк для работы над проектами (фриланс/бизнес)? 

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

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

C++17. Функция стандартной библиотеки std::launder и задача девиртуализации

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

В этой статье мы попробуем разобраться с одним из самых неоднозначных и непонятных нововведений стандарта C++17 — функцией стандартной библиотеки std::launder. Мы посмотрим на std::launder с другой стороны, посмотрим на источник. Разберем что лежит в основе функции на примере решения задачи девиртуализации и реализации виртуальных указателей в LLVM.


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

PortablePy: компьютер-раскладушка для MicroPython

Время на прочтение4 мин
Количество просмотров12K
Признаю: мне очень нравится та невероятная скорость, с которой загружаются домашние компьютеры 1980-х годов. Я какое-то время пытался оптимизировать время загрузки Raspberry Pi, но особенно далеко в этом деле не продвинулся. Я, кроме того, большой поклонник специализированных устройств, в которых аппаратное обеспечение используется для решения какой-то одной задачи. Такие системы тоже работают очень быстро. MicroPython — это очень интересная разработка, попадающая в сферу моих интересов. Это, с одной стороны — «язык высокого уровня», а с другой — программный комплекс, который без особых сложностей работает на весьма скромных аппаратных ресурсах.


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

Самый маленький офисный пакет в мире

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


Всем нам знаком традиционный офисный пакет — текстовый редактор, электронные таблицы, программа для создания презентаций, возможно, приложение для создания диаграмм или заметок. Всё это мы видим в Microsoft Office и в Google Docs. Все эти программы мощны и объёмны. Но каким будет минимальное количество кода, требуемое для создания офисного пакета?
Читать дальше →
Всего голосов 85: ↑83 и ↓2+81
Комментарии26

Qt? ImGUI? wxWidgets? Пишем свое

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

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

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

Четыре способа получить аудио вк или «это не баг, а фича»

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

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

Читать далее
Всего голосов 70: ↑67 и ↓3+64
Комментарии58

C++ template аллокатора с потокобезопасным циклическим буфером

Время на прочтение9 мин
Количество просмотров8.6K
Вашему вниманию простой C++ template аллокатора с потокобезопасным циклическим буфером.

Вся реализация в одном заголовочном .h файле: [fast_mem_pool.h]

Фишки, чем этот аллокатор лучше сотни подобных — под катом.
Читать дальше →
Всего голосов 28: ↑28 и ↓0+28
Комментарии21

Как сделать поиск по файлоболотам в 104 строки кода на python

Время на прочтение4 мин
Количество просмотров8.1K
Продолжая тематику коротких полезных скриптов, хотелось бы познакомить читателей с возможностью построения поиска по контенту файлов и изображений в 104 строки. Это конечно не будет умопомрачительным по качеству решением — но вполне годным для простых нужд. Также в статье не будет ничего изобретаться — все пакеты open source.

И да — пустые строки в коде тоже считаются. Небольшая демонстрация работы приведена в конце статьи.
Читать дальше →
Всего голосов 17: ↑16 и ↓1+15
Комментарии5

Go и кэши CPU

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

Источник: unsplash.com

По словам Джеки Стюарта, трехкратного чемпиона мира по гонкам Формулы-1, понимание автомобиля помогло ему стать лучшим пилотом: «Гонщику не обязательно быть инженером, но нужен интерес к механике».

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

Команда Mail.ru Cloud Solutions перевела статью, автор которой углубился в устройство процессора и рассмотрел, как понимание некоторых концепций CPU помогает принимать оптимальные решения.
Читать дальше →
Всего голосов 72: ↑69 и ↓3+66
Комментарии17

Древности: Nokia E90, последний коммуникатор

Время на прочтение12 мин
Количество просмотров27K
Давным-давно, лет пятнадцать назад, производители смартфонов не стеснялись экспериментировать с формой: им казалось, что «следующая крутая штука» обязательно должна иметь какие-то особые изгибы корпуса, иное расположение кнопок. Из настоящего времени, из мира примерно одинаковых широкоэкранных лопат, это кажется странным: ну что они суетились, ведь очевидно было, что главное в смартфоне — большой дисплей. А все остальное достигается софтом. Ретрофанату такое разнообразие устройств конца девяностых и нулевых только в радость. Особый интерес представляют артефакты, выделявшиеся своим дизайном уже тогда. Из смартфонов первого десятилетия двадцать первого века, Nokia E90 — это такой аппарат, мимо которого невозможно пройти. Дело не в его популярности или даже полезности. Уж слишком он непохож на любые другие устройства, выпускавшиеся в те времена. Заложенные в него идеи реализуются скорее сейчас, в настоящем, и то робко и с непонятными перспективами.


Простите, Nokia E90 — это не смартфон. Это коммуникатор. Последний представитель особого класса носимых компьютеров, изобретенного финской компанией Nokia и просуществовавшего с 1996 по 2007 год. Уникальный гибрид носимого компьютера и обычного мобильника. Раскладушка, созданная для бизнеса, для высшего начальства, но желанная скорее среди технарей. В 2020 году этот телефон не так просто добыть за разумные деньги, но для любого фаната цифрового ретро это обязательный экспонат в коллекции. Я не смог пройти мимо, купил пару устройств и две недели пытался заставить работать хотя бы одно. Приставить к делу такой аппарат не получится: слишком стар. Я поставил перед собой иную задачу: хотелось эту Нокию оживить, настроить правильно ее штатные службы так, чтобы хоть что-нибудь работало. Посмотреть на эталон носимого устройства для бизнесмена 13-летней давности. И вот что у меня получилось.
Читать дальше →
Всего голосов 21: ↑21 и ↓0+21
Комментарии50

68 непрошеных советов

Время на прочтение6 мин
Количество просмотров76K
Это перевод самого недавнего поста Кевина Келли, со-основателя журнала Wired, писателя, фотографа, футуролога.


Сегодня мой день рождения. Мне 68. Хочется пододвинуть кресло-качалку и пораздавать советы юнцам. Вот 68 непрошеных советов, которые я предлагаю всем вам как подарок ко дню рождения.

  • Научитесь учиться у тех, с кем вы не согласны, или даже тех, кто вас раздражает. Нет ли истины в их убеждениях?
  • Энтузиазм эквивалентен 25 баллам IQ.
  • Всегда требуйте дедлайн. Дедлайн избавляет от лишнего и заурядного. Он останавливает попытки достичь совершенного, поэтому вам приходится делать необычное. Необычное лучше.

Читать дальше →
Всего голосов 92: ↑85 и ↓7+78
Комментарии106

Стажировки в международных компаниях: как не завалить интервью и получить заветный оффер

Время на прочтение7 мин
Количество просмотров13K
Эта статья является переделанной и дополненной версией моего рассказа про стажировку в Google.

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

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

Почему вы должны меня слушать? Не должны. Но за последние два года я побывал на стажировках в Google, Nvidia, Lyft Level5 и Amazon. Собеседуясь в компании в прошлом году, получил 7 офферов: от Amazon, Nvidia, Lyft, Stripe, Twitter, Facebook и Coinbase. Так что у меня есть кое-какой опыт в этом вопросе, который, возможно, окажется полезным.


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

Математический пакет для Android — «Микро-Математика» — теперь с открытым исходным кодом

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

Некоторое время назад я писал здесь о «Микро-Математике» — математическом пакете для Android, который я разработал в качестве хобби-поделки. Этим летом исполняется три года с тех пор, как «Микро-Математика» была выложена в Google Play на всеобщее обозрение. С тех пор программа развивалась дальше, и вот настал момент, когда доход от Google Play окупил разработку. В связи с этим я не вижу смысла дальше утаивать исходный код от общественности и перевожу проект в разряд Open Source. Тех, кому интересно познакомиться с репозиторием «Микро-Математики» на github, и, быть может, поучаствовать в дальнейшем развитии проекта, прошу под кат.

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

Как я отказался от вычисления квадратного корня

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


Очень часто при цифровой обработке сигналов необходимо вычислить длину вектора, обычно это делается по формуле A=SQRТ(X^2+Y^2). Здесь возвести в квадрат значение не сложно, но операция вычисления квадратного корня не является простой операцией, особенно для микроконтроллеров. Кроме того, алгоритмы вычисления корня выполняются не стабильное время, и для алгоритмов, в которых таких вычислений много, становится сложно прогнозировать время, необходимое для вычислений.

С такой задачей столкнулся и я. О том, как я отказался от процедуры вычисления корня, читайте ниже.
Читать дальше →
Всего голосов 126: ↑119 и ↓7+112
Комментарии93

Сети для самых маленьких. Часть ой, всё

Время на прочтение4 мин
Количество просмотров153K
Дорогие мои друзья, отважные критики, тихие читатели и тайные почитатели, СДСМ заканчивается.



Я не могу похвастаться тем, что за 7 лет я затронул все темы сетевой сферы или тем, что хотя бы одну из них раскрыл полностью. Но это и не было целью. А целью этой серии статей было ввести юного студента за руку в этот мир и проводить его шаг за шагом по основной галерее, давая общее представление, и уберечь от болезненных скитаний по тёмным уголкам сознания Олифера и Олифера в мучительных попытках найти ответ на вопрос, как всё это применить в жизни.
СДСМ планировался коротким практическим курсом «как научиться в сети за месяц», а вылился в 16 (на самом деле 19) длинных выпусков, которые мы уже даже переименовали в «Сети Для Самых Суровых». Общее количество символов перевалило за 1 000 000.
Читать дальше →
Всего голосов 55: ↑55 и ↓0+55
Комментарии38

Bloody hell, или Как ругаться на английском, чтобы тебя приняли за культурного человека

Время на прочтение6 мин
Количество просмотров109K
Ругательства — это неотъемлемая часть любого языка. И даже если вы не собираетесь их использовать в жизни, их нужно изучать и знать.

Но есть ситуации, когда без «крепкого словца» не обойтись. И чтобы не потерять свой имидж культурного человека, мы предлагаем вам целую коллекцию «mild curses» — легких ругательств и идиоматических выражений на английском языке, которые не считаются матами, но при этом помогут выразить всю палитру эмоций. Поехали!


Всего голосов 93: ↑87 и ↓6+81
Комментарии143

Понимание итераторов в Python

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

Python — особенный язык в плане итераций и их реализации, в этой статье мы подробно разберём устройство итерируемых объектов и пресловутого цикла for.


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


1. Использование генератора дважды


>>> numbers = [1,2,3,4,5]

>>> squared_numbers = (number**2 for number in numbers)

>>> list(squared_numbers)
[1, 4, 9, 16, 25]

>>> list(squared_numbers)
[]

Как мы видим в этом примере, использование переменной squared_numbers дважды, дало ожидаемый результат в первом случае, и, для людей незнакомых с Python в достаточной мере, неожиданный результат во втором.


2. Проверка вхождения элемента в генератор


Возьмём всё те же переменные:


>>> numbers = [1,2,3,4,5]
>>> squared_numbers = (number**2 for number in numbers)

А теперь, дважды проверим, входит ли элемент в последовательность:


>>> 4 in squared_numbers
True
>>> 4 in squared_numbers
False
Читать дальше →
Всего голосов 29: ↑27 и ↓2+25
Комментарии20

Полигоны Another World

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

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


Хорошим выбором для этого мог бы стать DOOM. Мегахит 1994 года от id Software был портирован на всё, что только можно. Игра спроектирована вокруг ядра, чётко разделённого на слои. Обычно легко найти и прочитать реализацию шести подсистем ввода-вывода.


Другим выбором могла бы стать Another World 1991 года от Эрика Шайи, в Северной Америке более известная под именем Out Of This World. Я бы сказал, что на самом деле её интереснее изучать, чем DOOM, из-за полигональной графики, подходящей для диких оптимизаций. В некоторых случаях хитрые трюки позволяли игре работать на оборудовании, созданном за пять лет до выхода игры.



Всего голосов 53: ↑52 и ↓1+51
Комментарии10

Простой расчет контрольной суммы

Время на прочтение12 мин
Количество просмотров215K
При передачи данных по линиям связи, используется контрольная сумма, рассчитанная по некоторому алгоритму. Алгоритм часто сложный, конечно, он обоснован математически, но очень уж неудобен при дефиците ресурсов, например при программировании микроконтроллеров.



Чтобы упростить алгоритм, без потери качества, нужно немного «битовой магии», что интересная тема сама по себе.
Читать дальше →
Всего голосов 28: ↑27 и ↓1+26
Комментарии26

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность