Pull to refresh
2
0
Send message

Как я чуть не стал миллионером, продавая воздух, или почему Россия – не Америка

Level of difficultyEasy
Reading time10 min
Views114K

Все знают, что Россия — энергетическая сверхдержава, она же – «разорванная в клочья Обамой бензоколонка». Но не все знают, как это может отражаться в области развития математического моделирования. Расскажу одну жизненную историю. 

Начну с далекого 2007 года. Довелось мне в те времена поработать на крупном заводе, который «эффективные менеджеры» как раз делили на несколько отдельных предприятий, каждое из которых крутилось, как могло.  В том цеху, который и стал одним из таких предприятий, на токарных станках могла крутиться (и крутилась!) металлическая болванка размером с автобус. А в печку для нагрева металла можно было затолкать паровоз. Целиком.  Когда я в первый раз увидел токарный станок, на котором крутится и обтачивается деталь размером с автобус, моему восторгу не было предела. Гордость за страну переполняла до состояния «в зобу дыханье сперло». А потом старожилы показали ту часть цеха, где стояли фундаменты таких же станков и пояснили:

- А вот тут были станки для точной обработки. Их продали китайцам по цене металлолома.

- А почему вот другие не продали?

- Потому, что у них точность обработки такая, что их только в металлолом можно сдать. Поэтому они здесь работают и крутятся как могут, и обтачивают валы турбин Siemiens.

Схема бизнеса был гениальна: Siemiens привозил на завод многотонные болванки, их неделями и месяцами обтачивали до состояния заготовок и увозили для чистовой обработки в Германию. Где уже выполняли чистовую доводку на точных и дорогих станках. Главные затраты при черновой обработке – это износ станков и инструмента, зарплата токаря и электроэнергия, необходимая для вращения тонн металла. Поскольку электроэнергия в РФ дешевле немецкой, недели обработки болванок с лихвой окупают транспортировку, а низкая точность обработки не требует дорогого обслуживания и мало чувствительна к износу еще советского оборудования.  В итоге весь бизнес заключался в «перепродаже» дешевой электроэнергии из РФ в Германию, но в виде металлических обточенных болванок. 

Читать далее
Total votes 293: ↑284 and ↓9+275
Comments301

Команда SED в Linux/Unix с примерами

Reading time7 min
Views153K

Компиляция из двух смежных статей на тему использования команды sed для редактирования текстовых файлов, включая различные варианты поиска и замены шаблонов, а также всевозможные операции со строками. Идею к публикации этого гайда подал участник nronnie в комментарии к предыдущей статье, посвящённой работе с Bash.
Читать дальше →
Total votes 63: ↑62 and ↓1+61
Comments9

Программист на всю голову: как кодинг влияет на мышление

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



В преддверии нашего курса Go Workshop рассказываем, что психологи, лингвисты и педагоги думают о влиянии кодинга на мозг, при чем тут австралийские индейцы и гипотеза Сепира-Уорфа.
Читать дальше →
Total votes 25: ↑20 and ↓5+15
Comments258

Джаббер чат на веб-странице

Reading time3 min
Views32K
Прочитав пост на хабре про онлайн чат для сайта через джаббер, мне стало интересно — а как оно работает и как такое можно сделать самому, без готовых приложений. В итоге у меня получилась очень простая заготовка «чата для сайта через джаббер». К сожалению у меня нет выделенного сервера с линуксом для тестов, поэтому был использован локальный компьютер с Win7 (и сервером Apache).

Как это вообще должно работать: пользователь заходит на сайт, и видит окошко, куда можно разговаривать. После того как пользователь послал сообщение, оно прилетает на указанный джаббер аккаунт. Получатель этого сообщения может написать ответ и оно придёт посетителю сайта.
Что для этого нужно:
  • Jabber сервер, можно публичный, можно локальный. Я выбрал Openfire и установил его локально. Сервер должен поддерживать Bosh — XEP-0124: Bidirectional-streams Over Synchronous HTTP, об этом чуть позже.
  • JS библиотека, которая будет реализовывать джаббер-клиент на сайте. Я взял Strophe. Это достаточно низкоуровневая библиотека, в которой нет функций типа «ПослатьСообщение(Куда, Текст)». Для достижения нужных действий нужно вручную составлять команды джаббер серверу (в XML). Удобные средства для создания XML в Strophe есть :)
Читать дальше →
Total votes 52: ↑48 and ↓4+44
Comments19

Создание 1k intro Chaos для ZX-Spectrum

Reading time7 min
Views14K

Изначально я не планировал делать демо на Chaos Constrictions 2018, однако за 2-3 недели до cc понял, что с пустыми руками идти на демопати никак нельзя, и решил написать небольшую демонстрацию для 386/EGA/DOS.

