Pull to refresh
11
0

Химик

Send message

Переделываем блок питания в картинках

Reading time3 min
Views318K
Доброе время суток обитателю хабрахабра!
Довело меня увлечение электроникой до момента, когда дешевого китайского паяльника стало мало. Было принято волевое решение собрать паяльную станцию своими руками. Но вот беда, оказалось что в городе достать трансформатор на 24 вольта просто невозможно. Благодаря этому прискорбному факту и родилась статья.

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

Как известно у ATX есть линия, выдающая -12 вольт с силой тока около 0,5 ампер, так почему бы её не усилить? Но первый блин, как известно, комом: при попытке запитать чудо паяльник блок питания сделал «БЗЗЗ» и ушел на покой.

Второй попыткой было решено сделать удвоитель напряжения. Но удвоителю на вход нужен переменный ток, который можно взять от трансформатора. Но, как оказалось, и этот путь не привел к успеху…
Продолжение истории под катом (осторожно: много картинок)
Читать дальше →
Total votes 86: ↑81 and ↓5+76
Comments36

Американская мечта, или Полгода в топе. Въ Умѣ

Reading time5 min
Views3.6K

Вместо предисловия


Прошло уже полгода с момента выхода первой версии нашего приложения «В уме». За эти шесть месяцев в жизни изменилось очень многое, но из Top 10 категории Education мы так и не выпали. Раньше меня это немного удивляло, но в конечном счете свыкся.

Со времени первой заметки об этом уникальном опыте также прошло полгода. К выходу очередной (но не последней) версии приложения приурочим это скромное продолжение истории.
Читать дальше →
Total votes 64: ↑60 and ↓4+56
Comments55

Сброс пароля, редактирование реестра Windows из Ubuntu

Reading time2 min
Views39K
В связи с вирусами в винде и невозможностью запусить regedit, понадобилась возможность редактировать реестр извне. Нашел, пока, единственную утилиту в линуксе chntpw, которая изначально разрабатывалась для сброса паролей, а потом приобрела функцию редактирования реестра.
Читать дальше →
Total votes 92: ↑78 and ↓14+64
Comments39

Боевой HID-эмулятор на Arduino

Reading time5 min
Views74K
image
За последние годы многие стали с некоторой осторожностью относиться к съемным носителям данных. И вполне обоснованно. Ведь все так или иначе встречались с autorun.inf в корне флешки. Но, к сожалению, автозапуск с носителя – далеко не единственный вектор атаки при подключении устройства. При проведении внутренних тестов на проникновение нередко возникает необходимость проверить и продемонстрировать заказчику все возможные векторы, в том числе обход device-lock’ов.
Под катом рассмотрим пример устройства на arduino-подобном МК, эмулирующего HID-клавиатуру, с последующим выполнением кода на атакуемой системе.
Читать дальше →
Total votes 41: ↑35 and ↓6+29
Comments23

Копирайт на команду /bin/true

Reading time3 min
Views20K
Среди всей этой шумихи по поводу авторских прав есть один забавный пример — это крайний случай использования копирайта, который породила AT&T где-то в 1980-х. Речь идёт о программе /bin/true. Это пустая программа, которую обычно используют только для того, чтобы писать бесконечные циклы (while true do ...) в шелл-скриптах. Программа «true» не делает ничего, а только завершается с нулевым кодом. Такого поведения легко добиться — достаточно просто создать пустой файл и сделать его исполняемым, что и делали создатели первых Unix-систем. Пустой файл интерпретируется как шелл-скрипт, который не делает ровным счётом ничего. А, поскольку у него это вполне успешно получается, шелл возвращает нулевой код завершения. Но юристы AT&T решили, что это не помешает защитить копирайтом.
Читать дальше →
Total votes 246: ↑229 and ↓17+212
Comments62

Cascadeur — зачем аниматорам физика?

Reading time4 min
Views25K
В предыдущем посте “Cascadeur — можно ли заменить каскадеров?” мы обещали подробнее рассказать про концепцию программы и про инструменты, позволяющие аниматорам создавать физически корректные движения персонажей.

image
Читать дальше →
Total votes 62: ↑61 and ↓1+60
Comments25

Устаревшие иконки, которые потеряли смысл

