Хабрахабр:
Я занимаюсь разработкой статического анализатор кода PVS-Studio для анализа программ на языке Си/Си++. После появления в PVS-Studio 4.00 анализа общего назначения мы получили множество откликов, как положительных, так и отрицательных. Кстати, предлагаю скачать новую версию PVS-Studio, в которой благодаря откликам людей было поправлено большое количество ошибок и недочетов. В ходе обсуждения PVS-Studio 4.00 вновь встал вопрос, можно ли реализовывать большинство проверок, используя регулярные выражения, и не переусложняем ли мы, говоря, что обязательно необходимо строить и работать с деревом разбора. Вот пример комментария на эту тему. Подобный вопрос возникает уже не в первый раз, и я решил написать статью, чтобы объяснить, почему пытаться использовать регулярные выражения для анализа Си/Си++ кода ? эта очень плохая идея. Те, кто знаком с теорией компиляции, конечно же понимают, что язык Си++ можно разбирать только на основе грамматик, а не регулярных выражений. Но большинство программистов с теорией компиляции не знакомы и продолжают твердить про регулярные выражения для поиска ошибок в коде программ. Читать дальше →
Хочется просто сказать рекламным слоганом типа: ?поиск попутчиков ? это podorozhniki.com?. Но за такой обзор нашего стартапа, вероятно, получил бы бан поста. Рисковать не стану и расскажу обо всем по порядку, стараясь не отнять у вас слишком много времени. Мы запустили наш стартап, который вскармливался почти полгода нашими нервами, бессонными ночами, знаниями и конечно же вдохновением и мыслями о прекрасном и светлом будущем. Пост о проекте уже был на lifehacker.ru. Предлагаю вам расширенный обзор. Podorozhniki.com ? это глобальный и удобный carpool (carsharing) сервис, который позволяет рационально и разумно использовать транспорт, объединяя водителей и пассажиров, которым по пути. Сервис отлично подходит как для поездок по городу, так и для поездок между городами, странами. Работает везде где есть покрытие Google Maps (в дальнейшем будут и Yandex карты). Читать дальше →
Android ? перспективная и динамично развивающаяся операционная система. И многие программисты хотят научиться программировать приложения для OS Android, но беглый поиск структурированных материалов в сети Интернет и, в частности, Рунете, приводит их в ступор. Действительно, до сих пор существует проблема поиска обучающих статей (особенно на русском языке) по разработке приложений для этой весьма популярной операционной системы. Ну, что ж, будем потихоньку улучшать данную ситуацию при помощи Хабра. Сразу предупрежу, что материалы предназначены для тех, кто не имеет опыта разработки приложений для Android, но очень-очень хочет этот опыт приобрести. Читать дальше →
Здравствуйте дорогие хаброчитатели! Думали ли Вы когда-нибудь о том, чтобы Ваш сайт одинаково хорошо работал с включенным JavaScript-ом и без JavaScript-а? Чтобы, если JavaScript включен, блоки сайта перегружались AJAX-сом, а если JavaScript-а нет, то происходил просто переход на новую страницу? Хмм? Я думаю, что это интересная задачка, и вот какое простое решение мне удалось придумать. В этой статье я попытаюсь в общих чертах описать суть этого решения, не вдаваясь особо в неинтересные детали. Для себя я сформулировал задачу, по следующим критериям: Переход по разделам сайта внутри и вне блоков должен осуществляться обычными ссылками, без каких бы то ни было onclick=???. При включенном JavaScript-е блоки сайта перегружают только свою область страницы (свой div). При выключенном JavaScript-е должен происходить обычный переход по ссылке. Должен существовать только один глобальный обработчик нажатия на ссылки $(?a?).click(?), который и делает всю работу по перегрузке нужных элементов страницы. Если же JavаScript отключен, то этот обработчик просто не срабатывает, и сайт продолжает работать в обычном режиме. Постинг форм при включенном JavaScript-е также обновляет только ту область, в которой находится эта форма. При отключенном ? все работает как обычно. Должна быть возможность запретить AJAX-презагрузку некоторым областям страницы, например, поставив им какой-нибудь класс ?noajax?. Это если после перехода по ссылке меняется слишком много данных на странице, и они все в разных блоках. Тогда разумней перегрузить всю страницу целиком, чем обновлять каждый блочёк по отдельности. Оно и быстрее будет. Должна быть возможность указать ссылке блок, который она должна перегрузить. Допустим, если нам нужно перегрузить не только текущий блок, но и блок родитель. Если блок был загружен ранее, то он должен браться из кеша, дабы не гонять лишний трафик и не напрягать лишним запросом сервер. В случае, если блок загружен из КЭШа, пользователь должен как-то понимать что эта не самая актуальная информация, и иметь возможность обновить блок. Никакого JavaScript-a. Это конечно мое личное мнение, но я ненавижу писать на JavaScript-е. Поэтому я добавил еще один пункт. Смысл его в том, чтобы разрабатывая модули к сайту я не писал ни строчки JavaScript-а (ну максимум одну-две на модуль, и то для каких-нибудь чекбосов в форме). Не знаю, как ты, дорогой хаброчтец, но я, твою мать, лучше продам свою душу дьяволу, чем буду дебажить свой JavaScript во всех многообразиях браузеров! Ну, вот собственно и все пожелания. Итак, приступим к реализации? Читать дальше →
Мы видим каждый день на вывесках, афишах, упаковках, в книгах и журналах; фактически вы могли бы смотреть на него сейчас, читая оригинал данной статьи ? латинский алфавит, или проще говоря ? латиница, самый распространенный в мире алфавит. Книгопечатание является совсем недавним открытием, но для того, чтобы докопаться до происхождения алфавитов, нам нужно окунуться далеко в прошлое, в эпоху зарождения цивилизации. Роберт Брингхерст пишет, что письмо это ?твердая форма? языка, результат. Но письмо, конечно же, намного большее, и его происхождение, его эволюция, и то, как оно сплелось с нитями цивилизации несомненно превращает его в удивительную историю. И эта история охватывает около 5000 лет. Мы будем путешествовать на огромные расстояния, встречая императора, умницу Йоркширца, финикийскую принцессу Иезавель, ?пурпурных людей?; мы пройдем через пустыни и плодородные равнины, переправимся через океаны. Мы начнем с того момента, когда зародилась цивилизация, пройдем через Средневековье, эпоху Возрождения, при этом обнаружим где же на самом деле возник наш алфавит, как и почему он стал развиваться, и почему же ?А? выглядит как ?А?. Читать дальше →
Да, не так давно еще компания AOL была одной из наиболее известных интернет-компаний, создавая продукты, равных которым не было. В свое время эта компания владела популярнейшим в СНГ сервисом мгновенных сообщений ICQ, кроме того, AOL была принята в медиа-империю, которая называется Time Warner. Но затем у AOL все как-то пошло наперекосяк. То ли компания не успевала идти в ногу со временем, то ли грамотных руководителей там не нашлось, но AOL постепенно растеряла весь свой авторитет и наработки, включая ICQ, и теперь вот ее руководство ищет способы сбыть компанию с рук. Читать дальше →
Вчера вечером, на конференции в Сан-Франциско ?D: Dive into Mobile?, Andy Rubin отвечающий за Android в Google продемонстрировал прототип планшета производства Motorola с Android 3.0 на борту, а так же новую версию приложения для мобильных устройств ? Google Maps 5.0. Планшет имеет возможность для видео-чата, процессор от NVIDIA, ?dual core 3D processor?, но физические характеристики не уточняются. Как заметили журналисты, новая версия очень отличается от того, что сейчас на рынке ? 3.0 хоть и имеет на своём экране привычную сетку иконок, но приложения выглядят более десктопно и отсутствуют традиционные кнопки Android-а. Выход этого комплекта на рынок ожидается в 2011 году. Что же касается Google Maps 5.0, то основными нововведениями являются векторный рендер карт и возможность кэшировать для работы в off-line. Ожидается, что можно будет заранее проложить маршрут и закэшировать его, но для перепрокладки маршрута всё равно потребуется соединение с интернетом. так же расширили мульти-тач жесты: зум и возможность вращать карту. Большинство современных Андройд-фонов начинася с Droid должны поддерживать большинство, если не все, возможности новой версии, но всё зависит от конкретной трубки (3д рендер и мультитач). Интересно то, что Nexus One поддерживает векторное отображение карт, но будет отсутствовать возможность их вращать в силу мультитач ограничений. Ниже список устройств, которые на 100% совместимы с 5.0 фишками. Обновление должно появиться в течении нескольких дней. * Galaxy S * Droid * Droid X * Droid 2 * Droid Incredible * Evo * Nexus S * G2 Под катом много основных скриншотов

Отписаться от этой рассылки