Pull to refresh
4
0
trdm @trdm

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

Send message

Раздувание кода стало астрономическим

Reading time5 min
Views98K

Время от времени я пользуюсь одним сервисом: мне нужно загрузить файлы в какое-то место (название сервиса не имеет роли, потому что, откровенно говоря, все они одинаковы). По сути, я просто указываю папку на своём жёстком диске, после чего её содержимое копируется на удалённый сервер, на котором, вероятно, происходит что-то связанное с базами данных — этим файлам присваиваются имена и выполняются проверки того, кто их скачивает.

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

… но по сути, речь идёт о том, что нужно зарегистрировать несколько файлов, считать их, загрузить, а затем закрыть соединение и записать в файл лога, всё ли прошло успешно, а если нет, то что именно случилось. В этом нет ничего сложного, и даже я писал с нуля подобный код при помощи Wininet API и PHP на сервере, общающемся с моей базой данных MySQL. Наверно, моя система была не такой надёжной, как системы уровня энтерпрайза, однако поддерживала сотни тысяч загруженных файлов, их верификацию, скачивание и логирование. Наверно, это работа для одного кодера на две-три недели?

Специальный инструмент загрузки на сервер, которым я пользуюсь сегодня, суммарно имеет 230 МБ клиентских файлов и задействует 2,7 тысяч файлов для управления этим процессом.
Читать дальше →

RustDesk — self-hosted аналог TeamViewer

Reading time2 min
Views107K

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

Читать далее

Как я открыл компанию по созданию детских наборов электроники – Часть 2

Level of difficultyEasy
Reading time14 min
Views16K


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

Однако, всё пошло не по плану.
Читать дальше →

Список полезных инструментов для php разработчика

Reading time10 min
Views150K
PHP один из самых широко используемых языков для создания вебсайтов. PHP фреймворки, такие как Zend, CakePHP, CodeIgniter и т.д и open source классы и библиотеки упростили разработку.
Независимо от того, являетесь ли вы опытным разработчиком или новичком, инструменты, которые вы используете, имеют прямое влияние на вашу продуктивность. Здесь собран список действительно полезных утилит и расширений для PHP разработчиков, которые помогут ускорить разработку, и улучшит итоговое качество кода.
Читать дальше →

Почему Гэндальф в своей знаменитой фразе использует shall вместо will?

Reading time3 min
Views129K

Уроки английской грамматики застали меня ещё в обычной советской школе, где пионеров учили, что London is the capital of Great Britain, что в первом лице будущего времени следует использовать “shall”, а в остальных лицах используется модальный глагол “will”.

Много позже практика общения сделала для меня очевидным, что советские учебники устарели; “will” используется повсеместно невзирая на лица, а рудимент глагола “shall” способен всего лишь выразить нотку нетерпения в вопросах типа: “Shall we play a game tonight?”

Стоило мне окончательно заменить свой школьный шаблон употребления модальных глаголов “shall” и “will” на клише, отлитое из десятилетий собственной практики, как дивный голос сэра МакКеллена одной-единственной фразой разрушил устоявшийся было стереотип.

Shall или Will ??

Стоматологические мифы, в которые верят сами врачи

Reading time10 min
Views15K


У нас, бывает, стажируются студенты медицинских вузов, которые до этого работали в стационарах ОМС. И мы время от времени нанимаем врачей из клиник с технологическим уровнем ниже нашего, а потом некоторое время переучиваем. На мой взгляд, у отечественной медицины две серьёзные системные проблемы:

  1. Ориентация на KPI врача по выручке.
  2. Отсутствие целостного подхода к эффективности лечения.

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

Лечение по симптомам в стоматологии выглядит так: приходит пациент, у которого есть острая боль. Врач видит один случай кариеса и ещё ряд проблем, которые пока не болят, но дальше будут стоить ему половины челюсти. Боль убирается на первом приёме. А дальше у врача возникает сразу два морально-этических конфликта. Первый связан с тем, что пациент на его «участке», скорее всего, придёт лечить проблему к нему, поэтому если сейчас не говорить, проблема превратится в очевидную с чеком раза в 4 выше минимум. И пациента не надо будет уговаривать на эту сумму лечения. А вторая в том, что если пациенту неочевидно, зачем лечить то, что не болит прямо сейчас, то врач должен дать прогноз. Многим сложно разговаривать, многие понимают, что пациент без боли может и не поверить и пойдёт к другому врачу. В общем, отношения с ним подостынут, и добрым доктором вы для него быть перестанете, потому что он пришёл за простой пломбой, а вы ему про какой-то корень другого зуба. К такому врачу лучше не ходить больше.