Reading time2 min
Views18K
Когда вы последний раз вкладывали тряпичную закладку в бумажную книгу? А когда последний раз видели телевизор с антенной-рóжками? Часто ли используете бинокль для поиска информации? Скотт Хэнсельман (Scott Hanselman) из Microsoft искренне возмущён, что столь архаичные символы используются в качестве стандартных иконок.



Удивительно — выросло целое поколение людей, которые никогда не видели настоящую дискету, но отлично знают значок «Сохранить».
Ещё 13 устаревших иконок
Total votes 296: ↑165 and ↓131+34
Comments477

Правила разработки сложных систем. История одного проекта

Reading time8 min
Views18K
Привет, Хабр. Меня зовут Александр. И я хочу поделится своей историей работы над одним крупным и сложным проектом.

В этой статье не будет кода и схем, в ней будет только история создания «от и до» самого проекта. Думаю, многим будет интересна данная статья. Итак, поехали!

Начало


Все началось летом 2011. На тот момент я был 3 года чистокровным фрилансером. То есть моя работа — это фриланс. Работал и работаю до сих пор только с западными заказчиками. Основная специализация — разработка проектов связанных с распознаванием образов, текста и т.д.

Все началось с того, что я, как всегда, с утра проверял почту, чистил спам, занимался рутинной работой. Обычно я не смотрю, что у меня в спаме, но тут я увидел письмо, с вполне реального адреса. Я открыл письмо, в котором одна компания искала программиста для допиливания крупного западного проекта. Причем эта компания требовала программиста именно из моего города и обязательно с опытом работы в области распознавания. Я ради любопытства ответил на это письмо. Буквально через час мне пришел ответ. А через два мы уже созвонились с менеджером проекта. Поначалу мне показалось, что ничего сложного в доработке нет, обычный набор функционала. После непродолжительного разговора с менеджером я огласил свой прайс, то есть ставку в час. И на этом мы попрощались. На следующий день мне сказали, что согласны на мой ценник и дали тестовое задание. Я его успешно выполнил в течении часа, и мы двинулись дальше. А здесь начинается самое интересное. Во-первых, меня пригласили в офис для того, чтобы подписать договор о неразглашении (Non-Disclosure Agreement). Во-вторых, и это логично, исходники проекта мне обещали отдать только после подписания договора. Если честно, меня это смутило, не знаю даже почему. И интуиция меня не подвела. Я потребовал хотя бы часть исходного кода, чтобы оценить сложность работы и попросил рассказать подробнее о проекте. Как оказалось проект на тот момент велся уже три года и я был 4 (!) исполнителем. До меня работала американская компания, потом индусы, потом компания, которая наняла меня, пыталась реализовать проект силами одной девочки-программиста, а потом это все чудо предложили разгребать мне. Меня это не просто удивило, а очень насторожило. Потом я узнал множество удивительных вещей, например о том, что заказчик 2 года не видел программу, а видел только скриншоты, а индусы кормили обещаниями этого заказчика. У меня не укладывалось в голове, как такое можно реализовать. Менеджеру индусов надо дать медаль «За находчивость».

После того как я выслушал удивительную историю, мы договорились с менеджером о том, что он мне отдаст исходный код и я оценю масштаб трагедии. Чтобы было более понятно, я расскажу более подробно о проекте. Этот проект — это инструмент для инженеров, архитекторов, электриков и других людей, которые занимаются строительством домов, небоскребов, одним словом зданий. Он служит для подсчета различных элементов на строительных планах, расчета площадей, измерения длин и составления смет. Грубо говоря есть строительный план и на нем есть розетки. Нам надо распознать и посчитать сколько этих розеток. Для распознавания использовалась библиотека написанная другим программистом. Сам проект написан на C#. Моя задача была собрать все воедино и доработать дополнительный функционал, а также привести программу к более менее стабильному состоянию. Кажется все просто и элементарно. Я тоже так подумал. Но не тут-то было.