Скомпилировав в Turbo-C под DOS свою либу AnotherGraphicsLibrary, которая идеально ложиться в битплановую структуру EGA режима, я разочаровался, от тормозов, прежде всего тормозов EGA. Демо в том виде, в котором я хотел бы его видеть, за этот весьма ограниченный срок, сделать было невозможно.

Однако сдаваться и не делать что-либо, я уже не мог. И тут я вспомнил, что давно хотел принять участие в ZX-Spectrum конкурсах демо. А так, как за последний год у меня появилось целых два 48k реала, я мог получить определенное удовольствие от создания демо. К слову — для меня самое главное в написании демо это именно тестирование на реале, эмульгаторы не дают такого наслаждения от процесса, уж очень это замечательное чувство, когда после очередного изменения в коде ты закачиваешь демо на реал, и видишь как настоящая железка тасует байтики в памяти, отрисовывая эффект.

Поскольку из реалов у меня только 48k, то и демо я решил сделать для 48k. А из-за ограниченности сроков и отсутствия каких-либо наработок, выбор пал на создание 1k intro(демо объёмом всего 1 килобайт, или 1024 байта).
Читать дальше →
Total votes 67: ↑66 and ↓1+65
Comments56

Выразительный JavaScript: Величины, типы и операторы

Reading time10 min
Views156K

Содержание




Под поверхностью машины движется программа. Без усилий, она расширяется и сжимается. Находясь в великой гармонии, электроны рассеиваются и собираются. Формы на мониторе – лишь рябь на воде. Суть остаётся скрытой внутри…

Мастер Юан-Ма, Книга программирования

Читать дальше →
Total votes 26: ↑25 and ↓1+24
Comments6

Создание «искусственной жизни» на компьютере

Reading time10 min
Views109K
Всем привет. В статье хочу описать свой эксперимент по созданию «искусственной жизни» на компьютере.

Как это выглядит?

картинка кликабельна

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

Ну а дальше за работу принимается эволюция и естественный отбор.

А мне остаётся только наблюдать за развитием мира.

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

Поведением ботов управляет код, записанный в них.

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

Внутреннее устройство кода — это самое интересное в проекте.

Код должен быть простым и выдерживать различные модификации (случайное изменение любого элемента в коде) над собой без синтаксических ошибок.
Читать дальше →
Total votes 214: ↑210 and ↓4+206
Comments393

Прибор ночного видения на базе тепловизионного модуля Flir Lepton 3

Reading time6 min
Views24K
Ранее я написал статью о подключении к компьютеру тепловизионной приставки к смартфону Flir One Gen 2. Пришла пора вынуть из этой приставки модуль лептон и подключить к микроконтроллеру напрямую, собрав прибор ночного видения с разрешением 160x120 пикселей.
Total votes 44: ↑44 and ↓0+44
Comments19

Тестирование радиомодемов LoRa/LoRaWAN RN2483. Часть 1, LoRa

Reading time5 min
Views80K
Одна из интересных технологий “интернета вещей” — сети LoRa/LoRaWAN, однако в рунете они практически не описаны. Пора восполнить этот пробел, и тем более интересно попробовать “вживую”, как это работает.



Что такое LoRa?


Это технология связи на большие (Long Range) расстояния, запатентованная компанией Semtech, и реализованная в их чипах SX1272 and SX1276. LoRa это протокол низкого уровня, поверх которого могут реализовываться более высокоуровневые протоколы, например LoRaWAN.

Особенность стандарта LoRa — это передача небольших пакетов данных с невысоким энергопотреблением. По заверениям производителя, дальность на открытом воздухе может достигать 10км, а время работы от батареи может составлять несколько лет. Рабочие частоты зависят от страны, и составляют 433 или 868МГц (EU-версия) или 915МГц (USA-версия).

Как это работает? Подробности под катом.
Читать дальше →
Total votes 18: ↑17 and ↓1+16
Comments38

Inter-AS routing. Можно ли сэкономить на BGP маршрутизаторе?

Reading time7 min
Views12K
В качестве предисловия: вчера представил приведенные ниже идеи на локальной сходке администраторов. После презентации ко мне подошел представитель компании, занимающейся производством сетевого оборудования и спросил: «Ты публиковал это где-то? Поделись презентацией, я отправлю коллегам посмотреть.» Собственно, а почему бы и не опубликовать? Как говорят у нас в Украине «i ми, Химко, люди». Если уж кто-то из вендоров, хотя бы отдаленно, но заинтересовался, то и в коммьюнити найдется человек, которому идеи тоже покажутся интересными. Кроме этого, я и сам планирую использовать это решение. Сразу скажу, что 100% готового результата не будет, но будет некий промежуточный, которого достаточно для эрзац-роутинга и немного информации для продолжения работ в данном направлении. Поехали!
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments36

