Search
Write a publication
Pull to refresh
27
0
Владимир @Lertmind

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

Send message

Часть 4.1 Возвращаем зрение. От очков до эксимерного лазера

Reading time9 min
Views372K

Прошу прощения у всех, кто долго ждал этой статьи. Подготовка материалов требует массы времени и труда. В этой статье я постараюсь рассказать обо всех методиках коррекции зрения, которые существуют на данный момент. Мы пройдем путь от первых очков XIII века до современных лазерных методов коррекции, таких как femto-LASIK и ФРК.

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

Остальные части


Часть 1. Unboxing VisuMax — фемто-лазера для коррекции зрения
Часть 2. Сколько мегабит/с можно пропустить через зрительный нерв и какое разрешение у сетчатки? Немного теории
Часть 3. Знакомьтесь — лазер по имени Amaris. Переезды и первое пробуждение VisuMax
Часть 4.2 Возвращаем зрение. От очков до эксимерного лазера
Читать дальше →

Почему в России почти нет гражданского/коммерческого высокотехнологичного производства?

Reading time27 min
Views412K
Статью с обзором ситуации с микроэлектроникой в России я закончил утверждением, что сейчас в России есть технические возможности для создания любых военных микросхем (если не считаться с ценой). Однако и в комментариях к той статье, и во многих других — всех больше волновал вопрос отсутствия (на уровне погрешности измерений) производства чисто-коммерческих (гражданских) высокотехнологичных продуктов. Этот вопрос волновал и меня, потому я постоянно мучил вопросами всех, кто так или иначе связан с высокими технологиями и бизнесом в России.

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

Под катом попробуем разобраться чем отличаются «высокотехнологичные» компании от «низкотехнологичных», что нужно, чтобы высокотехнологичные компании могли рождаться и выживать, почему с софтом у нас лучше, чем с хардом, с чего начиналась кремниевая долина в США и можно ли её «скопировать», почему Китай всех рвет, а также — окинем взором все, что происходит в Сколково, Роснано, фонде перспективных исследований и приведут ли они к расцвету российских инноваций. Безусловно, я где-то могу ошибаться — буду рад дополнениям в комментариях.

Сразу нужно отметить, что в связи с многогранностью проблемы объем статьи получился довольно большой, так что можно начать читать с резюме в конце, и затем прочитать лишь те разделы, которые вызовут интерес. Сразу хочу предупредить — повествование «нелинейное», соседние заголовки могут описывать разные аспекты проблемы и быть друг с другом практически не связанными.
Читать дальше →

5 способов сравнить два байтовых массива. Сравнительное тестирование

Reading time32 min
Views51K
секундомерВ результате профилирования моей софтины я сделал вывод о необходимости оптимизации функции сравнения буферов.
Т.к. CLR не предоставляет стандартного способа сравнить два куска памяти, то функция была написан на скорую руку самостоятельно (лишь бы работало).
Погуглив по фразе «Best Way to Compare Byte Arrays in .Net», я пришёл в замешательство: в абсолютном большинстве случаев люди предлагали использовать либо LINQ, либо Enumerable.SequenceEqual(), что практически одно и тоже. Даже на StackOverflow это был самый популярный ответ. Т.е. катастрофически популярно заблуждение вида:

«Compiler\run-time environment will optimize your loop so you don't need to worry about performance.» Отсюда.

Именно оно впервые навело меня на мысль написать этот пост.
Я провёл сравнительное тестирование пяти способов сравнения буферов, доступных из C#, и на основании результатов тестирования дал рекомендации в выборе способа.
Кроме того, я декомпилировал некоторые функции, и проанализировал код, генерируемый JIT-компилятором для конфигурации x86, а так же сравнил машинный код, генерируемый JIT-компилятором, с машинным кодом функции CRT аналогичного назначения.
Читать дальше →

Пять способов выгореть для программиста

Reading time4 min
Views115K
imageОт переводчика
Выгорание в жизни программиста может случиться по самым разнообразным причинам; если задаться целью перечислить все пути, которыми оно подкрадывается к нам, то одно лишь это перечисление займет немало времени. Это еще один повод, по которому не стоит недооценивать процесс выгорания — иначе однажды вам придется искать дорогу обратно, и стоить это может очень дорого. Последняя строка вовсе не голословна — мне самому однажды смогла помочь лишь любовь к коду — когда уже, казалось бы, все осточертело и ничего не хотелось, чтение подвернувшегося Макконнелла навеяло воспоминания о том, как же когда-то мне нравилось программировать. И сегодня мне нравится делать это снова.
А теперь — слово автору.