После того как я получил исходники, я попытался скомпилировать проект. Это мне не удалось. После краткого анализа, я исправил ошибки и все же запустил проект. Но, к сожалению, он не заработал так как нужно. После нескольких часов анализа кода я пришел к выводу, что вся проблема в библиотеке распознавания. На тот момент у меня стояла 64-битная «семерка», а у менеджера 32-битная. У него все работало, у меня нет. Я попросил, что бы мне скомпилировали библиотеку под 64-битную платформу. Но разработчик библиотеки с пеной у рта доказывал, что не в разрядности дело. Я не мог ему ничего доказать, так как он дал очень немного информации о своей библиотеке и вообще берег ее как зеницу ока. Время шло и мне надо было хотя бы полностью провести процесс поиска. Я плюнул на все и поставил себе 32-х битную версию ОС. И о чудо! Все заработало. Отвлекаясь, хочу сказать о библиотеке, в будущем дело все же оказалось в ее разрядности.

Я начал анализировать код. Первое впечатление было просто отвратным. Я был в шоке. Я приведу список того, что меня возмутило в проекте.

1. Компоненты и контролы.

Проект очень сильно связан с графикой, но для ее вывода и обработки использовался обычный PictureBox. Самый маленький размер плана — 5400x3600 пикселей. Знающие люди поймут, что для PictureBox -это достаточно проблематичная тема с выводом больших картинок и их обработкой. Не стоит забывать, что помимо самих планов выводится еще много информации (площади, текст, найденные символы и т.д.). При запуске проекта с 5 маленькими планами, программа непременно падала с ошибкой «Out of memory». Что было очень большой проблемой, так как основной задумкой было то, что инструмент должен был работать по принципу «запустил и забыл».

2. Логика архитектуры исходного кода программы.
Читать дальше →
Total votes 122: ↑102 and ↓20+82
Comments97

Нейронные сети для чайников. Сеть Кохонена

Reading time3 min
Views347K
В статье Нейросети для чайников. Начало автор Paul_Smith доступно показал насколько просто создать нейронную сеть для распознования картинок. Но есть одно но — то что он описал нейронной сетью не является. Перед его следующей статьей хочу рассказать вам как решить ту же задачу, но с использованием нейронной сети Кохонена.

Итак, распознавать мы будем цифры, написанные белым по черному, такие как эти:
image image image image image image
Читать дальше →
Total votes 107: ↑101 and ↓6+95
Comments61

Тесла-пушка

Reading time2 min
Views120K


Не хватит пальцев на руках (да и на ногах), чтобы пересчитать все фантастические книги, фильмы и игры, где фигурирует энергетическое оружие. Признайтесь, каждому из вас хотелось заиметь подобную штуку, чтобы со зловещим хохотом поджаривать врагов многометровыми искусственными молниями. Товарищ с ником Rob не стал исключением, и под впечатлением от комикса The Five Fists of Science собрал свою собственную Тесла-пушку.

Оружие не стало точной копией пушки из комикса, но от своего литературного прототипа оно выгодно отличается тем, что реально существует. И работает!
Читать дальше →
Total votes 238: ↑229 and ↓9+220
Comments190

«Выглядит похоже». Как работает перцептивный хэш

Reading time6 min
Views123K
За последние несколько месяцев несколько человек спросили меня, как работает TinEye и как в принципе работает поиск похожих картинок.

По правде говоря, я не знаю, как работает поисковик TinEye. Он не раскрывает деталей используемого алгоритма(-ов). Но глядя на поисковую выдачу, я могу сделать вывод о работе какой-то формы перцептивного хэш-алгоритма.
Читать дальше →
Total votes 149: ↑145 and ↓4+141
Comments46

Локализация ASP.NET MVC приложения с помощью БД

Reading time8 min
Views18K

Данная статья будет узконаправленной и покрывает локализацию через БД, поэтому подробно расписывать как делать локализацию с помощью файлов ресурсов (resx) можно посмотреть, например, тут: MVC 2: Полное руководство по локализации. Для локализации с помощью представлений я тоже там ссылки.

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

Читать дальше →
Total votes 31: ↑21 and ↓10+11
Comments11

MVC 2: Полное руководство по локализации

Reading time14 min
Views18K
imageВ данной статье мы рассмотрим все аспекты локализации веб приложения основанного на ASP.NET MVC. Я использую последнюю доступную MVC 2 RC 2 версию на время написания данного топика.

