Pull to refresh
0
0
Send message

Проблемная секунда

Level of difficultyMedium
Reading time8 min
Views26K

Сегодня каждый может легко проверить текущее время множеством способов. У нас есть смартфоны, часы, компьютеры, ТВ, холодильники и так далее. Все знают, какой на дворе год, и что он означает. Мы разбираемся во временны́х зонах и знаем, что такое всемирное координированное время (UTC). Всё кажется таким тривиальным. Однако с точки зрения IT-систем здесь существует множество сюрпризов, вынуждающих нас сталкиваться с проблемами, которые возникают очень редко.

В различных IT-системах можно встретить множество нюансов, касающихся времени. Чаще всего они связаны с точностью его измерения и синхронизации между машинами в распределённых системах. В этой же статье я разберу одну странную ситуацию, которая за всю историю случалась лишь несколько раз.
Читать дальше →
Total votes 63: ↑60 and ↓3+73
Comments63

Что там такого интересного в Транссибирской магистрали?

Reading time7 min
Views43K


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

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

Ну, с попыткой понять, зачем, вот зачем они ездят. И чему радуются. Наш респондент — проводник с многолетним стажем.
Читать дальше →
Total votes 118: ↑113 and ↓5+108
Comments140

ES6 по-человечески

Reading time11 min
Views589K

От переводчика:
Предлагаю вашему вниманию перевод краткого (действительно краткого) руководства по ES6. В нём можно ознакомиться с основными понятиями стандарта.
Оригинальный текст в некоторых случаях был дополнен или заменён на более подходящий источник. Например, часть определения ключевого слова const является переводом документации с MDN.
Чтобы лучше разобраться в некоторых концепциях (для выполнения качественного перевода) использовалось описание стандарта на сайте MDN, руководство "You Don't Know JS: ES6 & Beyond" и учебник Ильи Кантора.


Перевод выложил на Гитхаб: https://github.com/etnolover/ES6-for-humans-translation. В случае нахождения ошибок пишите, исправлю.
Ссылка на оригинальный текст: https://github.com/metagrover/ES6-for-humans


Update 22.07.2016: добавил опрос про const


Содержание



Читать дальше →
Total votes 62: ↑60 and ↓2+58
Comments87

Stable Diffusion. Курс молодого бойца

Level of difficultyMedium
Reading time22 min
Views90K

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

Я бы очень сильно хотел чтобы такой материал попался мне, когда я только начинал познавать возможности SD. Тут я попытался кратко и концентрированно описать все те знания и инструменты, которые имеют большое практическое значение при работе c SD.

Так же в конце будет изложен mindset, который необходимо иметь чтобы научиться пользоваться SD. Я буквально попытаюсь научить вас думать как AI художник.

Поэтому без лишних слов, начинаем.

Поехали!
Total votes 60: ↑58 and ↓2+70
Comments24

Краткий обзор технологии DPI — Deep Packet Inspection

Reading time11 min
Views193K
Я уже несколько лет активно занимаюсь темой DPI, осуществляя пресейл и непосредственно внедрение этих решений. Побудило меня на написание этого топика то, что тема DPI на хабре раскрыта достаточно слабо, поэтому хотелось бы немного рассказать об устройствах, которые применяют ведущие сервис-провайдеры и крупные корпоративные пользователи для интеллектуального управления трафиком в своих сетях, а также пояснить зачем им это всё надо.
Читать дальше →
Total votes 39: ↑38 and ↓1+37
Comments99

Как я запрограммировала собственный рукописный шрифт

Level of difficultyMedium
Reading time5 min
Views25K

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

Недавно я создала на JavaScript собственный блочный шрифт, решив, что запрограммировать слитное рукописное письмо будет слишком сложно. Но не прошло и двух месяцев, как вот я здесь и готова рассказать о созданном мной механизме слитного письма. Пожалуй, в этом есть свой урок, но мы в его смысл углубляться не станем.
Читать дальше →
Total votes 102: ↑100 and ↓2+127
Comments59

Автоматический поворот изображения на мониторе

Reading time3 min
Views61K
Исторически сложилось так, что у меня нет монитора. Вместо него я использую телевизор. Тридцати двух дюймовый телевизор. И нет, я еще не окосоглазил. Вполне комфортно за ним работается, заменяет мне сразу 2 монитора. Но есть у него одна неприятная особенность. Когда я открываю свой любимый редактор, код представляет собой узкий столбец с левой стороны экрана. Почти две трети экрана остаются пустыми и ничем не задействованными.



Я долго с этим мирился, пока не вспомнил про вертикальные мониторы. А почему нет? Чем я хуже? Вот тогда я и решил немного переоборудовать свое рабочее место. Можно было бы сделать крепеж и навсегда перевести монитор в вертикальное положение, но меня это не устраивало по той причине, что на моем «мониторе» я часто смотрю фильмы. А вертикальные фильмы, слава богу, пока еще не снимают. В этот момент появилась идея приобрести поворотный кронштейн и повесить телевизор на стену, чтобы при необходимости его вертеть. Именно так я и поступил.
Читать дальше →
Total votes 109: ↑92 and ↓17+75
Comments103

Теория радиоволн: ликбез

Reading time4 min
Views409K
image

Думаю все крутили ручку радиоприемника, переключая между «УКВ», «ДВ», «СВ» и слышали шипение из динамиков.
Но кроме расшифровки сокращений, не все понимают, что скрывается за этими буквами.
Давайте ближе познакомимся с теорией радиоволн.
Читать дальше →
Total votes 169: ↑158 and ↓11+147
Comments83

Как поезд проходит путь от станции до станции: особенности маршрутизации

