Search
Write a publication
Pull to refresh
25
0
netslow @netslow

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

Send message

EvoJ — удобный фреймворк для генетических алгоритмов

Reading time7 min
Views5.7K
Здравствуйте, коллеги!

Здесь часто появляются статьи на тему генетических алгоритмов, разрешите и мне внести свои пять копеек.

Вот уже пару лет я виде хобби разрабатываю Java-фреймворк EvoJ посвященный ГА. Когда я только начинал работу с ГА самое большое неудобство представляла необходимость векторизации переменных составляющих решение, поэтому в своем фреймворке я постарался сделать векторизацию переменных прозрачной для программиста, возложив всю грязную работу на плечи фреймворка. Кроме того, так как ГА очень хорошо поддается распараллеливанию, я постарался сделать переход к многопоточности не менее легким.
Читать дальше →

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

Reading time6 min
Views2K
Перевод статьи из блога Джефа Этвуда, одного из основателей Stack Exchange Network, сети вебсайтов, посвященных работе с вопросами и ответами в различных областях. Среди прочих вебсайтов этой сети стоит выделить Stack Overflow — самый первый вебсайт, созданный в рамках Stack Exchange Network и посвященный вопросам и ответам в области программирования. Отдельная благодарность karaboz за помощь и вдохновение.


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


imageКогда люди спрашивают меня о самой большой ошибке, которую я совершил в процессе создания Stack Overflow (Прим. переводчика — далее SO) я рад, что не надо выдумывать и говорить банальности. Я могу честно и открыто рассказать об огромной, нелепой и, до смешного, дурацкой ошибке, которую совершил в самом начале разработки SO. Что ещё хуже, я могу рассказать о такой ошибке, которую продолжал совершать потом ещё и на протяжении девяти месяцев на фоне продолжающихся протестов сообщества.

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

IT Camps или облака без бла-бла-бла!

Reading time1 min
Views8.8K
Привет, хабрайтишники!

В последнее время про облачные технологии и их эффективность не говорит только ленивый. Но на конкретные вопросы, в чем же эффективность и удобство использования облака редко удается услышать что-то более вразумительное, чем сплошное «бла-бла-бла».



Для того, чтобы дать ответы на эти вопросы без развешивания лапши мы организуем технические семинары «Облака без бла-бла-бла!», которые пройдут в Москве, Санкт-Петербурге, Екатеринбурге, Томске и Казани
Читать дальше →

Лекториум записал почти тысячу лекций за год

Reading time4 min
Views57K
Дорогой Хабр!



У нас для тебя небольшой подарок. Мы тут работали-работали и вот чего сделали.
Сняли и опубликовали почти тысячу лекций по IT и математике.

UPD2 Помогите, пожалуйста, оперативно решить вопрос насчёт организации торрентов на php.

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

MIT выпустил первый «полностью автоматизированный» онлайновый курс

Reading time1 min
Views7.7K


Два месяца назад Массачусетский технологический институт анонсировал новую технологическую платформу для онлайн-образования MITx. Тестовая версия платформы MITx заработает весной 2012 года, обучение будет бесплатным, а сама платформа — открытой.

13 февраля опубликована информация о первом курсе, который будет доступен через MITx.

6.002x: Circuits and Electronics
(по ссылке дополнительная информация и запись на курс)

Обучение с 5 марта по 8 июня 2012 года, требует примерно по 10 часов в неделю.

Допускаются студенты со всего мира, которые обладают необходимыми знаниями по электричеству, магнетизму и дифференциальному исчислению. Среди трёх преподавателей — профессор Джеральд Сассмен, он же создатель языка Scheme и автор одного из самых лучших учебников по программированию "Structure and Interpretation of Computer Programs".

Замерзающий Eclipse 3.7 под Mac

Reading time3 min
Views2.7K
Проблема:
Эклипс 3.7 под Мак регулярно, но не очень детерминировано, замерзает (перестает реагировать и единственным способом общения с ним является 'Force Quit').
По этому поводу написано несколько до сих пор не закрытых critical багов в эклипсовской багзиле, старшему уже более полугода.
Перезапускать эклипс по десять раз на дню занятие не очень увлекательное, так что пришлось озадачиться нахождением решения, коим и хочу поделиться с вами, а заодно и некоторыми техниками его поиска.
Читать дальше →

