• Обрабатываем картинки средствами Photoshop и ExtendScript Toolkit

      Часто нам бывает надо сделать что-то с пачкой картинок. Есть несколько способов добиться этого:
      • используя ImageMagick – очень удобная консольная утилита, много чего умеющая
      • на The GIMP – там есть Scheme (диалект lisp-а) и Python
      • штатными средствами: PHP+gd / Powershell+System.Drawing / Python + PIL
      • в photoshop-е на JScript, VBScript или AppleScript
      Плюсы минусы последнего способа рассмотрим под катом. В качестве бонуса посмотрим на недокументированное API Photoshop-а.
      Читать дальше →
    • Что, где, куда: обзор туристических блогосервисов

        Лето уже в самом разгаре, но в отпуска успели выбраться далеко не все. Информации море, и сориентироваться с ходу в ней может быть нелегко.

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

        В обзор попали:

        turometr.ru/
        tourbina.ru/
        tourout.ru/
        flagatrip.ru/
        geoid.ru/
        tripster.ru/
        venividi.ru/
        yapiligrim.ru/

        Читать дальше →
      • История одной инфраструктуры. Решения MS. Часть 1

          Лирическое вступление…


          Прочитав несколько топиков по данной тематике («Почему я люблю Microsoft. Заметки Зомби» и «Строим инфраструктуру на базе продуктов MS»), решил поделиться своими историями, накопленным опытом и знаниями… Уже много лет тружусь на промышленном предприятии, сначала инженером, а потом и начальником отдела ИТ. Имея опыт успешных внедрений на родном заводе, опыт проектирования и реализации крупных инфраструктурных проектов в других компаниях, изначально хотел написать очередную «success story» о том, как мы эффективно используем инфраструктурные решения от известной компании MS, о том, какие они замечательные для специалистов ИТ, для пользователей и для бизнеса в целом. Но в итоге решил попробовать передать атмосферу строительства ИТ-инфраструктуры предприятия, показать факторы, которые привели нас к текущему состоянию, а также рассказать о ключевых ошибках. А в фокусе, конечно же, постараюсь держать решения от MS.
          Читать дальше →
        • Строим инфраструктуру на базе продуктов MS

            image После публикации своего первого поста «Почему я люблю Microsoft. Заметки Зомби» я получил достаточно много писем с похожей просьбой — написать подробнее об используемых продуктах.
            Просили — получите. При написании статья я поставил себе цель — описать основной маршрут. Расписывать тонкости установки и настройки нет смысла — их достаточно в Интернет. Я старался, чтобы прочитав этот пост администратор знал названия продуктов и технологий, для чего они нужны и потом уже мог ловко нагуглить всё остальное. Для того, чтобы облегчить поиск ключевые названия будут на английском. Если какая-то аббревиатура незнакома — это повод про неё почитать. И, да, я буду описывать решения от Microsoft, так как что-то смыслю только в них. Хочу сразу предупредить что топик очень конспективный.
            Читать дальше →
          • Рассказ о том, как я возвращал магазину сломанный ноутбук

              Начитавшись интересных постов о том, что компьютеру и интернету можно научить практически любого, решил порадовать своих родителей на старости лет, купив им небольшой нетбук (возможность провести домой недорогой безлимитный интернет имеется). Т.к. и отец, и мать до этого особого опыта работы с компьютером не имели, к Windows\DOS даже привыкнуть не успели, решил взять нетбук с Linux, дабы оградить от вирусов. Полазав на Яндекс.маркете, решил взять одну из самых недорогих моделей — MSI Wind U100X-252RU. Заказал на сайте msimobile.

              4 декабря. Покупка

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

              7 декабря. Нетбук бракованный.

              Вечером в понедельник решил немного настроить ноут. Оказалось, что стоит не какая-то Убунта, а Suse Linux Enterprise Desktop (нигде о том, какой именно Линукс, сказано не было). Удивился, но решил разобраться. Пока возился с настройками, заметил, что как-то чересчур греется. Ну да ладно, особо не обратил внимание. После продолжительной настройки решил загрузиться с bootable flash Mandriva 2010, и совершенно случайно нажал «Проверка оперативной памяти» (посредством всем известной Memtest86+). Через некоторое время ноут самопроизвольно выключился. Я запустил еще раз, результат тот же, выключился даже быстрее (меньше 5 минут). В конце концов выяснил, что:
              а) Промежутки между перезагрузками\выключениями сокращаются с каждым последующим запуском
              б) Перезагрузки\выключения бывают только при выполнении ресурсоемких приложений. Если просто включить ноут и поставить его стоять, то он так и останется работать без проблем.
              Читать дальше →
            • Руководство по созданию пользовательских интерфейсов для Windows 7

                image

                Microsoft выпустила официальное руководство, в котором подробно описываются принципы построения пользовательских приложений и интерфейсов для Windows 7. Руководство очень большое – 882 страницы, на которых приводятся советы, рассматриваются конкретные примеры, даются рекомендации.

                Всего руководство разделено на 10 больших разделов:

                — принципы дизайна;
                — элементы управления;
                — команды (горячие клавиши, меню и прочее);
                — текст и его стили;
                — сообщения: предупреждения, об ошибках, уведомления;
                — взаимодействие пользователя: клавиатура, мыши, сенсоры, доступ для людей с ограничениями;
                — окна;
                — визуальные элементы: иконки, компоновка, шрифты, цвета и другое;
                — пользовательский опыт;
                — окружение Windows.

                Загрузить Windows User Experience Interaction Guidelines в формате .pdf можно по этой ссылке.
              • Курс молодого Desire'вода

                image
                Написать подобную статью меня сподвигнул тот факт, что для человека, влившегося в стройные ряды Desire'водов, информация об платформе Android очень уж фрагментирована. С одной стороны платформа для всех Android устройств одна, с другой стороны для каждого устройства есть свои нюансы и тонкости. Кроме того информации на таких форумах как 4pda.ru и forum.xda-developers.com очень много, но как правило она размазана по всем темам. Приходится продираться сквозь сотни страниц в попытках извлечь ценные частицы информации.
                Читать дальше →
              • Модульный подход в JavaScript

                • Translation
                Модульный подход довольно распространённая техника программирования в JavaScript. Обычно его понимают довольно хорошо, но продвинутые техники описаны недостаточно. В этой статье я рассмотрю основы и затрону некоторые сложные приёмы, включая один, по моему мнению, оригинальный.

                Основы



                Мы начнём с несложного обзора модульного подхода, хорошо известного с тех пор, как Эрик Миралья (Eric Miraglia) из YUI впервые об этом написал. Если вам уже знаком модульный подход, переходите сразу к «Продвинутым техникам».

                Анонимные замыкания


                Читать дальше →
              • MongoDB и C# driver от 10gen, неочевидные моменты


                  Под катом частичная загрузка объектов, поиск объекта по элементу вложенного в него массива и немного идентификаторов. Вещи, которые так или иначе отняли у меня время на расследование как это работает, а иногда и на копание в исходных кодах драйвера при использовании MongoDB в реальном проекте.
                  Читать дальше →
                • Захват видео с сетевых камер, часть 1

                  • Tutorial
                  Сетевые видеокамеры постепенно вытесняют аналоговые, хоть и стоят они сейчас гораздо дороже. Сетевые обладают рядом очевидных приемуществ:
                  • нет необходимости в отдельном регистраторе или плате захвата;
                  • помехоустойчивость;
                  • простая интеграция в существующую сеть;
                  • нет ограничения по расстоянию;
                  • наличие камер высокого разрешения;
                  • просмотр камеры прямо с самой камеры по http;
                  • наличие всевозможных настроек;
                  • и др.

                  Нас интересует способ получения изображений с таких камер, для этого надо знать а как вообще они их передают? На наше счастье камеры используют существующие стандарты, а не то, что взбредёт в голову китайскому разработчику. Подавляющее большинство камер используют один или несколько способов передачи видео, это в основном Motion JPEG по HTTP, Motion JPEG по RTSP или H264 по RTSP. Также многие камеры могут передавать звук, но он нас не интересует сейчас.

                  В этой статье я рассмотрю эти способы передачи изображений с сетевых камер, а также приведу пример захвата таких изображений всё на том же Python'е.
                  Читать дальше →
                • Пишем LR(0)-анализатор. Простыми словами о сложном

                  Введение



                  Добрый день.
                  Не нашел простого и внятного описания данного алгоритма на русском языке. Решил восполнить сей пробел. Прежде всего что это такое? LR(0)-анализатор в первую очередь это синтаксический анализатор. Цель синтаксического анализатора обработать входной поток лексем(базовые элементы языка, которые производит лексический анализатор на основе входного потока символов, примеры лексем — число, запятая, символ) и сопоставить его с описанием языка заданного в определенном формате. Сопоставление заключается в построении определенной структуры данных, чаще всего — дерева. Дальше эта структура пойдет на следующий этап — семантический анализ, где уже компилятор пытается понять смысл, заключенный в дереве.

                  Существует 2 класса синтаксических анализаторов — восходящие анализаторы и нисходящие. Первые строят дерево начиная с листьев, которые являются входными лексемами, вторые соответственно наоборот начинают с корня дерева. Собственно LR и значит то, что анализатор будет читать поток слева направо (L — 'Left') и строить дерево снизу вверх (пусть не смущает буква R, которая значит Right, объяснения даны чуть ниже). Индекс 0 обозначает то что мы не предпросматриваем следующие лексемы, а работаем только с текущей. Какие же плюсы даёт нам выбор этого типа анализаторов?
                  • Он быстр.
                  • Покрывает множество языков. То есть если вы придумали язык и описали его, то с большой долей вероятности LR-анализатор его сможет обработать.
                  • Синтаксические ошибки обнаруживаются так быстро как это возможно. Сразу же как встречается символ, который не соответствует предыдущему входному потоку, мы можем вывести ошибку об этом.

                  Есть и недостатки:
                  • Относительная сложность построения.
                  • Можно вогнать анализатор в ступор неоднозначностью описания языка.


                  Читать дальше →
                • ASP.NET MVC: Привязка данных модели, которые содержат изображения

                    Привязка данных(binding) является достаточно удобным средством ASP.NET MVC. Удобно оно в первую очередь тем, что позволяет скрыть реализацию преобразования данных между данными из модели и данными HTTP запроса.
                    В своих проектах я часто сталкиваюсь с необходимостью сохранять различные данные типа blob и image. В этой статье я бы хотел показать, как можно легко организовать и использовать привязку данных из модели, которые содержат различные изображения. Для примера я взял учебный проект MVC Music Store и решил его подправить — добавить возможность изменять изображение обложки музыкального альбома. При написании данной статьи, я использовал версию APS.NET MVC 3 и Razor.
                    Читать дальше →
                    • +13
                    • 8.2k
                    • 7
                  • Вызов .NET сервиса (WCF RESTful) из Android приложения

                      Привет Хаброжители!

                      Вот недавно столкнулся с проблемой, нужно было вызвать .NET WCF сервис из Javа. Нашел несколько примеров, реализации, одним из них и хочу поделиться, вдруг пригодиться кому. Прогулявшись по просторам интернета, нашел готовое решение для SOAP сервисов. Разбираться с ним не стал и продолжил поиск. Затем, было найдено решение с использованием WCF RESTful сервиса, который возвращал данные в формате JSON. Решил разобраться подробнее и попробовать как это работает.

                      Читать дальше →
                    • Выполнение javascript в программе на C#



                        На днях просматривал популярные библиотеки на codeplex и увидел там пару библиотек для работы с javascript. Сразу вспомнился случай, когда мне нужно было написать небольшую программку для взаимодействия с личным кабинетом на одном сайте. Поэтому без раздумий решил попробовать, как бы они справились с той задачей.

                        Под катом я расскажу о нерядовом взаимодействии с сайтом, каким образом я решил задачу на тот момент и смогли ли обе библиотеки справиться с той же задачей. Сразу скажу, что речь пойдёт о следующих библиотеках: jint и javascriptdotnet.
                        Читать дальше →
                        • +22
                        • 44.1k
                        • 8
                      • Что почитать на выходных? Рекомендуем

                          Это первый, пробный выпуск подборки интересных ссылок на статьи по разработке веб-приложений на платформе .NET (и не только). Сегодня я представляю первую подборку статей, которые будет полезно почитать в свободные минуты на выходных. Большинство статей написаны на английском, но, со временем, я надеюсь публиковать больше ссылок на русскоязычные статьи.

                          Тема номера:

                          Мега-подборка видео-материалов по разработке на ASP.NET WebForms, ASP.NET MVC и WebMatrix:
                          • 35 видео: что нового в ASP.NET и быстрое введение в новые функции [link];
                          • 114 видео: руководства по доступу к данным в ASP.NET [link];
                          • 155 видео: руководства по AJAX, AJAX Control Toolkit [link];
                          • 29 видео: руководства по вопросам безопасности ASP.NET [link];
                          • 17 видео: введение в разработку на WebMatrix [link];
                          • 24 видео: работа с IIS, развертывание ASP.NET-сайтов [link];
                          • 61 видео: руководства по построению приложений на ASP.NET MVC [link];
                          • 17 видео: руководства по доступу к данным в ASP.NET MVC [link];
                          • 5 видео: руководства по вопросам безопасности в ASP.NET MVC [link].
                          WebForms:
                          Читать дальше →
                        • Работа со структурами в C#

                          • Translation
                          По следам недавнего топика «Обработка больших объемов данных в памяти на C#» представляю перевод упоминавшейся там статьи о структурах.

                          Структуры являются фундаментальными типами данных в C# и большинстве других современных языках программирования. По своей сути структуры просты, но вы можете удивиться, насколько быстро работа с ними может стать сложной. Чаще всего проблемы возникают, если вы должны работать со структурами, созданными в других языках и сохраненными на диске или полученными в результате вызова функций из библиотек или COM-объектов. В этой статье я подразумеваю, что вы знакомы с понятием структуры, умеете определять их и владеете базовыми навыками работы со структурами. Предполагается, что вы имеете представление о том, как вызывать API функции с использованием p/Invoke, а также что такое маршалинг. В случае неуверенности в своих знаниях вы можете обратиться к документации.
                          Множество техник, описанных в данной статье, могут быть расширены и применены к любым типам данных.
                          Читать дальше →
                        • Фонетические алгоритмы

                          Фонетические алгоритмы сопоставляют двум словам со схожим произношением одинаковые коды, что позволяет осуществлять сравнение и индексацию множества таких слов на основе их фонетического сходства.

                          Часто довольно трудно найти в базе нетипичную фамилию, например:
                          — Леха, поищи в нашей базе Адольфа Швардсенеггера,
                          Шворцинегира? Нет такого!
                          В этом случае использование фонетических алгоритмов (особенно в сочетании с алгоритмами нечеткого сопоставления) может значительно упростить задачу.

                          Такие алгоритмы очень удобно использовать при поиске в базах по спискам людей, в программах проверки орфографии. Зачастую они используются совместно с алгоритмами нечеткого поиска (которые, несомненно, заслуживают отдельной статьи), предоставляя пользователям удобный поиск по именам и фамилиям в различных базах данных, списках сотрудников и так далее.

                          В этой статье я рассмотрю наиболее известные алгоритмы, такие как Soundex, Daitch-Mokotoff Soundex, NYSIIS, Metaphone, Double Metaphone, русский Metaphone, Caverphone.
                          Читать дальше →
                        • Пример использование DSL (Domain Specific Languages) в реальном проекте

                            DSL (Domain Specific Languages) — языки, специфичные для решения задач какой-либо предметной области (в противовес языкам общего назначения типа Java или C#). Более подробное описание и примеры есть на википедии, я же хочу написать про то, как довольно легко встроить в приложение (C#) свой собственный DSL на базе языка Boo.
                            Читать дальше →
                            • +25
                            • 12.5k
                            • 5
                          • Поиск подстроки и смежные вопросы

                            Здравствуйте, уважаемое сообщество! Недавно на Хабре проскакивала неплохая обзорная статья о разных алгоритмах поиска подстроки в строке. К сожалению, там отсутствовали подробные описания каких либо из упомянутых алгоритмов. Я решил восполнить данный пробел и описать хотя бы парочку тех, которые потенциально можно запомнить. Те, кто еще помнит курс алгоритмов из института, не найдут, видимо, ничего нового для себя.
                            Читать дальше →