В последнее время часто сравнивают CSS и JavaScript, споря о применении этих технологий для решения определённых задач. Споры становятся жарче по мере появления новых замечательных возможностей CSS, которые позволяют упростить решение множества задач и отказаться при этом от JS.
Пользователь
Как научиться разработке на Python: новый видеокурс Яндекса
6 мин
248KТуториал
Осенью прошлого года в московском офисе Яндекса прошла первая Школа бэкенд-разработки. Мы сняли занятия на видео и сегодня рады поделиться на Хабре полным видеокурсом Школы. Он позволит вам научиться промышленной разработке на Python. Авторы лекций — опытные разработчики в Яндексе. К каждому видео приложены ссылки на примеры и полезные материалы.
Для изучения курса нужно знать основы Python и понимать, как приложения развёртываются на серверах. Мы ждём, что вы умеете делать запросы к базам данных и знаете, как создаются веб‑приложения, — хотя бы на начальном уровне.
Для изучения курса нужно знать основы Python и понимать, как приложения развёртываются на серверах. Мы ждём, что вы умеете делать запросы к базам данных и знаете, как создаются веб‑приложения, — хотя бы на начальном уровне.
+70
Манифесты и карго-культы
3 мин
1.9KЗа пять лет в коммерческой разработке у меня накопился ряд претензий к манифестам. И я решил, что будет забавно сделать манифест на эту тему. Представляю вам:
Готовил его специально к 1 апреля. А теперь, хочу пригласить вас обсудить манифесты.
Манифест про манифесты
- В манифестах пишут очевидные вещи. Это одна из них.
- Предыдущий пункт — шутка про рекурсию.
- Прежде чем пользоваться советом из чужого манифеста, найди доказательства, что совет работает.
- Это касается и предыдущего пункта.
- Если в манифесте написано что-то правильное, это не означает что все пункты правильны.
- Если вы нашли в манифесте ошибку — он бесполезен.
- Предыдущий пункт — пример ошибки.
- Манифесты склонны становиться карго-культом.
- Добавьте по 1 очку культиста, за каждый непонятный вам пункт. Включая предыдущий и этот.
- Этот манифест подписали: Боб Мартин, Линус Товальдс и Дональд Кнут.
- Конечно, нет. Но если бы от этого манифест стал для вас более ценным, добавьте себе еще 2 очка культиста.
- Добавьте еще 5 очков.
- Если вы склонны объяснять вещи с конца и вас злит, что они не очевидны другим.
- Если вы не вели хотя-бы приблизительный подсчет очков, еще 3 очка штрафа.
- Посчитайте очки и сделайте выводы.
Готовил его специально к 1 апреля. А теперь, хочу пригласить вас обсудить манифесты.
+13
Применение принципов функционального программирования при проектировании ERP
13 мин
12KПривет, Хабр!
В этой статье мы попробуем взглянуть на архитектуру учетных систем (ERP, CRM, WMS, MES, B2B, ...) с позиций функционального программирования. Существующие системы сложны. Они базируются на реляционной схеме данных, и имеют огромный мутабельный стейт в виде сотен связаных таблиц. При этом единственным «источником правды» в таких системах является хронологически-упорядоченный журнал первичных документов (отпечатков событий реального мира), которые, очевидно, должны быть иммутабельными (и это правило соблюдается в аудируемых системах, где корректировки «задним числом» запрещены). Журнал документов составляет от силы 20% объема БД, а все остальное — промежуточные абстракции и агрегаты, с которыми удобно работать на языке SQL, но которые требуют постоянной синхронизации с документами, и между собой.
Если вернуться к истокам (устранить избыточность данных и отказаться от хранения агрегатов), а все бизнес-алгоритмы реализовать в виде функций, применяемых непосредственно к потоку первичных документов — мы получим функциональную СУБД, и построенную на ней функциональную ERP. Проблема производительности решается благодаря мемоизации, а объем функционального кода будет вполне соизмерим с объемом декларативного SQL, и не сложнее для понимания. В данной статье мы продемонстрируем подход, разработав простейшую файловую СУБД на языке TypeScript и рантайме Deno (аналог Node.js), а также протестируем производительность сверток на примере типичных бизнес-задач.
1) Мутабельный стейт + избыточность данных — это плохо, особенно когда необходимо обеспечивать его постоянную синхронизацию с потоком документов. Это источник потенциальных расхождений учетных данных (баланс не сходится) и трудно обнаруживаемых побочных эффектов.
В этой статье мы попробуем взглянуть на архитектуру учетных систем (ERP, CRM, WMS, MES, B2B, ...) с позиций функционального программирования. Существующие системы сложны. Они базируются на реляционной схеме данных, и имеют огромный мутабельный стейт в виде сотен связаных таблиц. При этом единственным «источником правды» в таких системах является хронологически-упорядоченный журнал первичных документов (отпечатков событий реального мира), которые, очевидно, должны быть иммутабельными (и это правило соблюдается в аудируемых системах, где корректировки «задним числом» запрещены). Журнал документов составляет от силы 20% объема БД, а все остальное — промежуточные абстракции и агрегаты, с которыми удобно работать на языке SQL, но которые требуют постоянной синхронизации с документами, и между собой.
Если вернуться к истокам (устранить избыточность данных и отказаться от хранения агрегатов), а все бизнес-алгоритмы реализовать в виде функций, применяемых непосредственно к потоку первичных документов — мы получим функциональную СУБД, и построенную на ней функциональную ERP. Проблема производительности решается благодаря мемоизации, а объем функционального кода будет вполне соизмерим с объемом декларативного SQL, и не сложнее для понимания. В данной статье мы продемонстрируем подход, разработав простейшую файловую СУБД на языке TypeScript и рантайме Deno (аналог Node.js), а также протестируем производительность сверток на примере типичных бизнес-задач.
Почему это актуально
1) Мутабельный стейт + избыточность данных — это плохо, особенно когда необходимо обеспечивать его постоянную синхронизацию с потоком документов. Это источник потенциальных расхождений учетных данных (баланс не сходится) и трудно обнаруживаемых побочных эффектов.
+22
Узнаем паспортные данные физического лица по ФИО (если есть залоговое имущество)
1 мин
474KА так же узнаем ФИО и паспортные данные по номеру автомобиля если он взят в кредит.
Без регистрации и СМС.
Без регистрации и СМС.
+94
С чего начать изучение Python: книги для начинающих
4 мин
249KДрузья, забирайте в закладки подборку из 17 книг по Python.
Подборка поможет вам освоить язык программирования с нуля или с минимальными знаниями.
Готовы приступить к изучению Python?
Тогда начнем!
+21
Нейросеть с амёбой решили задачу коммивояжера для 8 городов
3 мин
27KРешения задачи коммивояжера, полученные вычислительной системой на основе амёбы. Примеры туров коммивояжёра по четырём, пяти, шести, семи и восьми городам, полученные в экспериментах, где каждый тур окрашен в красный цвет на соответствующих каналах с правого рисунка. Левые панели показывают переданные светлые изображения начальных состояний (
Группа японских исследователей из Университета Кейо в Токио продемонстрировала, что амёба способна генерировать приближённые решения удивительно сложной математической задачи, известной как задача коммивояжера.
+20
Как ИП сэкономить на налогах в 13,3 раз
7 мин
63KЕсли вы не торопитесь легализовать свою предпринимательскую деятельность только потому, что налоги ИП кажутся вам неподъемным бременем, то вы просто не умеете их готовить. Разобраться в основных нюансах систем налогообложения стоит уже ради экономии собственных денег. А сэкономленные деньги, как известно, ничуть не хуже заработанных. Так что, немного терпения, и вы станете чуть-чуть богаче.
+14
Практическое использование нейросетей
5 мин
16KRecovery Mode
Наверняка многие помнят 4 серию 4-го сезона Кремниевой Долины, вышедшую в прошлом году, в которой Дзанг Янг запилил приложение Not HotDog.
Как оказалось на самом деле, это было реальное приложение, которое сделало HBO специально для этой серии и об этом Хабр уже писал.
Ну а мы расскажем как сделали бота для определения не только хотдогов, но и множества других предметов, а также для определения пола и возраста людей по фотографии.
+13
Обнаружен универсальный метод сортировки сложной информации
7 мин
22KПеревод
Открывая своё кафе, вы хотели бы узнать ответ на следующий вопрос: «где находится другое, ближайшее к этой точке кафе?» Эта информация помогла бы вам лучше понять ваших конкурентов.
Это пример задачи поиска "ближайшего соседа", которую широко изучают в информатике. Дан набор сведений и новая точка, и требуется найти, к какой точке из уже существующих она окажется ближайшей? Такой вопрос возникает во множестве повседневных ситуаций в таких областях, как исследование генома, поиск картинок и рекомендации на Spotify.
Но, в отличие от примера с кафе, вопросы о ближайшем соседе часто оказываются очень сложными. За последние несколько десятилетий величайшие умы среди специалистов по информатике брались за поиски наилучших способов решения подобной задачи. В частности, они пытались справиться с усложнениями, появляющимися из-за того, что в различных наборах данных могут быть очень разные определения «близости» точек друг к другу.
+31
Двойная бюстгалтерия* глазами программиста
8 мин
42KТуториал
Большинство из нас сталкивались с бухгалтерами. Многим их терминология кажется китайской грамотой, как для гуманитария обратная польская запись. Однако разобравшись, понимаешь насколько это удобный и мощный инструмент.
Статья не академическая, а отражает сугубо мой упрощенный взгляд, и для тех кто уже осилил академические статьи — будет неинтересной. Тех же кому интересно понять такой простой и мощный инструмент как «двойная запись» — прошу под кат.
+35
Питерский фотограф сравнил пассажиров метро с их профилями «ВКонтакте»
1 мин
88K21-летний фотограф из Санкт-Петербурга Егор Цветков провёл интересную фотосессию Your Face Is Big Data. Проехав в подземке, он фотографировал пассажиров, а затем с помощью бесплатного сервиса FindFace находил профиль пользователя в социальной сети «ВКонтакте» по его фотографии.
Своим проектом Егор хотел показать «конец анонимности», что в современную эпоху нужно аккуратнее относиться к личным фотографиями и закрывать доступ посторонним к своему профилю.
+35
Как новые руководители разрушают доверенные им компании
26 мин
400KЭта статья – о рисках смены руководства в больших компаниях и характерных явлениях при попытках игнорировать закон эффективного управления собственностью:
Эффективно управлять можно только той собственностью, которую мог бы создать сам.Картинка для привлечения внимания читателей из поколений Y и Z:
Кто не может создать, – будет только разрушать!
И.А. Дедюхова, Кодекс Хамурапи
Краткое содержание
Новый директор себе в подчиненные и советники пригласит своих «проверенных людей». Увеличение штата топ-менеджеров в условиях фиксированного ФОТ повлечет за собой сокращение рядовых сотрудников на значительный процент.
Новый директор в первую очередь будет сокращать те подразделения, работу которых он не понимает. Под прессом психологического давления руководители этих подразделений возмут на себя обязательства самостоятельно разработать планы по сокращению и принять на себя все риски их реализации.
Сокращения пройдут под флагом повышения эффективности, но для «непонятных директору» подразделений не смогут сформулировать критерии этой эффективности, кроме «минимизации затрат». Цель по минимизации затрат без дополнительных обоснованных ограничений – это цель по уничтожению, и не имеет отношения к настоящей оптимизации.
Отсекая непонятные ему части компании (выводя в аутсорс и т.п.), директор попытается превратить компанию в ту, работу которой он полностью способен понять, которой он в полной мере способен управлять.
Проблему нехватки знаний в технической области новый директор и его команда компенсируют «помощью» от западных консалтинговых компаний. Это приведет к ситуации внешнего управления, причем без всякой ответственности за диктуемые извне решения.
Внешняя и внутренняя отчетность о работе компании до самого конца не будет показывать никаких признаков проблем, т.к. тому, кто принес плохие вести не выдают премию, а рубят голову.
+33
Информация
- В рейтинге
- Не участвует
- Зарегистрирован
- Активность