Я отошел от своего выгорания только недавно — несмотря на то, что случилось оно несколько лет назад. Да, мне было непросто… очень непросто. Когда я думаю о произошедшем, на ум приходит немало причин тому, что случилось со мной — но самое интересное заключается в том, что каждой из них я никогда раньше не придавал значения. Хотите повторить мой путь и выгореть? Пожалуйста, у меня готов целый список, как следует поступать в таком случае:

1. Думать о проекте и только о нем


Признайтесь себе: бизнес хочет, чтобы вы создавали наилучший продукт «для наших клиентов». Вы откладываете в долгий ящик какой-либо функционал из-за того, что не успеваете к дедлайну. Вы планируете проект и анализируете его со всех сторон для того, чтобы разбить на несколько «перевариваемых» частей, которые затем должны быть воплощены одним из кодеров (в роли обезьянки, или code monkey, кстати говоря, можете быть и вы один). Вы создаете рабочий прототип, затем получаете обратную связь и делаете еще одну итерацию. И все это — без единой мысли о себе любимом.
Читать дальше →

Fancy Skulls — дневник разработки, запись №1

Reading time7 min
Views12K
Смотрите, я — самый настоящий инди разработчик компьютерных игр! А все потому, что я делаю компьютерные игры.

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


Я расскажу о том, что я уже сделал, чему научился, и что собираюсь делать дальше. Может быть, стоило бы подождать когда игра будет закончена и написать постмортем, но я ведь тогда что-то забуду а что-то поленюсь записать, а так получится как бы сериал. Чем все закончится? Попадет ли моя игра в Стим через Greenlight и буду ли я благодаря этому во фраке и с моноклем в левом глазу прогуливатся по Невскому Проспекту в лакированых туфлях с белыми гамашами? Если да, то как и когда? Что такое гамаши? Оставайтесь с нами и вы все узнаете.
Читать дальше →

10 правил дзен-программиста

Reading time9 min
Views111K
От переводчика: это перевод статьи Кристиана Глобмайера The Ten Rules of a Zen Programmer. Статья мне понравилась, решил сделать перевод, после окончания перевода загуглил название, нашел вариант перевода: 10 принципов дзен программиста. Отличается от моего, поэтому решил свой вариант перевода все-таки запостить.

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


Одним дождливым утром я сидел за своим столом и думал об эффективной работе. До того, как я начал работать фрилансером, у меня бывало, что я работал много, но никогда не был доволен результатом. Я начал практиковать Дзен в 2006 году. То, что мне пришло в голову через довольно большое время — старые мастера Дзен уже знали сотни лет назад, как сегодняшние программисты должны работать. Хотя я не люблю посты «как быть лучшим программистом», я хочу рассказать о некоторых моих мыслях с того времени. Этот пост будет служить мне напоминанием, но если у вас есть идеи, не стесняйтесь оставлять комментарии.
Читать дальше →

Список скептика

Reading time6 min
Views168K
Громкие заявления требуют убедительных доказательств.
Карл Саган (оригинал)




Преамбула


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

Что же в сухом остатке с той самой лекции? Далеко не последний университет проводит в своих стенах лекцию сомнительного качества (с продажей книг выступающего, конечно же) и мало того, что выступает бесплатной площадкой для такого рода личностей, так еще и бьёт по своему статусу. Казалось бы, возможно это единичный случай. Например, та же лекция была прочитана в лектории Политехнического музея. В последствии администрация признала эту лекцию и ряд других лженаучными и даже организовали отличную лекцию "Что такое любительская лингвистика", прочитанную академиком Зализняком.

Однако, оказалось, что это не исключение.
Читать дальше →

Как скомпилировать билд Unity3D проекта для IOS на Windows?

Reading time2 min
Views69K

Билд для IOS всегда стоял особняком в Unity3D. Если все остальные можно было компилировать на Windows машинах, то для IOS обязательно нужен был Мак. Я как и все столкнулся с этой проблемой при попытке выпустить свой первый проект на IOS, которая казалась мне трудно преодолимой. Однако, совсем недавно произошло два события которые делают эту проблему практически неактуальной, и которые прошли на Хабре незамеченными.
Читать дальше →

Математический фокус для MP3, JPEG и Гомера Симпсона