Команда dd и все, что с ней связано

Reading time4 min
Views599K

В UNIX системах есть одна очень древняя команда, которая называется dd. Она предназначена для того, чтобы что-то куда-то копировать побайтово. На первый взгляд — ничего выдающегося, но если рассмотреть все возможности этого универсального инструмента, то можно выполнять довольно сложные операции без привлечения дополнительного ПО, например: выполнять резервную копию MBR, создавать дампы данных с различных накопителей, зеркалировать носители информации, восстанавливать из резервной копии данные на носители и многое другое, а, при совмещении возможностей dd и поддержке криптографических алгоритмов ядра Linux, можно даже создавать зашифрованные файлы, содержащие в себе целую файловую систему.
Опять же, в заметке я опишу самые часто используемые примеры использования команды, которые очень облегчают работу в UNIX системах.
Читать дальше →
Total votes 323: ↑315 and ↓8+307
Comments119

Многозадачность в ядре Linux: прерывания и tasklet’ы

Reading time6 min
Views75K
Котейка и младшие братьяВ предыдущей своей статье я затронула тему многопоточности. В ней речь шла о базовых понятиях: о типах многозадачности, планировщике, стратегиях планирования, машине состояний потока и прочем.

На этот раз я хочу подойти к вопросу планирования с другой стороны. А именно, теперь я постараюсь рассказать про планирование не потоков, а их “младших братьев”. Так как статья получилась довольно объемной, в последний момент я решила разбить ее на несколько частей:
  1. Многозадачность в ядре Linux: прерывания и tasklet’ы
  2. Многозадачность в ядре Linux: workqueue
  3. Protothread и кооперативная многозадачность

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

Рассказывать я постараюсь подробно, описывая основное API и иногда углубляясь в особенности реализации, особо заостряя внимание на задаче планирования.
Читать дальше →
Total votes 94: ↑93 and ↓1+92
Comments31

Когда в бухгалтерии заменили принтер. «Надо всем переподключить»

Reading time7 min
Views37K


Если такая заявка в вашей системе сервис-деска вызывает дергающийся глаз и падение тонуса ― у вас наверняка еще не настроено удобное централизованное управление принтерами. Пора исправлять эту неувязочку.


Статья скорее для тех, у кого нет этого сферического корпорейта в вакууме, с виртуальными принтерами, прикладыванием пропуска для печати на HP M8xx, а то и даже Ricoh Pro 8ххх. Как обычно, запасаемся скриптами, GPO и еще раз скриптами.

Читать дальше →
Total votes 18: ↑18 and ↓0+18
Comments24

Как я парсил БД C-Tree, разработанную 34 года назад

Reading time6 min
Views17K
image

Прилетела мне недавно задача дополнить функционал одной довольно старой програмки (исходного кода программы нет). По сути нужно было просто сканить периодически БД, анализировать информацию и на основе этого совершать рассылки. Вся сложность оказалась в том, что приложение работает с БД c-tree, написанной аж в 1984 году.

Порывшись на сайте производителя данной БД нашёл некий odbc драйвер, однако у меня никак не получалось его подключить. Многочисленные гугления так же не помогли нормально сконнектиться с базой и доставать данные. Позже было решено связаться с техподдержкой и попросить помощи у разработчиков данной базы, однако ребята честно признались что уже прошло 34 года, всё поменялось 100500 раз, нормальных драйверов для подключения на такое старьё у них нет и небось уже тех программистов в живых тоже нету, которые писали сие чудо.
Порывшись в файлах БД и изучив структуру, я понял, что каждая таблица в БД сохраняется в два файла с расширением *.dat и *.idx. Файл idx хранит информацию по id, индексам и т.д. для более быстрого поиска информации в базе. Файл dat содержит саму информацию, которая хранится в табличках.

Решено было парсить эти файлики самостоятельно и как-то добывать эту информацию. В качестве языка использовался Go, т.к. весь остальной проект написан на нём.
Читать дальше →
Total votes 74: ↑59 and ↓15+44
Comments65

Простая маскировка модуля ядра Linux с применением DKOM

Reading time5 min
Views11K
Как известно, задача сокрытия модуля ядра от вездесущих «глаз» пользователя может иметь множество приложений. В данной статье рассматривается применение DKOM (Direct Kernel Object Manipulation) — одной из техник, позволяющий осуществить сокрытие информации посредством модицикации внутренних структур ядра.

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

