Как стать автором
Обновить
141
0
Игорь @ZIJ

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

Отправить сообщение

Естественная сортировка строк на JavaScript

Время на прочтение14 мин
Количество просмотров46K
Задача сортировки является едва ли не наиболее часто решаемой программистами проблемой. Несмотря на то, что распространённых алгоритмов не так много и все они давно написаны и оптимизированы для любых языков и платформ, в исходниках то и дело мелькают методы SortList() и им подобные. Наверное, каждый из нас не раз писал сортировку пузырьком и удивлялся, почему же она не работает с первого раза.

Однако речь сейчас не об алгоритме сортировки, а о способе сравнения строк. Казалось бы, здесь всё тривиально — достаточно сравнить первые с начала различающиеся символы. А если в строках есть числа? Тогда такая сортировка (лексикографическая) преобразует последовательность [ 'file2', 'file10', 'file1' ] в [ 'file1', 'file10', 'file2' ]. Но человек при чтении текста воспринимает числа отдельно, и эта же последовательность, упорядоченная интуитивно, выглядит так: [ 'file1', 'file2', 'file10' ]. Такая сортировка и называется естественной (natural sort).

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

Читать дальше →
Всего голосов 38: ↑33 и ↓5+28
Комментарии16

iPhone: контакты из Вконтакте. Обновление

Время на прочтение1 мин
Количество просмотров18K
Недавно апп, призванный упростить дозвон до друзей, уже был представлен на Хабре. Вкратце: приложение позволяет импортировать контакты из популярной социальной сети, а также звонить им, писать личные сообщения и смс.

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

Читать дальше →
Всего голосов 13: ↑5 и ↓8-3
Комментарии10

C Java в Mac OS X не все так печально

Время на прочтение1 мин
Количество просмотров7.6K
картинка, чтобы не было скучноНе так давно стало известно, что Apple прекращает развитие своей собственной версии JVM. Это событие вызвало широкий резонанс, и было воспринято большинством как однозначный признак заката Java. Да, у платформы сейчас не лучшие времена, разработка новой версии идет не так быстро, как хотелось бы, но умирать еще рано.
И этому появилось подтверждение, снова от Apple: компания активно подключается к проекту OpenJDK c целью создания полноценной открытой Java-машины для Mac OS X.
Если вспомнить, что IBM также подключилась к проекту (покинув Apache Harmony), то можно предположить, что все происходящее — вовсе не закат, а новая жизнь для Java. Ведь JVM прекрасно существует под Windows, не будучи разработанной Microsoft и включенной в поставку системы.
Всего голосов 51: ↑47 и ↓4+43
Комментарии19

iPhone: контакты из ВКонтакте

Время на прочтение1 мин
Количество просмотров2.3K
Топик опубликован по просьбе Limosha, плюсы и минусы лучше направить ему. Спасибо за понимание. Дальнейший текст — от его лица.

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

Погуглив и убедившись в отсутствии приложения для iPhone, позволяющего решить проблему, я решил написать свое. Целевой функционал — проще некуда: показать список друзей с номерами телефонов. Но возможность быстро написать sms или сообщение ВКонтакте тоже показалась не лишней. Под катом — обзор того, что получилось.

Читать дальше →
Всего голосов 31: ↑16 и ↓15+1
Комментарии11

Зачем нужно и как можно учиться быстро печатать вслепую

Время на прочтение6 мин
Количество просмотров64K
В связи с повышенным интересом к слепому набору в последнее время я хотел бы поделиться мыслями и опытом по теме. Многое из этого вовсе не ново и уже встречалось на Хабре, поэтому попытаюсь как-то обобщить и систематизировать известную мне информацию, и по возможность добавить уникального контента.

Кому и зачем это нужно?


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

Когда речь идет о преимуществах печати вслепую, обычно говорят о высокой скорости набора. Печатать быстро — значит экономить время, которого порой так не хватает. Плюсы скоростной печати достаточно очевидны, однако не для всех они имеют критическую значимость. Некоторые могут вполне резонно сказать: «Мне не нужно печатать быстро, потому что у меня нет необходимости набирать большие тексты, а для переписки и прочих бытовых нужд вполне достаточно смотреть на кнопки и нажимать их одним пальцем» — и будут по-своему правы, ведь им так удобно. Но дело не только в скорости как таковой — есть два очень важных момента, касающихся здоровья, которые почему-то остаются без внимания.
Читать дальше →
Всего голосов 113: ↑99 и ↓14+85
Комментарии135

Переосмысление концепции мобильника

Время на прочтение3 мин
Количество просмотров568
Для чего мы используем наши телефоны (смартфоны, коммуникаторы, кому как больше нравится)? Можно выделить 5 основных направлений:
  • Веб (все, что делается через браузер)
  • Голосовая связь (обычные звонки, skype, fring)
  • Текстовая связь (sms, e-mail, IM)
  • Мультимедиа (просмотр и создание контента — фото/видео/аудио, чтение книг)
  • Игры

