Буквально на днях вышел QtCreator 2.5.0, и в нем появился плагин TODO. Но этот плагин поддерживает комментарии вида: <KEYWORD>: <some text>, а я везде использую doxygen комментарии: @<KEYWORD> <SOME_TEXT>. Поэтому я решил доработать плагин, так чтобы он мог поддерживать комментарии обоих видов.
Programmer
Портируем C/C++ библиотеку на JavaScript (xml.js)
7 min
21KTranslation
Статья является дополненным переводом статьи «HOWTO: Port a C/C++ Library to JavaScript (xml.js)» (автор: azakai). Автор оригинальной статьи имеет приличный опыт портирования C/C++ библиотек в JavaScript. В частности, он успешно портировал lzma.js и sql.js. В своей статье он описывает общую схему портирования C/C++ кода на примере libxml – открытой библиотеки для валидации XML.
+47
Отчет ФБР о криптовалюте Биткойн
4 min
13K
Федеральное бюро расследований США обеспокоено потенциалом отмывания денег и другой криминальной деятельности в анонимной платежной системе Биткойн. Таковы выводы, которые можно сделать, ознакомившись с появившимся на этой неделе в сети документом под названием «Виртуальная валюта Биткойн: уникальные особенности представляют отдельные затруднения сдерживания незаконной деятельности» (Bitcoin Virtual Currency: Unique Features Present Distinct Challenges for Deterring Illicit Activity).
Опубликованный 24-ого апреля отчет не засекречен, но помечен как документ исключительно для официального использования, и 9-ого мая произошла его утечка в Интернет. В документе показаны не только оценки системы, но и непреднамеренно описаны советы пользователям криптовалюты, следуя которым они могут оставаться более анонимными.
+67
Web-технология vs Скорость разработки и производительность
3 min
6.2KПродолжая тему предыдущего поста, прокомментирую слова tushev:
У меня нет универсального решения, и конечно я понимаю, что есть реальность, данная нам сегодня в ощущениях (исторические наслоения в виде HTML и CSS всех версий, HTTP). И очень тяжело что-либо изменить глобально. Но я хочу, чтобы каждый разработчик задумался над абсурдностью современного состояния дел в web-технологии. Иначе кардинального решения не будет ни у кого и никогда. Поэтому приведу факты, наводящие на размышления.
Пример UI 20-летней давности, который я предлагаю сначала воспроизвести всем апологетам HTML и CSS на этих языках, прежде чем минусовать «карму»:

А еще интерфейс в старинной OS/2 требовал на порядки меньше ресурсов CPU и памяти.Да, это действительно так – на порядки.
У меня нет универсального решения, и конечно я понимаю, что есть реальность, данная нам сегодня в ощущениях (исторические наслоения в виде HTML и CSS всех версий, HTTP). И очень тяжело что-либо изменить глобально. Но я хочу, чтобы каждый разработчик задумался над абсурдностью современного состояния дел в web-технологии. Иначе кардинального решения не будет ни у кого и никогда. Поэтому приведу факты, наводящие на размышления.
Пример UI 20-летней давности, который я предлагаю сначала воспроизвести всем апологетам HTML и CSS на этих языках, прежде чем минусовать «карму»:

+108
Советы начинающим фрилансерам
3 min
65KНесколько сумбурных мыслей о фрилансе. Не воспринимайте каждое слово буквально.
Скорее всего вы действительно ничего не знаете. Но, поверьте, вокруг так много мудаков и слабоумных, что если вы действительно хотите учиться и вам нравится то, что вы делаете, то для вас быстро найдётся работа.
Я ничего не знаю, мои услуги никому не нужны.
Скорее всего вы действительно ничего не знаете. Но, поверьте, вокруг так много мудаков и слабоумных, что если вы действительно хотите учиться и вам нравится то, что вы делаете, то для вас быстро найдётся работа.
+42
Императивный RegExp. Нотация
5 min
2.2KRegular Expressions For All (REFA)
Существует множество систем для поиска подстрок отвечающих определенной маске. К сожалению они теряют свою мощь как только приходится учитывать многие факторы. Конструкции становятся громозкими, непонятными и трудноподдерживающими.
Именно для этого я попытался создать аналог – REFA. Регулярные выражения для всех.
Его идея в следующем. Как только регулярное выражение перестает быть очевидным – разбить его на два. Оптимизатор при возможности все равно сведет его в одно, таким образом в скорости потерь не будет, но зато код станет яснее.
Основная идея
Существует множество систем для поиска подстрок отвечающих определенной маске. К сожалению они теряют свою мощь как только приходится учитывать многие факторы. Конструкции становятся громозкими, непонятными и трудноподдерживающими.
Именно для этого я попытался создать аналог – REFA. Регулярные выражения для всех.
Его идея в следующем. Как только регулярное выражение перестает быть очевидным – разбить его на два. Оптимизатор при возможности все равно сведет его в одно, таким образом в скорости потерь не будет, но зато код станет яснее.
-1
Официальный мануал по Dart и обновлённый Dart Editor
1 min
4.3KКоманда инженеров Google, ответственная за разработку «замены JavaScript» языка программирования Dart, на днях представила его первый официальный обзор, опубликовав перед этим около месяца назад его полную спецификацию. Обзор предназначен, прежде всего, для быстрого знакомства с языком или получения по нему быстрой справки. Рассмотрены такие базовые темы для любого мануала как «Hello, world», переменные, типы данных, функции, управление выполнением, исключения, ООП, библиотеки и пространства имён.
+10
Домашняя электронная библиотека: MyHomeLib + FBD
6 min
117KДумаю, практически каждый любитель электронного чтения сталкивался с ситуацией, когда объем скачанных из сети книг увеличивается настолько, что найти в папке с ними нужную книгу становится сложнее, чем скачать ее заново. В этом случае многие пытаются систематизировать коллекцию, некоторые оставляют все как есть и продолжают скачивать все подряд в надежде когда–нибудь привести все в порядок, другие же просто перестают скачивать книги в надежде на то, что при необходимости все нужное найдется в интернете.
+15
Итак, вы решили запретить копирование объектов класса в C++
4 min
49K
Прием простой и с виду очевидный, тем не менее, при его использовании возможны подводные камни, приводящие к ошибкам, которые проявятся нескоро и поиск которых может занять не один день.
Рассмотрим возможные проблемы.
+30
LINQ to Objects на языке C++
4 min
16KВсё началось с того, что я в институте и после его окончания писал код на C++ и не знал бед. Но тут в один прекрасный день пришлось писать код под .NET на C#. Сперва немного поплевался, но потом ничего — втянулся. Увидел выгодные отличия от C++: безопасность, строгость и т.д. Также не смог обойти стороной LINQ при работе с коллекциями…


+74
Функциональное программирование для всех
33 min
354KTranslation

Доброго времени суток. Это статья — перевод заинтересовавшего меня поста в блоге аспиранта Университета штата Нью-Йорк в Стоуни-Брук. Статья в доступной форме описывает основные концепции функционального программирования, их преимущества и недостатки. Думаю она будет полезна широкому кругу читателей, которые сомневаются, нужно ли им углубляться в мир функционального программирования или нет. Пожелания, предложения и замечания по переводу и терминологии принимаются по личной почте.
Мнение переводчика может иногда не совпадать с мнением автора, но переводить статью было крайне занимательно.
UPD: альтернативный вариант перевода вы можете найти на rsdn (спасибо flamingo за ссылку).
+174
SSH и FTP через Dropbox
2 min
15KВсем доброго хабрадня!

Сегодня я расскажу вам, уважаемые хабралюди, об одной бредовой идее, пришедшей в мою голову и даже воплощённой в жизнь.
Внимание! Всё нижеописанное не является руководством к действию и воспринимать это стоит не иначе как юмор. А то больно всерьёз все восприняли… =)
Для начала немного предыстории. Недавно возникла очень острая необходимость в ssh доступе на некоторый unix-based компьютер, дабы выполнить тамне совсем здоровую голову пришла мысль: а что если заюзать дропбокс?

Сегодня я расскажу вам, уважаемые хабралюди, об одной бредовой идее, пришедшей в мою голову и даже воплощённой в жизнь.
Внимание! Всё нижеописанное не является руководством к действию и воспринимать это стоит не иначе как юмор. А то больно всерьёз все восприняли… =)
Для начала немного предыстории. Недавно возникла очень острая необходимость в ssh доступе на некоторый unix-based компьютер, дабы выполнить там
svn diff > mypatch.diff
и перекинуть результат по ftp. Но оказалось, что целевая машина по некоторым причинам не хочет пинговаться! Причём, по словам админов, и не предвидится пинг к ней, хотя выход в интернет она имеет. И я решил, что неплохо бы пробросить ssh через что-то стороннее. В голову сразу начали лезть VPN, reverse ssh, туннели и прочее. Но для большинства решений нужна дополнительная машина и/или дополнительный софт, либо это требует перенастройки самой сети (что для меня совсем не вариант — сеть-то не моя). Я уже готов был отчаяться и гуглить упорнее, но тут в мою +33
Релиз Clojure 1.4
2 min
1.9K
После нескольких месяцев разработки вышла новая версия языка Clojure — 1.4. Clojure — Lisp'образный язык программирования общего назначения, работающий на платформах JVM и CLR, известный специальными средствами для упрощения разработки concurrency кода.
Среди изменений стоит отметить:
+17
Использование Grab:Spider для парсинга сайтов
4 min
19KВсем привет!
Я активный пользователь open-source фрэймворка Grab (itforge уже писал о нем здесь и здесь) и 1/2 проекта GrabLab (который занимается собственно коммерческой эксплуатацией фрэймворка). Т.к. парсим сайты мы часто, помногу и задания как правило совершенно не похожи друг на друга, хотелось бы поделится своим опытом в вопросе построения типичного парсинг проекта.
В качестве рабочего браузера я использую FireFox с плагинами HttpFox (анализировать входящий/исходящий http трафик), XPather (позволяет проверять xpath выражения), SQLite Manager (просмотр sqlite таблиц), код набираю в emacs, где активно использую сниппеты (YASnippets) для часто встречающихся конструкций.
Из-за специфики фрэймворка, как правило, на первом этапе сайт полностью (или если данных много — то частично, для удобства последующей разработки) сохраняется в локальный кэш на базе mongodb, что очень экономит время, т.к. считывание страниц идет из кэша.
Я активный пользователь open-source фрэймворка Grab (itforge уже писал о нем здесь и здесь) и 1/2 проекта GrabLab (который занимается собственно коммерческой эксплуатацией фрэймворка). Т.к. парсим сайты мы часто, помногу и задания как правило совершенно не похожи друг на друга, хотелось бы поделится своим опытом в вопросе построения типичного парсинг проекта.
Немного про инструментарий который помогает мне в работе
В качестве рабочего браузера я использую FireFox с плагинами HttpFox (анализировать входящий/исходящий http трафик), XPather (позволяет проверять xpath выражения), SQLite Manager (просмотр sqlite таблиц), код набираю в emacs, где активно использую сниппеты (YASnippets) для часто встречающихся конструкций.
Из-за специфики фрэймворка, как правило, на первом этапе сайт полностью (или если данных много — то частично, для удобства последующей разработки) сохраняется в локальный кэш на базе mongodb, что очень экономит время, т.к. считывание страниц идет из кэша.
+31
PayPal намерен создать собственную небанковскую кредитную организацию в России
1 min
2.5KРБК daily сегодня сообщает, что российское представительство PayPal подало документы в Центральный банк на создание небанковской кредитной организации (НКО).
Председатель совета директоров QIWI Group (Борис Ким), комментируя это событие, пояснил, что после оформления НКО компания PayPal сможет сама эмитировать электронные деньги, а не просто привязывать счета к банковским картам и заниматься процессингом. (Это увеличит объём средств, который компания будет получать напрямую от абонентов, минуя банки-партнёры.)
Председатель совета директоров QIWI Group (Борис Ким), комментируя это событие, пояснил, что после оформления НКО компания PayPal сможет сама эмитировать электронные деньги, а не просто привязывать счета к банковским картам и заниматься процессингом. (Это увеличит объём средств, который компания будет получать напрямую от абонентов, минуя банки-партнёры.)
+41
Не зная брода, не лезь в воду. Часть третья
8 min
13K
Продолжу рассказы о том, как программисты ходят по краю, даже не подозревая об этом. Поговорим об операциях сдвига <<, >>. Принципы работы операторов сдвига очевидны и многие программисты даже не знают, что их использование согласно стандарту Си/Си++ может приводить к неопределенному или к неуточненному поведению (undefined behaviour/unspecified behavior).
+100
+46
Еще раз о том, как уехать учиться за границу
4 min
95KЭтой истории уже почти год, однако после недавнего общения с пригласившим меня на хабр andorro я все же решил выложить этот текст на Хабр. Тема как мне кажется достаточно актуальна — как бесплатно продолжить обучение зарубежом. Сейчас я учусь в аспирантуре Университета Мельбурна (Австралия) на факультете информационных систем. Надеюсь, мой опыт будет интересен и полезен.

Идея сделать карьеру в науке возникла у меня в январе 2011 года. На тот момент я уже был аспирантом ВШЭ, куда поступил в ноябре 2010, однако вариант ухода в науку с возможностью заниматься ей 2-3 часа после работы не устраивал совсем. Перед глазами у меня были примеры моих одногруппников и однокурсников, которые не особенно выделяясь во время учебы, уехали получать PhD в Швейцарию, Великобританию и США, получая при этом стипендии/зарплаты, сравнимые с доходами программистов 1-3 годами опыта. С этого момента я решил проследовать их путем.

Идея сделать карьеру в науке возникла у меня в январе 2011 года. На тот момент я уже был аспирантом ВШЭ, куда поступил в ноябре 2010, однако вариант ухода в науку с возможностью заниматься ей 2-3 часа после работы не устраивал совсем. Перед глазами у меня были примеры моих одногруппников и однокурсников, которые не особенно выделяясь во время учебы, уехали получать PhD в Швейцарию, Великобританию и США, получая при этом стипендии/зарплаты, сравнимые с доходами программистов 1-3 годами опыта. С этого момента я решил проследовать их путем.
+113
Коды возврата & исключения
3 min
18KЗамечательные статьи публиковались в последнее время, хотелось бы добавить ещё несколько абзацев по данной теме.
Уважаемые авторы предыдущих топиков как-то упускали тот момент (или мне показалось? или это само-собой подразумевается?) что exceptions возникли как инструмент для решения весьма утилитарной задачи —
Уважаемые авторы предыдущих топиков как-то упускали тот момент (или мне показалось? или это само-собой подразумевается?) что exceptions возникли как инструмент для решения весьма утилитарной задачи —
+58
Реализация exceptions на plain C
4 min
7.1KПродолжение вот этой статьи habrahabr.ru/post/131212, где я собирался показать, как «и ошибки удобно обрабатывать и exceptions при этом не использовать», да всё руки не доходили.
Итак, будем считать, что у нас ситуация, что «настоящие C++ exceptions» использовать нельзя — например, языком разработки является C или компилятор С++ для нашей платформы не поддерживает exceptions (или формально поддерживает, а реально этим пользоваться нельзя). Это, конечно, нетипично для desktop приложений, но вполне обычно для embedded разработки.
Итак, будем считать, что у нас ситуация, что «настоящие C++ exceptions» использовать нельзя — например, языком разработки является C или компилятор С++ для нашей платформы не поддерживает exceptions (или формально поддерживает, а реально этим пользоваться нельзя). Это, конечно, нетипично для desktop приложений, но вполне обычно для embedded разработки.
+31
Information
- Rating
- 2,459-th
- Registered
- Activity