Reading time6 min
Views110K
Девять лет назад я посещал курс физики в колледже, и мой профессор рассказал одну вещь, которая поразила меня. Я думаю, не будет преувеличением сказать, что это одно из наиболее широко используемых математических открытий — от оптики до квантовой физики, радиоастрономии, сжатия MP3 и JPEG, рентгеновской кристаллографии, распознавания голоса и МРТ. Этот математический инструмент называется преобразование Фурье, в честь французского физика и математика 18-го века Жозефа Фурье. Им пользовались даже Джеймс Уотсон и Фрэнсис Крик, чтобы декодировать структуру двойной спирали ДНК из рентгенограмм, произведенных Розалиндой Франклин. (Крик был экспертом по преобразованиям Фурье, он в шутку назвал свою книгу «Преобразования Фурье для орнитологов», чтобы объяснить суть Уотсону, заядлому любителю птиц).
Читать дальше →

Вы можете развить свой интеллект: 5 способов максимально улучшить свои когнитивные способности

Reading time17 min
Views516K
Не стоит преследовать цели, которые легко достичь. Стоит нацеливаться на то, что удается сделать с трудом, приложив немалые усилия — Альберт Эйнштейн

Несмотря на то, что Эйнштейн не был нейробиологом, он точно знал все, когда говорил о способности человека добиваться чего-либо. Он интуитивно догадывался о том, что лишь сегодня нам удалось подтвердить с помощью данных, а именно: что заставляет когнитивные способности работать на максимально высоком уровне. По существу: То, что тебя не убивает, делает тебя умнее.
Читать дальше →

I2P: Прозрачный доступ из любого браузера

Reading time2 min
Views377K


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

Но куда уходить людям?

Что бы был доступ к информации, свобода слова и соблюдались хотя бы те правила, которые есть в конституции?

Mesh сети не подходят, Tor — тоже не может обеспечить требуемого, остается I2P.

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

Простыми словами о преобразовании Фурье

Level of difficultyMedium
Reading time14 min
Views1.1M
Я полагаю что все в общих чертах знают о существовании такого замечательного математического инструмента как преобразование Фурье. Однако в ВУЗах его почему-то преподают настолько плохо, что понимают как это преобразование работает и как им правильно следует пользоваться сравнительно немного людей. Между тем математика данного преобразования на удивление красива, проста и изящна. Я предлагаю всем желающим узнать немного больше о преобразовании Фурье и близкой ему теме того как аналоговые сигналы удается эффективно превращать для вычислительной обработки в цифровые.

image (с) xkcd

Без использования сложных формул и матлаба я постараюсь ответить на следующие вопросы:
  • FT, DTF, DTFT — в чем отличия и как совершенно разные казалось бы формулы дают столь концептуально похожие результаты?
  • Как правильно интерпретировать результаты быстрого преобразования Фурье (FFT)
  • Что делать если дан сигнал из 179 сэмплов а БПФ требует на вход последовательность по длине равную степени двойки
  • Почему при попытке получить с помощью Фурье спектр синусоиды вместо ожидаемой одиночной “палки” на графике вылезает странная загогулина и что с этим можно сделать
  • Зачем перед АЦП и после ЦАП ставят аналоговые фильтры
  • Можно ли оцифровать АЦП сигнал с частотой выше половины частоты дискретизации (школьный ответ неверен, правильный ответ — можно)
  • Как по цифровой последовательности восстанавливают исходный сигнал


Я буду исходить из предположения что читатель понимает что такое интеграл, комплексное число (а так же его модуль и аргумент), свертка функций, плюс хотя бы “на пальцах” представляет себе что такое дельта-функция Дирака. Не знаете — не беда, прочитайте вышеприведенные ссылки. Под “произведением функций” в данном тексте я везде буду понимать “поточечное умножение”

Итак, приступим?

Процедурная генерация планов помещений

Reading time7 min
Views73K

Что делает крупный разработчик игр, когда ему нужно состряпать много помещений для игрового мира? Нанимает кучу художников. Что делает ленивый/бедный/одинокий разработчик игр в такой же ситуации? Пишет процедурный генератор, который выполняет за него всю грязную работу.

По процедурной генерации планов помещений есть много, очень много статей. Вот ещё пяток ссылок на статьи. Только исходников ни к одной из них нет.

В этой статье я расскажу о том, как я реализовал на Unity3d один простой метод генерации, который приводит к хорошим результатам и легко модифицируется. С картинками и исходниками.
Читать дальше →

Цикл разработки через Github

Reading time3 min
Views106K

Разработка



Я расскажу о цикле разработки через Github, который я использую. Он был проверен в течении года на командах разного размера: 3 — 14 человек.

Существует 2 основных ветки: master и dev.

master — стабильная ветка, готовая к выкатыванию на production сервер в любой момент.

dev — ветка, над которой в данный момент работает команда.