Artensoft Tilt Shift Generator создает эффект миниатюры в фотографии

Reading time2 min
Views29K


Всем привет! Хабраюзеры, которые увлекаются фотографией, наверняка слышали о таком интересном приеме, как Tilt Shift (Тилт-шифт). Это уникальный стиль фотосъемки, при котором предмет или место снято в натуральную величину, но выглядит как миниатюрная модель. Изначально такой эффект можно было достичь при помощи специальных объективов или переходников. Так вот, буквально в начале этой недели в Рунете появился новый проект от компании Artensoft – компьютерная программа для создания tilt-shift фотографии из любого фотоснимка без применения оптики – Tilt Shift Generator. У этой программы есть свои уникальные фишки, о которых я расскажу в этом небольшом обзоре.

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

Московский GTUG — хакатон по Android 18-19 февраля 2012 г

Reading time4 min
Views824
image
Пользуетесь календарем для планирования распорядка дня? Немедленно выкиньте его на помойку — в эти выходные он вам не поможет и ваши планы будут жестоко нарушены! Спросите почему? А все потому, что грядет событие, которое ну никак нельзя упустить!

Мы говорим о Мировом Хакатоне по разработке на Android, событии, охватывающем весь наш земной глобус. Организацией события занимается более пятидесяти GTUG’ов, вот они: bit.ly/androidhackathonmap. В эти дни, 18-19 февраля 2012 года, тысячи разработчиков на android соберутся, чтобы попробовать за 48 часов поймать рыбу своей мечты разработать приложение своей мечты, заручившись поддержкой мирового сообщества, инженеров Google и коллег по GTUG.
Читать дальше →

Оптимизация ORDER BY — о чем многие забывают

Reading time2 min
Views73K
На тему оптимизации MySQL запросов написано очень много, все знают как оптимизировать SELECT, INSERT, что нужно джоинить по ключу и т.д. и т.п.

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

Упорядочивание аудиотеки. Практические советы

Reading time9 min
Views218K

Введение


Вообще, я во многих вопросах перфекционист. Если есть — нужно, чтобы было безупречно (иногда это сказывается отрицательно, но сейчас не об этом). Свою аудиоколлекцию я тоже привык держать в чистоте. Но со временем, при пополнении стало накапливаться много мелких неприятностей. Вот некоторые из них:
  • Разные шаблоны для имен файлов: 4 — Звезда | 04 — Звезда | 04. Звезда
  • Разные имена исполнителей в тегах: Чиж & Co | Чиж и Ко. | Mylene Farmer | Mylène Farmer
  • Не указаны исполнители альбома (что приводит к полному бардаку в альбомах-компиляциях)
  • Не совсем корректная информация об альбомах, состоящих из нескольких дисков
  • Путаница в годах изданий и переизданий (ремастеринг, и т.д.)
Ну и прочие мелочи.
Часто у пользователей коллекции составляют несколько тысяч, а иногда — несколько десятков тысяч записей. Так что, перелопачивать все вручную — долго и неэффективно.

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

Итак, начнем...

Улучшаем юзабилити за 5 минут

Reading time4 min
Views7.3K
В этой блогозаписи я намерена поделиться несколькими такими советами по увеличению юзабилити сайта, каждый из которых очень лёгок в реализации. Не все они кросс-браузерны, но всё равно они «глазурь на тортике»: читатель и не заметит, что их нет.

1. Отображайте нажатия кнопок и кнопкоподобных ссылок


Мой излюбленный совет. Когда стиль кнопки задаётся в CSS, или когда для отображения необычной кнопки используется рисунок (либо как фон, либо как элемент <img />), то кнопка не реагирует на нажатие во всех или в некоторых браузерах (зависит от ситуации). Вот какой простой уловкою вы можете дать знать посетителю сайта, что он и впрямь нажал на нечто нажимаемое:

.mybutton:active {
   position: relative;
   top: 1px;
   left: 1px;
}

Этим кодом кнопка смещается на 1 пиксел направо и на 1 пиксел вниз, когда её нажимают. Испробуйте: выглядит весьма убедительно.

Есть другие, не менее быстрые варианты: придать границе свойство inset, указать свойству text-indent значение 1px, изменить направление градиентного фона (что можно сделать быстро, если для этого не придётся прибегнуть ко графическому редактору, то есть если где-то ещё на сайте используется готовый перевёрнутый градиент), или комбинация нескольких из них.

2. Плавные переходы (CSS3 transitions)


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

Пристальный взгляд на шаблоны мобильных интерфейсов

Reading time5 min
Views6.1K


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

Эти 70 шаблонов проиллюстрированы сотнями примеров приложений для операционных систем Apple, BlackBerry, Android, Symbian, Windows и WebOS будут изданы O’Reilly Media как «Mobile Design Pattern Gallery». Ниже приведена одна из моих любимых глав — Приглашение.

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

Интересный багфикс, или поломай скайп полностью

Reading time2 min
Views9.6K
После недавней статьи все наверное стали (чаще) использовать теги для «пущей убедительности». ну например
<font color="#FF0000">НЕ забудь деньги!</font>
ну или более убедительный
<font size="42">НЕ забудь деньги!</font>
ну и вот, во что это вылилось:

ещё не догадались в чём дело?
Читать дальше →

Еще один рейтинг популярности языков программирования

Reading time1 min
Views17K
Я нашел еще один (очень простой) график, отражающий рейтинг языков программирования. Всё элементарно: по горизонтали — количество проектов на Github, по вертикали — количество вопросов на Stackoverflow.



