Добрый день! В первой части я рассказывал о том, как получал визу и искал жилье, а в этой расскажу, как найти работу в Германии и как это делал я. Забегая вперед, скажу, что в Берлине мне потребовалась 10 дней, чтобы получить первый оффер, который я в итоге и принял. Но приготовления были, конечно, более длительными.
Сергей @Zenker
Пользователь
Почему в России почти нет гражданского/коммерческого высокотехнологичного производства?
27 мин
408KСтатью с обзором ситуации с микроэлектроникой в России я закончил утверждением, что сейчас в России есть технические возможности для создания любых военных микросхем (если не считаться с ценой). Однако и в комментариях к той статье, и во многих других — всех больше волновал вопрос отсутствия (на уровне погрешности измерений) производства чисто-коммерческих (гражданских) высокотехнологичных продуктов. Этот вопрос волновал и меня, потому я постоянно мучил вопросами всех, кто так или иначе связан с высокими технологиями и бизнесом в России.
Ответ на него важен, если вы сами хотите создать конкурентный высокотехнологичный продукт — чтобы не потратить лучшие годы жизни в изначально неравных условиях.
Под катом попробуем разобраться чем отличаются «высокотехнологичные» компании от «низкотехнологичных», что нужно, чтобы высокотехнологичные компании могли рождаться и выживать, почему с софтом у нас лучше, чем с хардом, с чего начиналась кремниевая долина в США и можно ли её «скопировать», почему Китай всех рвет, а также — окинем взором все, что происходит в Сколково, Роснано, фонде перспективных исследований и приведут ли они к расцвету российских инноваций. Безусловно, я где-то могу ошибаться — буду рад дополнениям в комментариях.
Сразу нужно отметить, что в связи с многогранностью проблемы объем статьи получился довольно большой, так что можно начать читать с резюме в конце, и затем прочитать лишь те разделы, которые вызовут интерес. Сразу хочу предупредить — повествование «нелинейное», соседние заголовки могут описывать разные аспекты проблемы и быть друг с другом практически не связанными.
Ответ на него важен, если вы сами хотите создать конкурентный высокотехнологичный продукт — чтобы не потратить лучшие годы жизни в изначально неравных условиях.
Под катом попробуем разобраться чем отличаются «высокотехнологичные» компании от «низкотехнологичных», что нужно, чтобы высокотехнологичные компании могли рождаться и выживать, почему с софтом у нас лучше, чем с хардом, с чего начиналась кремниевая долина в США и можно ли её «скопировать», почему Китай всех рвет, а также — окинем взором все, что происходит в Сколково, Роснано, фонде перспективных исследований и приведут ли они к расцвету российских инноваций. Безусловно, я где-то могу ошибаться — буду рад дополнениям в комментариях.
Сразу нужно отметить, что в связи с многогранностью проблемы объем статьи получился довольно большой, так что можно начать читать с резюме в конце, и затем прочитать лишь те разделы, которые вызовут интерес. Сразу хочу предупредить — повествование «нелинейное», соседние заголовки могут описывать разные аспекты проблемы и быть друг с другом практически не связанными.
+371
DIY порошок для посудомойки: разбираем промышленные средства и улучшаем рецепт
11 мин
125KВнимание! В рецепте с отбеливателем обнаружилась опасность коррозии металла! Не рекомендуется в стандартном применении!
Обзор экспериментов год спустя:
DIY порошок для посудомойки: как не растворить посуду и не повторить моих ошибок. Год экспериментов
В прошлой публикации мы создавали дешевый порошок для посудомойки из
+123
Коллекции в Java: о чём многие забывают
6 мин
141KТуториал
Из опыта code-review и ответов на StackOverflow набралось немало моментов, касающихся Java Collections API, которые мне казались очевидными, но другие разработчики о них почему-то не знали или знали, но не чувствовали уверенности их применять. В этой статье я собираю в общую кучу всё, что накопилось.
Содержание:
- List.subList
- PriorityQueue
- EnumSet и EnumMap
- Set.add(E) и Set.remove(E) возвращают булево значение
- Map.put(K, V), Map.remove(K), List.set(idx, E), List.remove(idx) возвращают предыдущий элемент
- Map.keySet() и Map.values()
- Arrays.asList может быть ключом
- Collections.max
- LinkedList, Stack, Vector, Hashtable
+56
Нейросеть на Python, часть 2: градиентный спуск
16 мин
59KПеревод
Часть 1
В первой части я описал основные принципы обратного распространения в простой нейросети. Сеть позволила нам померить, каким образом каждый из весов сети вносит свой вклад в ошибку. И это позволило нам менять веса при помощи другого алгоритма — градиентного спуска.
Суть происходящего в том, что обратное распространение не вносит в работу сети оптимизацию. Оно перемещает неверную информацию с конца сети на все веса внутри, чтобы другой алгоритм уже смог оптимизировать эти веса так, чтобы они соответствовали нашим данным. Но в принципе, у нас в изобилии присутствуют и другие методы нелинейной оптимизации, которые мы можем использовать с обратным распространением:
Давай сразу код!
import numpy as np
X = np.array([ [0,0,1],[0,1,1],[1,0,1],[1,1,1] ])
y = np.array([[0,1,1,0]]).T
alpha,hidden_dim = (0.5,4)
synapse_0 = 2*np.random.random((3,hidden_dim)) - 1
synapse_1 = 2*np.random.random((hidden_dim,1)) - 1
for j in xrange(60000):
layer_1 = 1/(1+np.exp(-(np.dot(X,synapse_0))))
layer_2 = 1/(1+np.exp(-(np.dot(layer_1,synapse_1))))
layer_2_delta = (layer_2 - y)*(layer_2*(1-layer_2))
layer_1_delta = layer_2_delta.dot(synapse_1.T) * (layer_1 * (1-layer_1))
synapse_1 -= (alpha * layer_1.T.dot(layer_2_delta))
synapse_0 -= (alpha * X.T.dot(layer_1_delta))
Часть 1: Оптимизация
В первой части я описал основные принципы обратного распространения в простой нейросети. Сеть позволила нам померить, каким образом каждый из весов сети вносит свой вклад в ошибку. И это позволило нам менять веса при помощи другого алгоритма — градиентного спуска.
Суть происходящего в том, что обратное распространение не вносит в работу сети оптимизацию. Оно перемещает неверную информацию с конца сети на все веса внутри, чтобы другой алгоритм уже смог оптимизировать эти веса так, чтобы они соответствовали нашим данным. Но в принципе, у нас в изобилии присутствуют и другие методы нелинейной оптимизации, которые мы можем использовать с обратным распространением:
+23
Трюки, облегчающие жизнь в zsh
11 мин
25KZsh — одна из лучших командных оболочек, обладающая впечатляющим набором возможностей. Однако, из‐за большого количества возможностей нет ничего удивительного в том, что некоторые из них проходят мимо внимания или возможность их применения для решения повседневных задач неочевидна. В этой статье будут рассмотрены как несколько «встроенных» возможностей zsh, так и примеры непростого кода, облегчающие жизнь.
Содержание
1. Использование READNULLCMD
2. Вставка открывающих и закрывающих скобок
3. Глобальные alias’ы
4. Возврат настроек терминала
5. Функция zmv
6. Запуск mpv с автоматически найденными субтитрами
7. Создание команд с автоматическим экранированием аргументов
8. Автоматическое исключение файлов из glob’ов
2. Вставка открывающих и закрывающих скобок
3. Глобальные alias’ы
4. Возврат настроек терминала
5. Функция zmv
6. Запуск mpv с автоматически найденными субтитрами
7. Создание команд с автоматическим экранированием аргументов
8. Автоматическое исключение файлов из glob’ов
+22
Установка ROS на Raspberry Pi
7 мин
28KЯ уже писал ранее об установке rosserial_arduino для взаимодействия микроконтроллера Arduino с роботической платформой ROS в предыдущей статье. rosserial_arduino является пакетом стека rosserial, разработанного для платформы ROS, и “превращает” плату Arduino в самостоятельный узел ROS, с которым могут взаимодействовать другие компоненты системы. При использовании Arduino для робототехнических проектов существует одно существенное ограничение: Arduino не может быть использован как полноценный вычислительный узел, который может обрабатывать все операции, требуемые для нормального функционирования робота. Например, на нем нельзя запускать скрипты OpenCV для задач компьтерного зрения. В данной статье я хочу рассказать о своем опыте установки системы ROS и подключении Arduino к микрокомпьютеру Raspberry Pi с использованием уже знакомого пакета rosserial_arduino.
+9
Пудра для мозга или как сделать порошок для посудомойки в 9,7 раз дешевле
11 мин
285KТуториал
Update
Новый вариант порошка и более подробный разбор во второй части: DIY порошок для посудомойки: разбираем промышленные средства и улучшаем рецепт
Сейчас расскажу, как из соды и стирального порошка сделать порошок для посудомоечной машины. Такой же по составу, только дешевле на порядок.
Есть очень много областей нашей жизни, где наше представление формирует исключительно маркетинговый буллшит. Увы, большинство людей даже не пытаются задумываться о том, что лежит в основе всего этого. Очень часто рыночная ситуация приводит к тому, что себестоимость продукта составляет 0.5% от его цены. Остальное маркетинг, наценки, логистика, упаковка и тому подобное. Почти все в курсе про концепцию продажи чернил для принтера по цене слез гималайских девственниц и настойчивые рекомендации производителей использовать только оригинальные расходные материалы. Например, совсем недавно меня озарило, что 1.5 грамма сухого вещества во флаконе удобрений для растений не могут стоить 200-250 рублей. А ведь именно такое количество может уместиться в относительно стабильном состоянии в виде раствора. Я сразу представил себе гектары полей и грузовики, которые везут тонны порошка. В результате перешел на расфасовки по 1 кг Буйских комплексных сухих удобрений. Можно ванну раствора приготовить.
Сегодня будем создавать ультра-дешевый порошок для посудомойки. Уменьшение реальной зарплаты и удорожание импортной бытовой химии заставило перерыть учебники, просмотреть кучу материалов с форумов химиков и попытаться найти способы экономии на расходниках. Очень уж ощутимо стал стоить порошок. Результаты вдумчивого исследования и экспериментов сильно удивили. Для промышленного применения чаще всего химиками-технологами создаются индивидуальные рецептуры в зависимости от качества воды и задач. Почему бы нам не попробовать разобраться во всем этом?
TLDR:
70% прокаленной соды и 30% стирального порошка вместо моющего средства.
Если очень лень возиться с содой, то просто порошок Биолан или его аналоги. Сода удешевляет.
Пищевая соль «Экстра» вместо соли.
+157
Радиационная опасность: реакторы деления против реакторов синтеза
9 мин
51KЭто симпатичное синее свечение Вавилова-Черенкова — единственная возможность для человека напрямую ощутить (в данном случае — увидеть) радиацию. К сожалению, наши органы чувств ничего не скажут нам, даже если мы попадем под удар ионизирующего излучения, которое убивает за минуту. Радиационная опасность АЭС стала частью современной культуры, на которой играет множество конкурентов ядерной энергетики — и идеологи термоядерных программ не остаются в стороне, обещая “чистую”, лишенную радиации, энергетику.
+84
Часть 4.2 Возвращаем зрение. От очков до эксимерного лазера
11 мин
250KПацаны, есть лазер. Он вгрызается в ваш глаз. Но раньше, чтобы лазер мог начать работу, надо было аккуратно зачистить глаз скальпелем. Скальпель со временем становился меньше, а лазер — круче. Поэтому давайте посмотрим на эволюцию методов.
Эпиграф от Milfgard
Заключительная часть цикла, посвященная непосредственно оставшимся методам коррекции зрения. В этой части мы рассмотрим ортокератологию, все варианты лазерной коррекции зрения, замену хрусталика и несколько других методов. Если вы не читали цикл с самого начала, я очень рекомендую ознакомиться с частями 2 и 4.1, в которых подробно рассматриваются те проблемы, с которыми сталкивается современный офтальмохирург. В этой статье я постараюсь развеять уже поднадоевший страх, связанный с фильмом «Пункт назначения 4» и сошедшим с ума лазером. Также я постараюсь ответить на заданные вопросы читателей, как и обещал.
Предыдущие части
Часть 1. Unboxing VisuMax — фемто-лазера для коррекции зрения
Часть 2. Сколько мегабит/с можно пропустить через зрительный нерв и какое разрешение у сетчатки? Немного теории
Часть 3. Знакомьтесь — лазер по имени Amaris. Переезды и первое пробуждение VisuMax
Часть 4.1 Возвращаем зрение. От очков до эксимерного лазера
+161
«Парадокс инспекции» встречается повсюду
3 мин
46KМногим известен так называемый «парадокс дружбы» (friendship paradox) в социальных сетях, впервые упомянутый в научной работе 1991 года, когда социальные сети были только в офлайне. Этот парадокс применим и к современным социальным сетям в интернете.
Если взять любого пользователя Facebook и случайным образом выбрать любого из его друзей, то с вероятностью 80% у друга будет больше «френдов». Люди, которые плохо знакомы с математической статистикой, очень огорчает тот факт, что почти все френды более «успешны» в общении, чем они сами. Но здесь нет причины для депрессии: так и должно быть, в соответствии с наукой и здравым смыслом.
Парадокс дружбы — одна из форм «парадокса инспекции» (Inspection Paradox), который встречается буквально повсюду и частенько вводит в заблуждение обывателей.
Если взять любого пользователя Facebook и случайным образом выбрать любого из его друзей, то с вероятностью 80% у друга будет больше «френдов». Люди, которые плохо знакомы с математической статистикой, очень огорчает тот факт, что почти все френды более «успешны» в общении, чем они сами. Но здесь нет причины для депрессии: так и должно быть, в соответствии с наукой и здравым смыслом.
Парадокс дружбы — одна из форм «парадокса инспекции» (Inspection Paradox), который встречается буквально повсюду и частенько вводит в заблуждение обывателей.
+65
Управление логгированием в systemd
12 мин
119KТуториал
Демон инициализации systemd де-факто уже стал стандартом в современных Linux-системах. На него перешли многие популярные дистрибутивы: Debian, RHEL/CentOS, Ubuntu (начиная с версии 15.04). В systemd используется принципиально иной (по сравнению с традиционным инструментом syslog) подход к логгированию.
В его основе лежит централизация: специализированный компонент journal cобирает все системные сообщения (сообщения ядра, различных служб и приложений). При этом специально настраивать отправку логов не нужно: приложения могут просто писать в stdout и stderr, a journal сохранит эти сообщения автоматически. Работа в таком режиме возможна и с Upstart, но он сохраняет все логи в отдельный файл, тогда как systemd сохраняет их в бинарной базе, что существенно упрощает систематизацию и поиск.
Хранение логов в бинарных файлах также позволяет избежать сложностей с использованием парсеров для разных видов логов. При необходимости логи можно без проблем переконвертировать в другие форматы (более подробно об этом будет рассказано ниже).
Journal может работать как совместно с syslog, так и полностью заменить его.
Для просмотра логов используется утилита journalctl. Об особенностях и тонкостях работы с ней мы расскажем в этой статье.
+38
В погоне за самим собой, или отличный способ начать свой день
3 мин
20KПеревод
Перевод поста Mariusz Jankowski "A Rat Race, or a Great Way to Start the Day".
Код, приведенный в статье, можно скачать здесь.
Выражаю огромную благодарность Кириллу Гузенко KirillGuzenko за помощь в переводе.
Не так давно, когда бушевала зима, расчищая подъезд к дому от завалов снега, я решил вспомнить о хорошей погоде, рассмотрев с использованием Wolfram Language свой велосипедный маршрут на работу.
В прошлом году я решил заняться такой весьма распространённой деятельностью, как запись данных своей активности. Я отметил, что за последние несколько лет мои поездки становились все быстрее и давались мне проще по мере того, как сезон приближался к концу, так что мне стало интересно удостовериться в наличии подобных улучшений своей физической формы. Используя лишь смартфон и соответствующее приложение, я записал 27 поездок между домом и работой, а затем использовал Wolfram Language для чтения, анализа и визуализации результатов.
Вот изображение с Google Earth, показывающее мой утренний велосипедный маршрут, имеющий расстояние чуть меньше 18 км, пролегающий с востока на запад.
+9
10+ советов по написанию быстрого кода в Mathematica
9 мин
26KТуториал
Перевод
Перевод поста Джона Маклуна (Jon McLoone) "10 Tips for Writing Fast Mathematica Code".
Выражаю огромную благодарность Кириллу Гузенко KirillGuzenko за помощь в переводе.
Пост Джона Маклуна рассказывает о распространенных приемах ускорения кода, написанного на языке Wolfram Language. Для тех, кто заинтересуется этим вопросом мы рекомендуем ознакомиться с видео «Оптимизация кода в Wolfram Mathematica», из которого вы подробно и на множестве интересных примеров узнаете о приемах оптимизации кода, как рассмотренных в статье (но более детально), так и других.
Когда люди говорят мне, что Mathematica недостаточно быстро работает, обычно я прошу посмотреть код и часто обнаруживаю, что проблема не в производительности Mathematica, а в её не оптимальном использовании. Я хотел бы поделиться списком тех вещей, на которые я обращаю внимание в первую очередь при попытке оптимизировать код в Mathematica.
Самая распространённая ошибка, которую я замечаю, когда разбираюсь с медленным кодом — задание слишком высокой точности для данной задачи. Да, неуместное использование точной символьной арифметики — самый распространенный случай.
У большинства вычислительных программных систем нет такого понятия, как точная арифметика — для них 1/3 это то же самое, что и 0,33333333333333. Это различие может играть большую роль, когда вы сталкиваетесь со сложными и неустойчивыми задачами, однако для большинства задач числа с плавающей точкой вполне удовлетворяют нуждам, и что важно — вычисления с ними проходят значительно быстрее. В Mathematica любое число с точкой и с менее чем 16 цифрами автоматически обрабатывается с машинной точностью, потому всегда следует использовать десятичную точку, если в данной задаче скорость важнее точности (например, ввести треть как 1./3.). Вот простой пример, где работа с числами с плавающей точкой проходит почти в 50,6 раза быстрее, чем при работе с точными числами, которые лишь затем будут переведены в числа с плавающей точкой. И в этом случае получается такой же результат.
Выражаю огромную благодарность Кириллу Гузенко KirillGuzenko за помощь в переводе.
Пост Джона Маклуна рассказывает о распространенных приемах ускорения кода, написанного на языке Wolfram Language. Для тех, кто заинтересуется этим вопросом мы рекомендуем ознакомиться с видео «Оптимизация кода в Wolfram Mathematica», из которого вы подробно и на множестве интересных примеров узнаете о приемах оптимизации кода, как рассмотренных в статье (но более детально), так и других.
Когда люди говорят мне, что Mathematica недостаточно быстро работает, обычно я прошу посмотреть код и часто обнаруживаю, что проблема не в производительности Mathematica, а в её не оптимальном использовании. Я хотел бы поделиться списком тех вещей, на которые я обращаю внимание в первую очередь при попытке оптимизировать код в Mathematica.
1. Используйте числа с плавающей точкой, и переходите к ним на как можно более ранней стадии.
Самая распространённая ошибка, которую я замечаю, когда разбираюсь с медленным кодом — задание слишком высокой точности для данной задачи. Да, неуместное использование точной символьной арифметики — самый распространенный случай.
У большинства вычислительных программных систем нет такого понятия, как точная арифметика — для них 1/3 это то же самое, что и 0,33333333333333. Это различие может играть большую роль, когда вы сталкиваетесь со сложными и неустойчивыми задачами, однако для большинства задач числа с плавающей точкой вполне удовлетворяют нуждам, и что важно — вычисления с ними проходят значительно быстрее. В Mathematica любое число с точкой и с менее чем 16 цифрами автоматически обрабатывается с машинной точностью, потому всегда следует использовать десятичную точку, если в данной задаче скорость важнее точности (например, ввести треть как 1./3.). Вот простой пример, где работа с числами с плавающей точкой проходит почти в 50,6 раза быстрее, чем при работе с точными числами, которые лишь затем будут переведены в числа с плавающей точкой. И в этом случае получается такой же результат.
+6
Топ-10 data mining-алгоритмов простым языком
24 мин
128KПеревод
Примечание переводчика: Мы довольно часто пишем об алгоритмической торговле (вот, например, список литературы по этой теме и соответствующие аналитические материалы) и API для создания торговых роботов, сегодня же речь пойдет непосредственно об алгоритмах, которые можно использовать для анализа различных данных (в том числе на финансовом рынке). Материал является адаптированным переводом статьи американского раработчика и аналитика Рэя Ли.
Сегодня я постараюсь объяснить простыми словами принципы работы 10 самых эффективных data mining-алгоритмов, которые описаны в этом докладе.
Когда вы узнаете, что они собой представляют, как работают, что делают и где применяются, я надеюсь, что вы используете эту статью в качестве отправной точки для дальнейшего изучения принципов data mining.
+43
Искусство командной строки
15 мин
249KВот уже как неделю английская версия the art of command line висит в секции trending на Github. Для себя я нашел этот материал невероятно полезным и решил помочь сообществу его переводом на русский язык. В переводе наверняка есть несколько недоработок, поэтому милости прошу слать пулл-реквесты мне сюда или автору оригинальной работы Joshua Levy вот сюда. (Если PR отправите мне, то я после того, как пересмотрю изменения отправлю их в мастер-бранч Джоша). Отдельное спасибо jtraub за помощь и исправление опечаток.
+117
8 ресурсов для бесплатного образования на русском языке
3 мин
62KТуториал
Как выглядит процесс обучения? Детсад, школа, университет и эпизодические курсы повышения квалификации, да и то не у всех. До конца жизни человек идет на том багаже знаний, который набрал в начале. Сейчас есть запрос на то, чтобы процесс обучения стал постоянным. Нужно поменять специализацию – пожалуйста. Нужно усилиться – пожалуйста. Делать это виртуально может быть проще и удобнее, ведь нет никаких барьеров. При этом качественные знания можно получить бесплатно. Представляю 8 платформ, на которых можно учиться на русском языке без бюджета.
+21
Слушаем музыку дома
15 мин
89KКак-то так сложилось, но музыкального центра у меня никогда не было, максимум советский магнитофон Маяк-223 да пара колонок. Приобщиться к цифровому звуку и компакт-дискам удалось только с появлением PC-совместимого компьютера в начале 2000-х. Да и CD-привод был дорог и появился далеко не сразу. Однако в то время уже во всю развивалась революция MP3, а соответственно как и у многих, у меня начала расти небольшая коллекция музыки на винте, что-то было скопировано у друзей, что-то рипалось собственноручно с купленных компакт-дисков, дабы не дергать постоянно привод ради прослушивания музыки. Да и в Winamp'е можно было составить плейлист на много-много часов из много-много альбомов, а не гонять строго один альбом постоянно.
Собственно музыка слушалась со встроенной звуковухи на обычных компьютерных пищалках без особых претензий. Но несколько лет назад вдруг захотелось чего-то большего. Что называется, не было у бабы проблем, купила баба порося. В этой статье я постараюсь поделиться с вами личным опытом в организации домашнего звука.
Собственно музыка слушалась со встроенной звуковухи на обычных компьютерных пищалках без особых претензий. Но несколько лет назад вдруг захотелось чего-то большего. Что называется, не было у бабы проблем, купила баба порося. В этой статье я постараюсь поделиться с вами личным опытом в организации домашнего звука.
+23
Избавляемся от «исторических причин» в cmd.exe
5 мин
47KСфера разработки программного обеспечения является одной из тех областей человеческой деятельности, где термин «исторические причины» используется наиболее часто. Оно и понятно — многие «долгоиграющие» проекты наподобие ядер различных операционных систем, браузеров и прочего обросли за время своего существования нехилым арсеналом вещей, менять поведение которых станет далеко не каждый, даже если перфекционист внутри разработчика говорит обратное. Вероятнее всего, большая часть кода была написана программистами, которые уже давно не работают в компании, а даже те, кто ещё связывают свои жизни с данной корпорацией, сомневаются, что остальные компоненты программного комплекса нормально отрерагируют на те или иные изменения. «Нет уж, лучше оставлю, как оно есть».
В качестве примера одной из таких вещей можно назвать cmd.exe. Да-да, это тот самый интерпретатор командной строки, входящий в поставку всех современных (и не очень) операционных систем семейства Windows. Исторических причин у него накопилось изрядное количество — достаточно вспомнить хотя бы то, как необходимо производить вставку и копирование в данный интерпретатор (ради справедливости стоит сказать, что в Windows 10 эту ситуацию наконец исправили, да и приложения наподобие ConEmu здорово в этом помогают). Но речь сегодня пойдёт о другом поведении, которое заствляет задуматься впервые столкнувшегося с cmd.exe человека, казалось бы, там, где этого совсем не требуется.
Как вы знаете, одной из команд, которые воспринимает cmd.exe, является «CD». Официальный хелп по этой команде сообщает следующее:
C:\Users\Nikita.Trophimov>CD /?
Displays the name of or changes the current directory.
[...]
Казалось бы, всё просто. Вызываешь CD без аргумента — в stdout выводится путь до текущей директории, передаёшь другую директорию в качестве аргумента — он сменяет текущую директорию на указанную. Подводные камни тут начинаются в том случае, если пользователь решил сменить директорию одновременно вместе с диском. Например, если вы находитесь в директории «C:\Windows\system32», то команда «CD D:\books» не сделает ровным счётом ничего. На мой взгляд, очевидного для новых пользователей в этом совершенно ничего нет, так что их спасает гугл или официальная документация, которая, кстати, сообщает:
Use the /D switch to change current drive in addition to changing current
directory for a drive.
Разумеется, этот вопрос, равно как и причины возникновения подобного поведения, уже не раз обсуждался в интернете (например, тут), так что останавливаться на подобных вещах мы не будем. Вместо этого мы попробуем отладить cmd.exe, чтобы убрать необходимость явного указания ключа "/D".
Как протекал процесс, и что из этого вышло, читайте под катом.
+38
Спросите Итана #4: Странные астрономические карты
3 мин
15KПеревод
У меня есть экзистенциальная карта, по всей поверхности которой написано «Вы здесь».
Стивен Райт
Читатель спрашивает:
Карты космического микроволнового фонового излучения выглядят как плоский овал. Как это соотносится с видом неба, которое представляет собой сферу? Например, карта Земли может быть либо искажена, чтобы показать нам мир в двух измерениях, либо порезана на ломтики. На какую часть неба мы смотрим, смотря на карту КМФИ? Она искажена? А если это только часть неба – не пропущена ли какая-либо важная информация?
Он говорит о подобных картинках:
Сложно поверить, но тут действительно зашифровано всё небо.
+26
Информация
- В рейтинге
- Не участвует
- Откуда
- Москва, Москва и Московская обл., Россия
- Дата рождения
- Зарегистрирован
- Активность