Reading time9 min
Views31K


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

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

Понятное дело, бывают исключения вроде ситуации, когда нужно вытолкать с блок-участка электричку, оставшуюся без питания (и нужно заехать под красный), но мы сейчас будем говорить про то, как устроено в упрощённых случаях.
Читать дальше →
Total votes 65: ↑65 and ↓0+65
Comments100

Создание расширения браузера Google Chrome для извлечения всех изображений web-страницы. Часть 1

Reading time15 min
Views85K

Расширения браузера это web-приложения, которые устанавливаются в web-браузер чтобы расширить его возможности. Обычно для того чтобы воспользоваться расширением, пользователю нужно найти его в Chrome Web Store и установить.

В этой статье я покажу как создать расширение для браузера Google Chrome с нуля. Это расширение будет использовать API браузера для того чтобы получить доступ к содержимому web-страницы любой открытой вкладки. С помощью этих API можно не только читать информацию с открытых web-сайтов, но и взаимодействовать с этими страницами, например, переходить по ссылкам или нажимать на кнопки. Таким образом расширения браузера могут использоваться для широкого круга задач автоматизации на стороне клиента, таких как web-scrape или даже автоматизированное тестирование фронтенда.

Мы создадим расширение, которое называется Image Grabber, которое будет содержать интерфейс для подключения к web-странице и для извлечения из нее информации о всех изображениях. Далее, при нажатии на кнопку "GRAB NOW" список абсолютных URL этих изображений будет скопирован в буфер обмена. В этом процессе вы познакомитесь с фундаментальными строительными блоками, которые в дальнейшем можно будет использовать для создания других расширений.

Расширения, создаваемые таким образом для браузера Chrome совместимы с другими браузерами, основанными на движке Chromium и могут быть установлены, например, в Yandex-браузер или Opera.

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

Читать далее
Total votes 11: ↑10 and ↓1+11
Comments16

Пишем свой ROM BIOS

Reading time12 min
Views30K

Со стародавних времён хотел попробовать создать собственный ROM BIOS, который будет записан в отдельную микросхему и будет выполнять какие-то полезные действия. Например, ROM BIOS установлен в видеокартах (по крайне мере старых), контроллерах дисков и много где ещё — это фактически расширения обычного BIOS. Понимаю, что это всё старьё и тягаться с возможностями современного UEFI бессмысленно, но мне очень хотелось создать свой собственный образ, который находится физически в отдельной микросхеме и работает при старте системы. Поэтому пришлось даже для этих целей найти старый комп.

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

В этой статье мы с вами разберём создание своего ROM BIOS, дальше я расскажу про тонкости и нюансы, напишу низкоуровневый «Hello world», сделаю настоящий интерпретатор BASIC ROM, который стартует при включении компьютера, как в первых IBM PC.
Читать дальше →
Total votes 108: ↑107 and ↓1+139
Comments70

Быстрая нейронная сеть для каждого

Reading time3 min
Views225K
Данная статья продемонстрирует возможность легко написать свою нейронную сеть на языке Javа. Дабы не изобретать велосипед, возьмем уже хорошо проработанную библиотеку Fast Artificial Neural Network. Использование нейронных сетей в своих Java-проектах — реально. Часто можно услышать упреки в адрес Java касательно скорости выполнения. Хотя разница не так велика — подробно об этом можно узнать в публикации «Производительность C++ vs. Java vs. PHP vs. Python. Тест «в лоб»». Мы будем использовать обертку вокруг библиотеки FANN.
Читать дальше →
Total votes 35: ↑27 and ↓8+19
Comments12

Производительность C++ vs. Java vs. PHP vs. Python. Тест «в лоб»

Reading time5 min
Views133K
/update/ Статья обновлена по результатам обсуждения. Поправлен код Python (около 40% ускорения), написан код на Perl и Ruby (но меня терзают смутные сомнения, что с ruby я что-то сделал неправитьно), поправлен код на Java (на моей машине корректнее тестировать int, а не long. к тому же int в Java эквивалентен long в C++).

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

После прочтения очередной статьи мне захотелось самому разобраться «здесь и сейчас». Сначала захотелось сравнить Java и C++ (не верил я, что в вычислительных тестах ява может догнать и обогнать cpp). 10 минут и простой код на C++ и яве готов: простой цикл и математические операции. После написания теста подумал и перевёл их на php и python. Позже добавился код на perl и ruby.

Читать дальше →
Total votes 111: ↑67 and ↓44+23
Comments216

Реверс-инжиниринг первых умных часов Seiko UC-2000

Reading time32 min
Views32K


Где-то в конце 1983 — начале 84 года, японская компания Seiko начала продавать первые в истории компьютеризированные часы — Seiko Data-2000 и Seiko UC-2000. Data-2000 имели возможность хранить 2КБ заметок, их нужно было вводить с помощью специальной компактной клавиатуры, которая шла в комплекте. UC-2000, по сути, те же Data-2000 с корпусом другого цвета, но они уже позиционировались как часть Наручной Информационной Системы, которая, среди прочего, включала терминал UC-2200, представляющий из себя компьютер с Z80-совместимым процессором, интерпретатором Бэйсика и термопринтером, но без экрана, в качестве которого использовались часы (как это не странно). Среди прочего, терминал давал возможность загружать на часы приложения со специальных картриджей. Подробнее о линейке ранних умных часов Seiko можно почитать, например, в этой статье. В этом же посте я расскажу, как написал (возможно) первую, за более чем 33 года, программу для этих часов.
Total votes 139: ↑139 and ↓0+139
Comments35

Information

Rating
Does not participate
Registered
Activity

Specialization

Specialist
Intern