К старту курса о разработке на C# делимся переводом статьи о типичных ошибках программирования на C# от Кристофа Насарре — технического рецензента книг Microsoft Press в целом и, конечно, книги CLR via C# в частности. Кроме того, Кристоф Насарре — один из авторов книги Windows via C++.
Все потоки
- Новые
- Лучшие
- Все
- ≥0
- ≥10
- ≥25
- ≥50
- ≥100
Новости
Что если изменить систему единиц времени? Это жестко?
Официальный сайт движения за изменение системы единиц времени:
Здесь я подробно напишу на русском языке объяснение.
Что происходит в сфере аудиочатов и есть ли у них будущее
Следом за Clubhouse на рынок аудиосоцсетей вышли конкуренты, в том числе крупные технологические компании. Кто-то cкопировал функциональность «клубного дома», а кто-то — привнес новые решения. Обсудим такие идеи и поговорим о сложностях, которые стоят перед разработчиками аудиоприложений.
Шпаргалка по метрикам производительности cURL: как измерить задержку сервера
Эту шпаргалку я написал в первую очередь, потому что был несколько озадачен, когда в течение более, чем 10 минут пытался найти в Google значение
time_pretransfer
. Попробуйте сами, я подожду. Это настоящая загадка!Автоматизация учёта в 1С
В один из суетливых дней на пороге отдела разработки появился технический директор с горящими глазами и предложением нового проекта, который нужно разработать и внедрить. Желательно не «через год», а в разумные сроки.
По результатам обсуждений собрали основной бриф:
Что нам стоит ЦОД построить: необычные места для размещения дата-центров
С каждым годом растет объем информации, генерируемой человечеством. Ее нужно как-то обрабатывать, хранить, анализировать. А значит, нужны центры обработки данных, которых тоже становится все больше. Их строят повсюду, причем не только на суше, но и на воде, в виде плавучих платформ. Есть даже подводные ЦОД, хотя они пока что работают в качестве тестовых объектов.
Все дата-центры объединяет одно — им нужны вода, электричество, сетевая инфраструктура и прочие ресурсы. Поэтому строить ЦОД можно далеко не везде. В некоторых случаях в качестве строительства выбирают места, где уже есть какие-то сооружения, их модифицируют и размещают внутри оборудование. Либо же комбинируют системы дата-центра с другими системами — например, заводов, фабрик, ферм. Вот о таких объектах сегодня и поговорим.
Кунг-фу стиля Linux: базы данных — это файловые системы нового уровня
Меня, если говорить о накопителях данных, удивляет то, что понятие «файловая система», в том виде, в котором мы его знаем, за годы его существования изменилось не слишком сильно. Конечно, если сравнить то, что есть сейчас, с тем, что было, скажем, в 1960-е годы, то можно сказать, что в наши дни файловые системы дают нам гораздо более широкий функционал, чем прежде. В наши дни всё гораздо лучше в плане скорости, способов кодирования, шифрования, сжатия данных и так далее. Однако фундаментальная природа того, как мы храним файлы, и того, как с ними работаем в компьютерных программах, практически не изменилась. А всё должно быть не так. Нам известны более эффективные способы организации данных, но по каким-то причинам большинство из нас не пользуется этими возможностями в своих программах. Оказывается, правда, что пользоваться ими достаточно просто, и я собираюсь это продемонстрировать на экспериментальном приложении, которое вполне может стать отправной точкой разработки базы данных электронных компонентов для моей лаборатории.
Еще 5 причин выбрать Apache Pulsar вместо Apache Kafka
Под катом — перевод статьи-сравнения Apache Pulsar и Apache Kafka. Статья в некоторой степени рекламная, т.к. написана заинтересованным лицом, но как минимум, возбуждает интерес копнуть глубже. Поехали.
Переведено @middle_java
Как построить свой самолет со своим двигателем на сверхпроводниках и жидким азотом
Подсказка: сделать все маленьким.
Вступление
Всем привет. По образованию я инженер по эксплуатации летательных аппаратов и авиационных двигателей, но в данной статье я опишу как сделал небольшой электродвигатель на сверх проводниках и поэтому мое вступление прошу принять как оправдание к тому, что в разработке и изготовлении электродвигателей я не обладаю достаточной компетенцией и опытом, но все-же я его сделал.
Python кодогенерация на благо ETL
В процессе разработки весьма часто встаёт задача преобразования данных, будь то данные от внешнего источника на пути в базу или данные из базы на пути в отчеты и т.п.
Если описывать все необходимые преобразования императивно, то можно довольно скоро загрустить. Можно постараться и сделать всё декларативно, скажем, в виде некоторых dict
-ов, в которых задать правила (функции?) по работе с каждым отдельным полем. Но уже на этом этапе появляется несколько проблем (поговорим о них ниже).
Альтернатива: в функциональном стиле динамически задаются конверсии, из них строятся pipeline-ы, далее конверсии генерируют ad-hoc код функций, реализующих заданное преобразование, используя библиотеку convtools.
На выходе получаются функции, лишенные излишнего динамизма, который нужен только на этапе чтения кода + ради DRY-принципа.
Межсетевой прокси: Доступ в Интернет, Tor, I2P и другие сети через Yggdrasil
Путешествуя по обычному интернету мы не задумываемся над доменными зонами: ru, com, org и так далее, потому что все они открываются одинаково. Однако, настроив браузер для открытия сайта в сети I2P, вы не откроете onion-домен из сети Tor. Для этого нужно будет сменить настройки прокси-сервера. Поковырявшись с конфигами, вы сможете упростить эту задачу, но, если добавить сюда еще сеть Yggdrasil, тема сильно усложнится. Таким образом настройки вашего браузера будут неизменно усложняться, тем самым создавая поле для потенциальных утечек запросов с вашего настоящего IP-адреса на сомнительные ресурсы. И это при условии, что программы для доступа во все названные сети должны быть установлены на каждое из ваших устройств, где вы хотите ими пользоваться.
В этой статье рассмотрим настройку межсетевого прокси-сервера, который нужно настроить всего лишь один раз и затем использовать с любых устройств, переходя от сайта в одной сети на ресурс в другой скрытой сети вообще не задумываясь о дополнительных настройках браузера или чего-то еще.
Docker для Data Scientist'a
Часто у начинающих Data Scientists возникает вопрос, как демонстрировать работу своих моделей другим людям. Банальный пример - прикрепить ссылку на гитхаб репозиторий в отклике на вакансию или показать свое “детище” знакомым со словами “смотрите, что умею”.
Почему я «мучаюсь» с JS
Я не знаю TypeScript, поэтому и пишу эту статью. У меня есть некоторый опыт программирования на Java и PHP и этот опыт заставляет меня кодировать на JavaScript'е соответствующим образом. К последней моей статье коммент от коллеги Silverthorne был такой:
export default class TeqFw_Http2_Back_Server { constructor(spec) { // EXTRACT DEPS /** @type {Function|TeqFw_Http2_Back_Server_Stream.action} */ const process = spec['TeqFw_Http2_Back_Server_Stream$']; /** @type {TeqFw_Web_Back_Handler_Registry} */ const registryHndl = spec['TeqFw_Web_Back_Handler_Registry$'];
зачем все это, когда есть TypeScript?
В ответном комменте я попросил от него продемонстрировать TS-код, который делает то же самое. Он не ответил. Я добавил коммент с просьбой, чтобы кто-угодно продемонстрировал TS-код, который делает то же самое. Ничего. И вот я пишу уже статью с аналогичной просьбой.
Не нервничай
Какая одна из самых основных задач бизнес-аналитика? Сделать так, чтобы все стейкхолдеры проекта слышали друг друга и говорили на одном языке, ведь именно от этого зависит, поймет ли команда потребности бизнеса и сможет предложить оптимальное решение. Поэтому, навыки эффективной коммуникации крайне важны - а особенно, умение снизить уровень эмоционального напряжения, чтобы перевести любые переговоры в благоприятное русло.
Говорите длиннее: история процессоров компании Transmeta
Когда 19 января 2000 года, общественности был представлен новый процессор Transmeta Crusoe (странно, но презентация прошла в среду, а не в пятницу), разнообразные, порой неправдоподобные, слухи о компании ходили вот уже почти два с половиной года — с тех пор, как появился ее сайт с чистой главной страницей и заголовком «Not yet the Transmeta home page». За пару месяцев до релиза, на странице начали появляться намеки на предстоящую презентацию, но они лишь подогревали слухи…
Сама же компания была основана еще в 1995 году и с тех самых пор в атмосфере строжайшей секретности разрабатывала процессор будущего. Быстрый, холодный и удивительный. Он должен был составить конкуренцию грандам — Intel и AMD. Он должен был быть полностью совместим с ними, имея при этом внутри устройство, совершенно иное от соперников.
Объектно-ориентированное программирование на Си без плюсов. Часть 2. Таймер
Время это одно из измерений окружающего нас мира, а любая определяемая сущность или находится (условно) в состоянии покоя, или изменяет своё состояние в течение времени. И, естественно если нет возможности контроля времени, что-то существенное сварганить не получится. Поэтому первое, что должно быть - это решение в виде таймера.
Для Linux в Си в настоящее время есть следующие функции:
unsigned int sleep(unsigned int __seconds); ,
объявленная в файле <unistd.h> и
int nanosleep(const struct timespec *req, struct timespec *rem); ,
объявленная в файле <time.h>
Обе выполняют одну задачу, приостанавливают работу потока в котором была вызвана функция на заданное время, поэтому с данными функциями очевидным является простое решение (как говорится «решение в лоб») выделить для таймера отдельный поток.
Есть ещё функция clock_nanosleep(), можно включить режимы SHED_FIFO или SCHED_RR для более точной работы, всё это конечно хорошо, но я решил ограничиться только выше указанными.
Таймер должен соответствовать следующим требования: должен минимально потреблять вычислительные ресурсы, должен мгновенно включаться/выключаться, при этом сбрасывать своё состояние и обязательно быть достаточно точным.
Для начала я разберу пару решений которые конечно будут работать, отмечу их плюсы и минусы, но так делать не надо! А в конце покажу решение которое меня в принципе полностью удовлетворяет, реализовано в рамках правил определённого ранее шаблона и надеюсь может быть использовано в дальнейших проектах.
Как использовать IndexDB для управления состоянием в JavaScript
Эта статья — перевод оригинальной статьи Craig Buckler "How to Use IndexDB to Manage State in JavaScript".
В этой статье объясняется, как использовать IndexedDB для хранения состояния в типичном клиентском приложении на JavaScript.
Код доступен на Github. Он представляет собой пример to-do приложения, которое вы можете использовать или адаптировать для своих собственных проектов.
ИИ в качестве актера озвучки звучит очень по-человечески. И цифровых агентов уже можно нанять
Голосовые агенты становятся все более совершенными. Мы уже рассказывали о том, насколько хорошо они понимают собеседника-человека и способны воспроизводить речь. Использовать цифровых агентов можно не только в качестве «сотрудника» колл-центра, но и в качестве актеров озвучки/дубляжа. Хороший пример — работа компании WellSaid Labs, о которой и рассказывается в этой статье.
Компания WellSaid Labs на своем сайте уведомляет посетителей, что у нее в запасе «восемь новых цифровых актеров озвучки». Тобин «энергичен и проницателен». Пейдж «уравновешенна и выразительна». Ава «отточенная, уверенная в себе и профессиональная».
Каждый цифровой агент использует голос реального актера, конечно, с согласия последнего. Теперь компании могут лицензировать эти голоса, чтобы рассказывать обо всем, что нужно бизнесу. Они просто вводят текст в голосовой движок, и на выходе получается четкий аудиоклип с естественным звучанием.
Проигрыватели винила до двадцати тысяч рублей — три избранные модели
В прошлый раз мы рассмотрели три бюджетные «вертушки» для начинающих: AT-LP60X USB, Pro-Ject Primary и необычную Marley Stir it Up. Продолжаем двигаться в сторону чуть более дорогостоящей аудиотехники и смотрим, какие еще доступные проигрыватели могут предложить такие бренды как TEAC, Pro-Ject и Lenco.
Blender, 1001 мелочь
Продолжение разбора приёмов работы с пакетом трёхмерной графики Blender версии 2.79. На этот раз речь пойдёт о материалах в Cycles и о том, как отрендерить итоговую картинку.