В итоге возникает прямо устойчивая практика не говорить пациенту про потенциальные проблемы. В нашей биоэтике — это совершенно недопустимо.
Читать дальше →

Ростов-на-Дону: IT-компании, сообщества и мероприятия в 2021 году

Reading time8 min
Views6.3K

Привет, меня зовут Вадим и я всё ещё занимаюсь развитием ИТ-сообщества в Ростове. В 2021 у нас было много интересного — исследование ит-сообщества на 1500 человек, 70 митапов и самая большая на юге конференция с 1200 участниками и 50 спикерами со всей страны. Прошлые посты были посвящены городам — Ростову и Таганрогу. В этот раз хочу больше рассказать о мероприятиях и том, как встречается Ростовское ИТ-сообщество.

Поехали

Как правильно верстать в 2022 году. Часть 1

Reading time11 min
Views95K

Меня зовут Николай, я Frontend-разработчик IT-компании Relog. Хочу рассказать о самых распространённых ошибках в вёрстке современных проектов.

Дело в том, что лишь малая часть современных фронтендеров обращает внимание на работу с HTML и CSS, предпочитая готовые решения, вроде UI-библиотек и систем сеток. Но эти решения неидеальные и приходится дописывать обёртки вокруг них, видоизменять код, переписывать стили и совершать прочие действия для соответствия требованиям проекта. Тут-то и начинаются проблемы: вёрстка местами становится избыточной, стили переназначются через important и с каждым релизом проект всё сложней поддерживать. Я уже не говорю об удобстве использования и доступности. Об этом думают вообще в последнюю очередь.

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

Читать далее

Простые сайты снова в моде. Минимализм возвращается

Reading time8 min
Views47K


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

Такая ситуация напрягает и самих веб-разработчиков. Приходится тратить кучу времени на оптимизацию, тестирование новомодных фич в разных браузерах, осваивать сложные CMS. Зачем? На самом деле HTML и CSS — исключительно мощные инструменты, если ими умело пользоваться.
Читать дальше →

Инструкция для тех, кто решил что уже пора

Reading time10 min
Views183K

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

Начнем с плохих новостей. Да, на свете есть страны, в которых обсуждается тема "Зайцы охренели до такой степени, что жрут корм, оставленный для птиц" и все ждут выступление президента по этому поводу, потому что это самая серьезная проблема в стране. Но если мысль понаехать туда у тебя появилась только на прошлой неделе — это значит ты не занимался подготовкой предыдущие два года и, сори, тебе нужно заниматься подготовкой следующие два года. Может показаться что два года — это слишком и "мне то нужно завтра, какие два года". Но тут история такая: к началу текущей спецоперации ты уже не успел. У тебя есть шанс успеть к началу следующей. Воспользуешься ты им или нет - зависит только от тебя.

Опять же, я понимаю, что кто-то закончил языковую школу и при выступлении британской королевы подмечает стилистические ошибки ее английского, а кто-то консультировал Оракл при разработке HashMap и для них переезд — это вопрос желания, а не возможности. Но я говорю о неком "среднестатистическом случае", когда инглиш не флюент, а за плечами нет 10 лет опыта в аду.

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

Читать далее

Ирина — опенсорс русский голосовой помощник. Offline-ready

Reading time9 min
Views63K

- Ирина, таймер...
- Ставлю таймер на пять минут.

Вполне себе обыденная история из моего быта. Я таки сделал собственного автономного голосового помощника.

TL;DR> Ирина вполне неплохо работает дома 24x7.

Потребуется установить Python 3.5+ и зависимости через pip (немного знаний Python).

Скиллы "из коробки": таймер, погода, контроль медиа (громче/тише/дальше), контроль плеера MPC-HC, запуск медиа из папки, расписание ближайших электричек, "подбрось кубик/монетку".

Плагинами добавляются: другие скиллы, Text-to-Speech и Speech-to-Text движки.

Интересно? Поехали >

Инверсная кинематика в 3D