Читать далее
Total votes 41: ↑38 and ↓3+35
Comments12

Онлайн шутер на Unreal Engine 4 за 90 часов (видео создания + исходники)

Reading time5 min
Views62K
Привет, харб! Примерно год назад я выкладывал статью о том, как я в прямом эфире создал выживалку за 150 часов. На этот раз хочу представить вам сетевой шутер, который я создал за 25 заходов по 3 — 4 часа. Всего вышло около 90 часов и в итоге мы создали онлайн шутер, в который сыграли вместе со зрителями.

image

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

Несмотря на чистое время, данный проект занял примерно 10 месяцев. Я делал большие перерывы в стримах, но тем не менее, закончил разработку и теперь он доступен всем бесплатно и без смс.
Если вас интересуют подробности, записи стримов, исходники или билд игры с сервером в комплекте, предлагаю прочитать дальше под катом!
Total votes 64: ↑63 and ↓1+62
Comments27

Чем плохо быть full stack разработчиком

Reading time7 min
Views200K

Введение


Прежде всего определимся с терминами. Есть много разных представлений о том, кто же такой full stack разработчик, кто-то даже вполне обоснованно считает, что такие разработчики — это миф, но в этой статье будет иметься в виду разработчик, который обладает знаниями и умениями, позволяющими с нуля написать некий софт и вывести его в продакшн. При этом софт может быть рассчитан на web платформу, мобильные приложения или десктопные. Идеальный full stack разработчик — это тот, кто владеет в какой-то мере всеми платформами и может разработать и установить на них свой софт. Но это действительно скорее миф.
Неплохое определение с quora.com
Когда люди ищут full stack разработчика, они ожидают увидеть поющего и танцующего техномага.
Ну или хотя бы кого-то, кто не будет слишком сильно жаловаться, когда его попросят поработать вне его зоны комфорта.

Возможно, по заголовку кому-то покажется, что это жалобный пост, который говорит о том, как плохо живётся неквалифицированному школьнику, который похватал всего из разных статей в интернете. Нет, пост не жалобный, мы говорим про full stack, а не full slack, и в конце будет так же рассмотрен список плюсов. И мы будем рассматривать не школьника, а разработчика с опытом работы в пять и более лет. Просто посмотрим, какие минусы есть в таком развитии.
Читать дальше →
Total votes 81: ↑68 and ↓13+55
Comments93

Базовая фортификация Linux: выбираем ежи и учимся рыть траншеи

Reading time10 min
Views26K


Несмотря на то, что Linux по праву считается более защищенной системой, чем MS Windows, самого по себе этого факта мало.


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

Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments24

Из хирурга в разработчики: как в 40 лет сменить профессию?

Reading time6 min
Views155K

image


Привет! Меня зовут Алексей, я тимлид в крупной IT-компании. Сейчас мне 43, только в 40 лет я стал разработчиком, а до этого 15 лет был практикующим врачом-хирургом. Делюсь с вами, как в середине жизни я поменял профессию, о страхах, рисках и планах с этим связанных.


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

Читать дальше →
Total votes 243: ↑241 and ↓2+239
Comments370

Как нам помогают нейронные сети в технической поддержке

Reading time7 min
Views14K
Несмотря на всеобщий хайп вокруг машинного обучения и нейронных сетей, несомненно, сейчас на них действительно стоит обратить особое внимание. Почему? Вот ключевые причины:

  1. Железо стало гораздо быстрее и можно легко обсчитывать модели на GPU
  2. Появилась куча неплохих бесплатных фреймворков для нейросетей
  3. Одурманенные предыдущим хайпом, компании стали собирать бигдату — теперь есть на чем тренироваться!
  4. Нейронки в некоторых областях приблизились к человеку, а в некоторых — уже превзошли в решении ряда задач (где тут лопаты продают, надо срочно бункер рыть)

Но управлять этим, по прежнему, сложно: много математики, высшей и беспощадной. И либо ты из физмата, либо сиди и решай 2-3 тысячи задачек в течении двух-трех лет, чтобы понимать, о чем идет речь. Разобраться по дороге на собеседование в электричке, полистав книжку «Программирование на PHP/JavaScript за 3 дня» — не получится, ну никак, и списать никто не даст (даже за ящик водки).


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

Но зато, ууУУ, овладев основами, можно строить разные предсказательные модели, реализующие интересные и мощные алгоритмы. И вот тут язык начинает заворачиваться и выпадать изо рта, цепляя левый глаз…
Читать дальше →
Total votes 30: ↑22 and ↓8+14
Comments33
1
23 ...

Information

Rating
Does not participate
Location
Тверь, Тверская обл., Россия
Date of birth
Registered
Activity