До того, как мы начнем я хотел бы поблагодарить команду MVC, отличная работа ребята, я наслаждаюсь процессом написания веб-приложений, когда использую данный фреймворк. Я искал фреймворк такого типа, после небольшого опыта работы с Ruby on Rails.

Мы рассмотрим следующие проблемы:
  1. Валидация представлений
  2. Простой механизм переключения культур
  3. Локализация сообщений валидации модели
  4. Локализация атрибута DisplayName
  5. Кэш и локализация
Для работы вам понадобится Visual Studio 2008 Express и ASP.NET MVC 2 RC2, а также создать новый MVC 2 веб-проект.
Читать дальше →
Total votes 46: ↑37 and ↓9+28
Comments11

Нейросети для чайников. Начало

Reading time5 min
Views803K


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

В данной статье (цикле статей?) я попытаюсь осветить тему нейросетей с точки зрения человека непосвященного, простым языком, на простых примерах, раскладывая все по полочкам, а не «массив нейронов образует перцептрон, работающий по известной, зарекомендовавшей себя схеме».

Заинтересовавшихся прошу под кат.
Читать дальше →
Total votes 258: ↑226 and ↓32+194
Comments91

«Детский» геймдев или «Как я играл в инди-разработчика»

Reading time6 min
Views14K
Здравствуй, хабр и его обитатели. В этом посте я поделюсь с тобой прохладной историей о том, как я пытался создать Самую Настоящую Инди Игру в одиночку, и через что мне пришлось пройти, чтобы не бросить это неблагодарное дело на полпути, а также о том, что в итоге вышло.
Читать дальше →
Total votes 155: ↑149 and ↓6+143
Comments123

Многоклиентский сетевой протокол на C#

Reading time10 min
Views31K

Предисловие


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

Читать дальше →
Total votes 62: ↑47 and ↓15+32
Comments84

Visual Studio 2010 тестирование веб-приложения

Reading time3 min
Views11K
Очень хочется принять участие в конкурсе Visual Studio 2010. Уже писали о Unit-тестировании, о UI тестировании приложений, поэтому я напишу про тестирование веб-приложений. А так как в комплекте с новой Visual Studio 2010 поставляется ASP.NET MVC Framework 2, то использовать я буду именно его.
Это НЕ серьезное руководство по UI тестированию, это лишь легкое чтиво, которое просветит еще зеленых любителей студии (таких как я) о важном и удобном, но слегка пугающем функционале.

Много скриншотов далее
Total votes 62: ↑44 and ↓18+26
Comments4

Определение площади сложной фигуры с помощью теории вероятностей

Reading time3 min
Views24K

Зачем определять площадь сложной фигуры?


Да мало ли зачем. Например, возникла необходимость определить площадь территории на карте. Конечно, можно посмотреть в справочнике или поискать в интернете, но иногда и территории бывают нестандартными — допустим, вы озаботились проблемами лесов в пойме Амазонки и хотите ежемесячно измерять площадь зелёных пятен на фотографиях со спутника. Если вы ботаник (в хорошем смысле слова), то вам может понадобиться измерить площадь листовой поверхности разных сортов одного растения. Или, к примеру, более прозаичная задача — нужно зашпатлевать кусок стены, а банки шпатлёвки хватает только на 1 кв. м. — нужно выяснить, покупать одну банку или раскошелиться на две.

Читать дальше →
Total votes 22: ↑10 and ↓12-2
Comments16

Упрощённая версия пользовательского соглашения (ToS)

Reading time1 min
Views4.8K
На большинстве сайтов ToS представляет собой длиннющий текст мелким шрифтом, который обычные люди не читают, подписывают не глядя. Вчитывается только редкий профи в поисках конкретных важных пунктов.

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

Любопытный выход из положения предложил фотосайт 500px.com — их пользовательское соглашение составлено в двух вариантах. В левой колонке оригинальный текст, имеющий юридическую силу. А в правой колонке смысл каждого пункта изложен в двух словах. Кстати, таким же образом изложена и политика приватности 500px. Пожалуй, это хорошая идея.
Читать дальше →
Total votes 87: ↑81 and ↓6+75
Comments39

Information

Rating
Does not participate
Date of birth
Registered
Activity