Reading time6 min
Views13K
В этом туториале я расскажу о том, как освоить инверсную кинематику в 3D: методику, позволяющую решить задачу перемещения манипулятора робота к определённой цели.

Об инверсной кинематике в 2D можно прочитать здесь:



Ссылка на скачивание всего пакета Unity находится в конце туториала.

Введение


В моём блоге часто повторяются некоторые темы: одной из них, без всяких сомнений, является инверсная кинематика. Я работал с этой восхитительной темой уже в двух сериях туториалов, в сумме составляющих 8 статей. Тем не менее, ещё многое можно написать об инверсной кинематике в контексте видеоигр.

Почему инверсная кинематика настолько интересна и сложна, что требует такого количества постов? Дело в том, что инверсная кинематика часто встречается не только в видеоиграх, но и в инженерном проектировании, а также в науке в целом. От проектирования манипуляторов роботов до понимания управления моторикой в человеческом мозге — во всём этом важную роль в том или ином виде играет инверсная кинематика.
Читать дальше →

Водород

Reading time14 min
Views54K

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

Шарики. Кажется, именно с них-то всё и началось.

Согласно советским открыткам, демонстрация должна была выглядеть как-то так:

Читать далее

Разработка стековой виртуальной машины и компилятора под неё (итог)

Reading time16 min
Views11K

Для завершения реализации компилятора потребовалось около месяца времени (вечерами), чтобы на практике познакомиться с такими темами как BNF (Backus Naur Form), Abstract Syntax Tree (AST), Symbol Table, способами генерации кода, разработки самого компилятора (front-end, back-end), а также модификации виртуальной машины CVM. Ранее с этими темами был не знаком, но благодаря комментаторам погрузился. Хоть затрагиваемых тем много, постараюсь рассказать очень лаконично. Но обо всём по порядку.

Читать далее

Интервью с создателем SQLite (часть 1): история создания SQLite и Консорциума, сотрудничество с Motorola, AOL и Nokia

Reading time8 min
Views14K

Адам: Привет и добро пожаловать в CoRecursive. Я Адам Гордон Белл. В каждом эпизоде ​​CoRecursive кто-то делится увлекательной историей создания собственного программного обеспечения.

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

Ричард: Привет, я Ричард Хипп — разработчик SQLite.

Адам: СУБД SQLite вы можете встретить где угодно: в веб-браузере, в вашем телефоне, возможно, в вашей машине и даже в авиалайнерах. SQLite используют для хранения ваших сообщений в iMessages и WhatsApp. Попробуйте поискать на своём девайсе файлы с расширением .db, и вы удивитесь, насколько много баз данных SQLite окажется на борту. 
Читать дальше →

Список ноотропов, покупка которых не окажется пустой тратой денег

Reading time5 min
Views310K

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

Читать далее

Что можно положить в тег <head>

Reading time14 min
Views35K

Рекомендуемый минимум

Ниже приведены основные элементы для любого веб-документа (веб-сайта/приложения):

meta charset — определяет кодировку веб-сайта, стандартом является utf-8.

meta name="viewport" — настройки viewport, связанные с мобильной отзывчивостью

width=device-width — физическая ширина устройства (отлично подходит для мобильных устройств!)

initial-scale=1 — начальный масштаб, 1 означает отсутствие масштабирования

Элементы

Допустимые элементы <head> включают meta, link, title, style, script, noscript и base.

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

Читать далее

Линейные двигатели внутреннего сгорания — в роли портативных источников энергии и не только

Reading time9 min
Views31K


Более 100 лет известен такой механизм, как двигатель внутреннего сгорания.

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

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

Как сделать самодельный электрический багги с мощным мотором. Часть 3. Тормоза, охлаждение, сидения, селектор, улица

Reading time3 min
Views22K

Всем привет.

Кто пропустил тему про саму идею, создание рамы и установку мотора, высоковольтной батареи и подвески https://habr.com/ru/post/551750/ часть 1

Установка колес, подключение электрики и модуля заряда PDM Nissan Leaf https://habr.com/ru/post/552888/ часть 2

Последний наш пост был 3 недели назад. За это время мы шагнули далеко вперед.

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

Сначала были установлены тормозные суппорта. Далее сделана разводка тормозных трубок и шлангов через блок АБС.

Читать далее

Information

Rating
8,033-rd
Registered
Activity

Specialization

1C Developer
Middle
From 170,000 ₽