Я позволил себе провести на этом графике две красные диагональные линии, чтобы показать как наглядно отделены друг от друга мейнстрим (C++, C#, Java, PHP, Javascript и т.д.), группа «альтернативного мировозрения» (Scala, Haskell, Erlang, Prolog, Lisp) и откровенный трэш (всё, что ниже). По-моему, проще некуда. Никаких там годовых колебаний в полтора процента, высчитанных по непонятным формулам.
Взято тут.

UPD: сорри за мини-троллинг со словом «трэш» — зато он породил весьма интересную дискуссию в комментариях. Всем высказавшимся — спасибо.

Дерево существующей реальности

Reading time3 min
Views16K
Все мы ежедневно (иногда и ежечасно) дома или на работе сталкиваемся с проблемами разного характера. Некоторые из них решаются сами собой, на некоторых нужно сосредоточить все свое внимание на немалый срок. Мы будем говорить скорее о последних.

Бывали ли вы в ситуации, когда нужно срочно решить какой-то вопрос, а все мысли, как назло, куда-то улетучились?
Или вас уже давно не устраивают, скажем, результаты работы ваших программистов, но вы не можете понять, в чем причина?
Или вы хотите разрешить какой-то давно мучающий вас вопрос, но не знаете, с какой стороны к нему подступиться?
Если вы ответили «да» хотя бы на один из вопросов, то эта статья для вас.

Прошу под кат!

NB: Это первая статья из серии «Техники анализа проблем и принятия решения».

NB2: Рассмотренные в примере выводы являются приблизительными и основаны на полностью выдуманной ситуации.

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

Обзор LLVM

Reading time13 min
Views87K
LLVM (Low Level Virtual Machine) — это универсальная система анализа, трансформации и оптимизации программ или, как её называют разработчики, «compiler infrastucture».

LLVM — не просто очередной академический проект. Его история началась в 2000 году в Университете Иллинойса, а теперь LLVM используют такие гиганты индустрии как Apple и Adobe. В частности, на LLVM основана подсистема OpenGL в MacOS X 10.5, а iPhone SDK использует GCC с бэкэндом на LLVM. Apple является одним из основных спонсоров проекта, а вдохновитель LLVM — Крис Латтнер — теперь работает в Apple.

В основе LLVM лежит промежуточное представление кода (intermediate representation, IR), над которым можно производить трансформации во время компиляции, компоновки (linking) и выполнения. Из этого представления генерируется оптимизированный машинный код для целого ряда платформ, как статически, так и динамически (JIT-компиляция). LLVM поддерживает генерацию кода для x86, x86-64, ARM, PowerPC, SPARC, MIPS, IA-64, Alpha.

LLVM написана на C++ и портирована на большинство *nix-систем и Windows. Система имеет модульную структуру и может расширяться дополнительными алгоритмами трансформации (compiler passes) и кодогенераторами для новых аппаратных платформ. Пользовательский фронтенд, как правило, линкуется с LLVM и использует C++ API для генерации кода и его преобразований. Однако LLVM включает в себя и standalone утилиты.

Для тех, кто не без оснований считает C++ не лучшим языком для написания компиляторов, с недавних пор в LLVM включена обертка API для OCaml.

Чтобы понять, что можно сделать с помощью LLVM, и на каком уровне придётся работать, давайте разберёмся,
что из себя представляет LLVM IR.

Размер Java объектов. Используем полученные знания

Reading time5 min
Views14K
В предыдущей статье много комментаторов были не согласны в необходимости наличия знаний о размере объектов в java. Я категорически не согласен с этим мнением и поэтому подготовил несколько практических приемов, которые потенциально могут пригодится для оптимизации в Вашем приложении. Хочу сразу отметить, что не все из данных приемов могут применяться сразу во время разработки. Для придания большего драматизма, все расчеты и цифры будут приводится для 64-х разрядной HotSpot JVM.

Денормализация модели

Итак, давайте рассмотрим следующий код:
class Cursor {
    String icon;
    Position pos;
    Cursor(String icon, int x, int y) {
         this.icon = icon;
         this.pos = new Position(x, y);
    }
}
class Position {
    int x;
    int y;
    Position(int x, int y) {
        this.x = x;
        this.y = y;
    }
}

А теперь проведем денормализацию:
class Cursor2 {
    String icon;
    int x;
    int y;
    Cursor2(String icon, int x, int y) {
        this.icon = icon;
        this.x = x;
        this.y = y;
    }
}

Казалось бы — избавились от композиции и все. Но нет. Объект класса Cursor2 потребляет приблизительно на 30% меньше памяти чем объект класса Cursor (по сути Cursor + Position). Такое вот не очевидное следствие декомпозиции. За счет ссылки и заголовка лишнего объекта. Возможно это кажется не важным и смешным, но только до тех пор, пока объектов у Вас мало, а когда счет идет на миллионы ситуация кардинально меняется. Это не призыв к созданию огромных классов по 100 полей. Ни в коем случаем. Это может пригодится исключительно в случае, когда Вы вплотную подошли к верхней границе Вашей оперативной памяти и в памяти у Вас много однотипных объектов.
Читать дальше →

Вопросы Леонардо да Винчи

Reading time3 min
Views15K
Здравствуйте!

Это вторая из трех статей о техниках анализа проблем и принятия решений (первая здесь).

Сегодня речь пойдет о технике, которая называется «Вопросы Леонардо да Винчи» и является скорее способом мозгового штурма.
Откуда такое название? По непроверенной информации метод этот появился после расшифровки и анализа дневников гения, в которых и было найдено описание, а также следы неоднократного применения данного метода.

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

Примеров в этой статье не будет по двум причинам.
1. Пример в первой статье оказался крайне неудачным
2. Текст получился бы слишком громоздким, если бы я использовал хотя бы один пример (сейчас поймете почему)

Всех заинтересовавшихся прошу под кат.

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

Список проверки глупых вещей — Лимончелли

Reading time4 min
Views12K
Многим известны книги Томаса Лимончелли по системному администрированию, очень ценные для админа книжки. На его сайте тоже немало интересного, среди прочего нашёл такую статью: «A list of dumb things to check». На русском языке она, к сожалению, не нагуглилась, переводил сам. После допилинга под свои условия буду использовать как часть КМБ у себя в отделе, а первоначальный перевод выкладываю тут.
Читать дальше →

Information

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