Разделение весьма условное, потому что все направления тесно переплетены между собой, достаточно вспомнить сообщения, игры и видео в социальных сетях. Интернет стоит первым пунктом неслучайно — его роль в нашей жизни сравнима уже только с теплом и пищей, и продолжает расти. Все большее распространение получают «социализированные» устройства — от телефонов с вшитыми клиентами фэйсбука и твиттера до планшетов.
Читать дальше →
Всего голосов 14: ↑3 и ↓11-8
Комментарии19

AquaSkipper — почувствуй себя водомеркой!

Время на прочтение1 мин
Количество просмотров13K
image

Этот девайс предназначен для движения по воде и лишен каких бы то ни было двигателей, кроме, разумеется, самого райдера. При этом он позволяет развивать немаленькую скорость — до 27 км/ч, что недостижимо на любых других плавучих средствах без мотора или ветреной тяги. Принцип действия сродни подводным крыльям скоростных катеров — для того, чтобы разгоняться, нужно ритмично приседать или даже прыгать, тем самым заставляя «крыло» под ногами двигаться вперед, ну а набегающий поток воды выталкивает всю конструкцию наверх — как воздух самолет. Похоже, что управление этим чудом не требует каких-либо невероятных усилий или навыков, что не может не радовать. В США стоит $500.
Под катом - видео
Всего голосов 157: ↑99 и ↓58+41
Комментарии158

Netvibes Wasabi — конкурент Google Reader

Время на прочтение1 мин
Количество просмотров2.2K
image

Netvibes — один из самых известных сервисов домашних страниц, вроде iGoogle. А Wasabi Smart Reader — продвинутая читалка, которая пока что находится в стадии закрытого бета-тестирования. Среди основных фич стоит отметить почти мгновенное обновление, поддержку виджетов (которых много) и 3 способа просмотра фидов, в частности Mosaic View — квадратные превьюшки постов с подписями (очень удобно для лент с картинками и небольшим количеством текста). А вообще, нужно пробовать самому — юзабилити на уровне, лично мне пока нравится больше, чем GoogleReader.
Еще пару скринов
Всего голосов 60: ↑50 и ↓10+40
Комментарии82

Сравнительные размеры биологических объектов

Время на прочтение1 мин
Количество просмотров787
image
Интересная флешка, в которой показаны разные мелкие штуки — от кофейного зерна до атома углерода. За масштаб отвечает ползунок снизу.
P.S. На закономерный вопрос «Почему хромосома больше сперматозоида?» ответ такой: во-первых, в сперматозоиде содержится не полная по сравнению с обычной клеткой ДНК, во-вторых, ДНК в нём как бы «заархивирована», то есть занимает минимальный объём.
Ссылка
Всего голосов 109: ↑92 и ↓17+75
Комментарии47

JRE 6.0 update 17

Время на прочтение1 мин
Количество просмотров1.1K
17е обновление содержит в основном багфиксы, связанные с безопасностью. Вместе с ним вышло и 22е обновление для JRE 5, которое станет последним общедоступным в 5й ветке.
Страница загрузки
Прямая ссылка (windows, offline)
Всего голосов 27: ↑15 и ↓12+3
Комментарии5

Вышел Firefox 3.6 beta 1

Время на прочтение1 мин
Количество просмотров498
image
Наконец, дождались :)
Что нового (кратко):
  • Движок Gecko 1.9.2
  • Смена тем без перезагрузки (поддежка Personas)
  • Передупреждение об устаревших плагинах
  • Поддержка полноэкранного HTML-5 видео
  • Новая страница диагностики about:support, на которой собрана информация об установленных расширениях и изменённых настройках
  • Поддержка Web Open Font Format (WOFF) шрифтов
  • В Window 7 на таскбаре теперь отображаются превьюшки всех вкладок, а не только активных вкладок окон
  • UPD: Вкладки теперь по умолчанию открываются справа от текущей, так что аддон Tabs Open Relative больше не нужен

Страница загрузки
Инсталлятор (русский, windows)
Всего голосов 89: ↑69 и ↓20+49
Комментарии66

Горячие клавиши Windows 7

Время на прочтение2 мин
Количество просмотров150K
Предлагаю вашему вниманию список хоткеев, использование которых делает работу с Windows 7 ещё более удобной (в скобках — альтернативный способ сделать то же самое):

Управление окнами


  • Win+Home: Свернуть/развернуть все окна, кроме активного. («Потрясти» окно)
  • Win+Space: Сделать все окна прозрачными. (Задержать курсор над небольшой кнопкой в правом нижнем углу экрана.)
  • Win+Up: Развернуть активное окно на весь экран. (Перетащить окно вверх до упора, или дважды кликнуть по верхней рамке)
  • Win+Down: Свернуть активное окно или восстановить размер, если оно развёрнуто на весь экран
  • Shift+Win+Up: Развернуть окно по высоте (Перетащить нижнюю границу окна до таскбара)
  • Win+Left/Right: Занять окном левую/правую половину монитора, или восстановить размер (Перетащить окно влево/вправо до упора)

больше хоткеев!
Всего голосов 54: ↑27 и ↓270
Комментарии18

imo.im — новый веб-мессенджер

Время на прочтение1 мин
Количество просмотров9.9K
image

В заголовке написано «новый» — и это не совсем правда, так как imo.im существует достаточно давно, хотя не было никаких громких анонсов. Он обладает лёгким и простым интерфейсом и в то же время предоставляет много интересных возможностей. Не требует регистрации, но умеет запоминать и объединять аккаунты. Поддерживает много протоколов, в том числе skype chat. Потребляет мало трафика. А ещё есть white board — коллективное пространство для рисования. Русский язык тоже в наличии. На мой взгляд, гораздо лучше meebo :)
Всего голосов 17: ↑10 и ↓7+3
Комментарии27

Часы с ручным управлением

Время на прочтение1 мин
Количество просмотров614
В них нет никакого механизма для обновления времени. В них нет вообще ничего, кроме панели с ячейками и набора деталей цифр. Зато есть полный и самый что ни на есть низкоуровневый контроль над изображением :)

image

Если вы уже решили, что это очередной бесполезный «велосипед» —

не спешите с выводами
Всего голосов 20: ↑9 и ↓11-2
Комментарии14

Уютная комнатка в системнике

Время на прочтение1 мин
Количество просмотров5.4K
Что вы представляете, услышав слово «моддинг»? Наверняка это светящийся неоном корпус или что-то в стиле стимпанк… А бывает и так:

image

Такой позитивный мод… захотелось там жить :)

еще фото
Всего голосов 192: ↑153 и ↓39+114
Комментарии62

Кубик Рубика 2.0

Время на прочтение1 мин
Количество просмотров4K
image

Модификаций Кубика существует великое множество, но тут мы имеем дело не просто с одной из них. Ведь в Rubik's TouchCube вообще нет движущихся частей! Вместо вращения сторон теперь нужно возить пальцем по граням — тачскринам и любоваться анимацией. Что ж, ждём сенсорных пятнашек…
Всего голосов 11: ↑8 и ↓3+5
Комментарии9

Задачка (без злого умысла)

Время на прочтение1 мин
Количество просмотров3.3K
Нужно заменить ровно один (любой) символ в следующей строке, причём так, чтобы она скомпилилась и было выведено ровно 20 звёздочек:
int main() { int i, n = 20; for (i = 0; i < n; i--) { printf("*"); } }

* This source code was highlighted with Source Code Highlighter.

Для тех, кто «набил руку» на особенностях C, задачка, скорее всего, сложности не представляет; но существует как минимум 3 решения, и если вы нашли одно — то это не повод расслабиться :) А может быть, вы найдёте ещё четвёртое, пятое..?
UPD 1: Первое правильное решение предложил lostmsu, остальные два — steck
Не читайте комменты, поломайте мозг!

решения
Всего голосов 65: ↑50 и ↓15+35
Комментарии100

Browser Chooser

Время на прочтение1 мин
Количество просмотров1.6K
Если вы регулярно пользуетесь разными браузерами — то у вас в таскбаре, скорее всего, большую часть места занимают именно они. Но ведь может быть иначе:

screenshot

Софтина, организующая всё это, называется Browser Chooser. Она определяет установленные в системе браузеры и позволят добавить в список вплоть до 5 штук из числа определённых или по произвольному пути. На выбор есть удобный джамплист на иконке в панели задач и отдельное меню в стиле Aero.

P.S. Поддерживается Win XP (без джамплиста естесственно)

Cтраница загрузки (есть и portable)
Всего голосов 146: ↑92 и ↓54+38
Комментарии80

Камера — дырокол

Время на прочтение1 мин
Количество просмотров1.2K
image

Идея концепта The Punch Camera проста и оригинальна: камера преобразует снимки в монохромные, формирует «печатающую матрицу» с помощью нехитрой механики, а потом остаётся лишь вставить лист бумаги и хорошенько приложиться — фото «печатается» дырочками разного диаметра. Этакий полароид, только краска не нужна и подходит любая бумага. Правда, качество не то — но ведь так и задумано :) Ещё фото — под катом.

Ещё фото - под катом
Всего голосов 89: ↑73 и ↓16+57
Комментарии55
1

Информация

В рейтинге
Не участвует
Откуда
London, England - London, Великобритания
Дата рождения
Зарегистрирован
Активность