Итак, в начале разработки master и dev ветки идентичны.

Читать дальше →

Китайцы предлагают по 10Тб всем желающим

Reading time1 min
Views166K
Гонка за объёмом предоставляемого облачного хранилища в Китае явно выходит на новый уровень: китайская компания Tencent предлагает всем зарегистрироваться и получить в итоге в своё распоряжение 10 Тб (терабайт) места на своём сервисе бесплатно. В этом смысле потуги Google или Dropbox действительно выглядят неважно — правда, всегда можно задаться вопросом о надёжности или приватности, хотя в этом смысле у Tencent вроде бы дела идут неплохо: она работает с 1998 года и её акции продаются на Гонконгской бирже…

Не обошлось без некоторых условий, которые, впрочем, действительно не трудно соблюсти — требуется зарегистрироваться с Tencent QQ-аккаунтом (получить его можно здесь) на странице акции и скачать мобильный клиент сервиса — доступны версии для Android и iOS. Сразу после этого в распоряжении пользователя оказывается 1 Тб облачного хранилища, который подходит для любых файлов (такой же объём на Flickr разрешают заполнять только фото и видео).

В дальнейшем по мере исчерпания свободного места сервис будет автоматически его увеличивать, пока верхняя планка не упрётся в заявленные 10 Тб в соответствии с приведённой ниже таблицей:



Насколько можно понять, что web-версии или десктопного клиента для сервиса нет, так что речь идёт именно о мобильном хранилище. Время акции также ограничено.
UPD:
Как подсказывают:

Акция щедрости здесь

Разбор кода и построение синтаксических деревьев с PLY. Основы

Reading time11 min
Views44K

Что такое PLY?


PLY — это аббревиатура из первых букв выражения: Python Lex-Yacc.
Фактически, это порт утилит lex и yacc на python в красивой обертке.
Работать с ply очень просто и порог входа для начала использования практически нулевой.
Написан он на чистом питоне и представляет из себя LALR(1) парсер, но кому это интересно?
Я по натуре практик (как и большинсво из вас) поэтому пошли в бой!

Что будем делать?


На сайте есть пример написания очередного калькулятора, поэтому повторяться не будем. А сделаем что-то навроде парсера очень очень узкого подмножества PHP :)
Наша задача в конце статьи построить синтаксическое дерево для такого примера:

<?php
$val = 5;
$result = substr( "foobar", 2*(7-$val) );
echo "это наш результат: $result";


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

Читать дальше →

Ungit — самый простой способ использовать Git

Reading time1 min
Views33K
Доброго времени суток уважаемые хабражители. Буквально только что увидел потрясающий проект на GitHub от FredrikNoren.



Ungit:


  • Чистый и интуитивно понятный интерфейс для Git (что есть невероятно круто для освоения Git)
  • Работает на любой платформе с установленными Node.js и самим Git
  • Веб-ориентированный. Возможность запускать его в облаке.
  • GitHub

Необходим Node.js версии 0.10 или выше и npm версии 1.3.1 или выше
Установка

npm install -g ungit

Я думаю, что после просмотра видео, моего более тщательного описания не потребуется. Спасибо всем за внимание.

Определение процента схожести нарисованного 2d-полигона с заданным шаблоном

Reading time6 min
Views30K
Приветствую, друзья.

Как вы знаете, в последнее время технология разработки игр для мобильных платформ развивается очень бурно. Игры пишутся на самых разных движках и языках, мы не будем в этой статье обсуждать, почему тот или иной язык/движок лучше или хуже (правда ведь?). Разработчики пытаются придумать новые интересные и удобные элементы управления игрой. Мне как игроку очень нравится использовать в игре геометрические элементы. Например такие, как в игре Джаггернаут для мобильных устройств.



Я попробую рассказать вам об алгоритме определения нарисованных 2d фигур. Свою версию движка я написал на языке ActionScript 3.0. При желании(и наличии базовых знаний по геометрии) его можно реализовать на любом другом.

Итак, нам необходимо по нарисованной руками фигуре определить процент схожести с имеющейся:


Читать дальше →

Continuous Integration для самых маленьких

Reading time12 min
Views115K

Вы все еще публикуете проект вручную? Тогда мы идем к вам


Под катом гайдлайн по внедрению CI для .NET проектов «с нуля», включающий:
  1. Автоматические ежедневные сборки
  2. Уведомления о проблемах
  3. Интеграцию с баг-трекером и системой контроля версий
  4. Версионирование продукта
  5. Версионирование базы данных
  6. Автоматизированные выкладки и бекапы

Читать дальше →

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity