Начал замечать что на Хабре появляются статьи по программированию, может на это натолкнули фразы типа «хабр уже не тот», но это не так важно, потому как мне это нравится, всегда хотелось узнать что-то новенькое … моя первая статья привела к огромному краху, поэтому почитав людей, я повторю свои усилия и начну цикл заметок о JavaScript от самого начала и до тех пор, пока это будет востребовано =)
User
Regexp — это «язык программирования». Основы
4 min
26KНесколько лет назад я думал, что regexp осуществляет линейный поиск по тексту, но какое моё удивление было, когда я понял, что это не так. Тогда я убедился на собственном опыте, что от простой смены местами а и b в схеме (...a...)|(...b...) поменялся полностью результат.
Поэтому сейчас я расскажу, как на самом деле работает regexp.
Поняв эти простые принципы и как оно работает, вы сможете писать любые запросы.
Для примера, я разберу сложную при первом приближении, но на самом деле простейшую задачу – выявление всех строк в кавычках.
Поэтому сейчас я расскажу, как на самом деле работает regexp.
Поняв эти простые принципы и как оно работает, вы сможете писать любые запросы.
Для примера, я разберу сложную при первом приближении, но на самом деле простейшую задачу – выявление всех строк в кавычках.
+88
Атака на беспроводные сети. Чуть меньше теории и чуть больше практики
6 min
313KВ общих чертах теорию и процесс атаки хорошо описал юзер n3m0 в своих статьях «Атаки на беспроводные сети», поэтому я не буду заострять внимание на многих теоретических моментах.
Я же хочу описать самые простейшие способы обхода защиты, но более подробно.
+179
+56
Файлы, отображаемые в память
3 min
93KВ этой статье я хотел бы рассказать о такой замечательной штуке, как файлы, отображаемые в память(memory-mapped files, далее — MMF).
Иногда их использование может дать довольно таки существенный прирост производительности по сравнению с обычной буферизированной работой с файлами.
Иногда их использование может дать довольно таки существенный прирост производительности по сравнению с обычной буферизированной работой с файлами.
+44
Покажи мне свой код и я скажу тебе, кто ты…
2 min
1.5KПримерно каждые пол года, на хабре пиарится новый клон pastebin. Я решил продолжить данную традицию. Представляю вам результат моей, а так же дизайнерской трёхмесячной работы — проект showmecode.com.
Чем же отличается мой вариант, от уже существующих?
Во-первых дизайном. Обычно авторы сайтов такого характера влюбленны в минимализм. Это касается и меня, но к счастью не дизайнера, который рискнул и решил сделать такой сайт в стиле веб 2.0. Если вас не особо интересует сам сервис, стоит хотя бы зайти и оценить работу украинского дизайнера.
Во-вторых, была поставлена задача облегчить организацию дампов, поиск, а так же слежения за изменениями. В принципе, история дампов была уже реализована товарищем lizendir, в его проекте dumpz.org с которым мы давно знакомы и даже вместе работали на одной работе. Но особых преимуществ это не давало, так как не было реализована фильтрация или сортировка по тегам. На запрос этой фичи, lizendir обычно отмахивался фразой «шлите патчи»… Тогда и возникла мысль сделать всё самому.
Чем же отличается мой вариант, от уже существующих?
Во-первых дизайном. Обычно авторы сайтов такого характера влюбленны в минимализм. Это касается и меня, но к счастью не дизайнера, который рискнул и решил сделать такой сайт в стиле веб 2.0. Если вас не особо интересует сам сервис, стоит хотя бы зайти и оценить работу украинского дизайнера.
Во-вторых, была поставлена задача облегчить организацию дампов, поиск, а так же слежения за изменениями. В принципе, история дампов была уже реализована товарищем lizendir, в его проекте dumpz.org с которым мы давно знакомы и даже вместе работали на одной работе. Но особых преимуществ это не давало, так как не было реализована фильтрация или сортировка по тегам. На запрос этой фичи, lizendir обычно отмахивался фразой «шлите патчи»… Тогда и возникла мысль сделать всё самому.
+36
RightSignature или правильные подписи документов он-лайн
4 min
1.5KОб электронном документообороте и прочих радостях электронной жизни речь идет уже не первое десятилетие, начиная с изобретения компьютера вообще. Но «воз и ныне там», так как несмотря на легкость и доступность пересылки документов по почте, редактирование и просмотр онлайн в браузере, финальный акт жизни многих документов заключается в банальной распечатке и потом хождению по отделах за подписями и печатями. Но постойте, есть же электронно-цифровые подписи, даже законодательные документы, регламентирующие их оборот. Есть то есть, но сравните — документ с размашистой подписью Самого и обычный набор цифр и букв… как то не то, верно?
Решений для документооборота, включая системы, интегрированные с цифровыми подписями, есть на рынке также достаточно много, как самостоятельных, так и компонентов других систем, CRM, бухгалтерских и т.п. Но онлайн этот бум как то оминул, хотя все больше и больше компаний используют виртуальные офисы или даже вообще полностью онлайновое общение всех сотрудников. Так что спрос на онлайновые системы работы с документами должен быть. И должен быть удовлетворен. Этим и занялся стартап RightSignature.
Решений для документооборота, включая системы, интегрированные с цифровыми подписями, есть на рынке также достаточно много, как самостоятельных, так и компонентов других систем, CRM, бухгалтерских и т.п. Но онлайн этот бум как то оминул, хотя все больше и больше компаний используют виртуальные офисы или даже вообще полностью онлайновое общение всех сотрудников. Так что спрос на онлайновые системы работы с документами должен быть. И должен быть удовлетворен. Этим и занялся стартап RightSignature.
+17
Трояны в банкоматах. Официальные комментарии «Лаборатории Касперского»
2 min
1.6KНовость про появление вирусов в банкоматах наделала сегодня немало шума. На Хабре уже успели проскочить ссылки на соответствующие публикации на сайтах Lenta.ru и CNews, однако каких-либо официальных комментариев со стороны компаний, занимающихся информационной безопасностью, у нас тут так и не появилось. И вот буквально только что я получил некоторые разъяснения из «Лаборатории Касперского». Комментирует Александр Гостев, руководитель центра глобальных исследований и анализа угроз «Лаборатории Касперского»:
«Данная вредоносная программа была обнаружена и добавлена в антивирусные базы „Лаборатории Касперского“ 19 марта 2009 года под именем Backdoor.Win32.Skimer.a. Это троянская программа, которая заражает банкоматы популярного американского производителя Diebold (по неподтвержденным данным, речь идет о банкоматах, расположенных на территории РФ и Украины). На сегодняшний день отсутствует информации о реально зараженных машинах. Однако мы предполагаем, что их количество, если таковые вообще существуют, минимально. Зараженные машины становятся уязвимыми для дальнейших действий злоумышленника, а именно: имея специальную карточку доступа, вирусописатель может снять всю наличность, имеющуюся в банкомате, а также получить доступ к информации о всех проведенных через этот банкомат транзакциях других пользователей.
Принцип заражения, учитывая отсутствие реальных обращений от банков, пока не до конца очевиден. Специалисты ЛК предполагают, что речь может идти о двух возможных вариантах: прямой физический доступ к системе банкомата или доступ через внутреннюю сеть банка, к которой подключены банкоматы.
Анализ кода программы позволяет с высокой долей вероятности предположить, что его автор — гражданин одной из стран СНГ.
К сожалению, рядовой пользователь не сможет самостоятельно определить заражение банкомата. Однако это могут сделать его владельцы. Чтобы избежать возможного заражения, эксперты ЛК настоятельно рекомендуют всем банкам провести проверку эксплуатируемых сетей банкоматов при помощи обычной антивирусной программы, детектирующий данное зловредное ПО.
Backdoor.Skimer.a — первая вредоносная программа, нацеленная на заражение и существование в банкоматах. Мы не исключаем появления новых вредоносных программ, направленных на нелегитимное использование банковской информации и наличных средств.»
«Данная вредоносная программа была обнаружена и добавлена в антивирусные базы „Лаборатории Касперского“ 19 марта 2009 года под именем Backdoor.Win32.Skimer.a. Это троянская программа, которая заражает банкоматы популярного американского производителя Diebold (по неподтвержденным данным, речь идет о банкоматах, расположенных на территории РФ и Украины). На сегодняшний день отсутствует информации о реально зараженных машинах. Однако мы предполагаем, что их количество, если таковые вообще существуют, минимально. Зараженные машины становятся уязвимыми для дальнейших действий злоумышленника, а именно: имея специальную карточку доступа, вирусописатель может снять всю наличность, имеющуюся в банкомате, а также получить доступ к информации о всех проведенных через этот банкомат транзакциях других пользователей.
Принцип заражения, учитывая отсутствие реальных обращений от банков, пока не до конца очевиден. Специалисты ЛК предполагают, что речь может идти о двух возможных вариантах: прямой физический доступ к системе банкомата или доступ через внутреннюю сеть банка, к которой подключены банкоматы.
Анализ кода программы позволяет с высокой долей вероятности предположить, что его автор — гражданин одной из стран СНГ.
К сожалению, рядовой пользователь не сможет самостоятельно определить заражение банкомата. Однако это могут сделать его владельцы. Чтобы избежать возможного заражения, эксперты ЛК настоятельно рекомендуют всем банкам провести проверку эксплуатируемых сетей банкоматов при помощи обычной антивирусной программы, детектирующий данное зловредное ПО.
Backdoor.Skimer.a — первая вредоносная программа, нацеленная на заражение и существование в банкоматах. Мы не исключаем появления новых вредоносных программ, направленных на нелегитимное использование банковской информации и наличных средств.»
+62
Открывать ли публичный доступ к WiFi точке доступа?
1 min
9KТак сложилось, что у меня дома 100мбитный интернет-канал, безо всяких шейпилок и с неограниченным трафиком. Так как трафика мне не жалко — точка доступа (точнее — старенький ноут :) раздавала его налево и направо без каких-либо ограничений.
Кто-то из соседей им периодически пользовался, а мне было приятно, что кому-то от этого хорошо :)
Но тут появился странный товарищ — сначала пытаться подобрать пароль к ssh, а потом начал круглосуточно качать что-то в большом количестве, просаживая канал. КулХацкер, в общем. Пару раз заблокировал его mac — товарищ его после менял. Потом поставил простой WEP пароль — ну, думаю, поймет человек, верну обратно.
Ан нет — через пару дней он его «сломал» (не будем обсуждатьнебезопасность WEP) и продолжил качать порево что-то.
Так как заменять человеку домашнего провайдера в мои планы не входило — пришлось сегодня поднять hostapd, и вкрутить WPA2 шифрование.
Товарищ остался не у дел, но и несколько человек еще, кто-то из которых похоже просто сидел в «одноклассниках» и еще чем-то легком остался без халявного интернета.
Мне кажется, таким товарищем движет желаниенае обмануть окружающих, мол если человек не знает что надо включать щифрование — то он «лох» и его можно «обуть».
В общем — поддерживаете ли вы идею раздавать свой интернет страждущим? :)
Я вот вижу только воркэраунд — сильно шейпить трафик с «незнакомых» адресов.
UPDATE
Забавно, если сначала все поддерживали идею, то сейчас, видимо почитав «хвост» топика, крутят пальцем у виска и говорят, мол «хочешь проблем — раздавай, и ващетыдурак».
Кто-то из соседей им периодически пользовался, а мне было приятно, что кому-то от этого хорошо :)
Но тут появился странный товарищ — сначала пытаться подобрать пароль к ssh, а потом начал круглосуточно качать что-то в большом количестве, просаживая канал. КулХацкер, в общем. Пару раз заблокировал его mac — товарищ его после менял. Потом поставил простой WEP пароль — ну, думаю, поймет человек, верну обратно.
Ан нет — через пару дней он его «сломал» (не будем обсуждать
Так как заменять человеку домашнего провайдера в мои планы не входило — пришлось сегодня поднять hostapd, и вкрутить WPA2 шифрование.
Товарищ остался не у дел, но и несколько человек еще, кто-то из которых похоже просто сидел в «одноклассниках» и еще чем-то легком остался без халявного интернета.
Мне кажется, таким товарищем движет желание
В общем — поддерживаете ли вы идею раздавать свой интернет страждущим? :)
Я вот вижу только воркэраунд — сильно шейпить трафик с «незнакомых» адресов.
UPDATE
Забавно, если сначала все поддерживали идею, то сейчас, видимо почитав «хвост» топика, крутят пальцем у виска и говорят, мол «хочешь проблем — раздавай, и ващетыдурак».
+182
Передать файл
2 min
1.7KПривет!
Многие из нас обращаются к файл-хостингам с целью передать единственный файл единственному человеку. Всякое бывает: не сработала передача файла в любимом Instat-Messenger'е, в почту не влез и т. д. После факта успешной передачи ссылка на файл становится ненужной, и файл лежит на хостинге, пока его не удалят.
Иногда бывает и посложнее: файл приходится резать на куски из-за лимита по размеру, или даже запаковывать в архив с паролями из-за проблем с копирайтами.
Я постарался облегчить эту задачу, создав сервис JetBytes.com. Он упрощает передачу файла до одного клика.
Многие из нас обращаются к файл-хостингам с целью передать единственный файл единственному человеку. Всякое бывает: не сработала передача файла в любимом Instat-Messenger'е, в почту не влез и т. д. После факта успешной передачи ссылка на файл становится ненужной, и файл лежит на хостинге, пока его не удалят.
Иногда бывает и посложнее: файл приходится резать на куски из-за лимита по размеру, или даже запаковывать в архив с паролями из-за проблем с копирайтами.
Я постарался облегчить эту задачу, создав сервис JetBytes.com. Он упрощает передачу файла до одного клика.
+131
Трюки со специализацией шаблонов C++
4 min
109KСпециализация шаблонов является одной из «сложных» фичей языка с++ и использутся в основном при создании библиотек. К сожалению, некоторые особенности специализации шаблонов не очень хорошо раскрыты в популярных книгах по этому языку. Более того, даже 53 страницы официального ISO стандарта языка, посвященные шаблонам, описывают интересные детали сумбурно, оставляя многое на «догадайтесь сами — это же очевидно». Под катом я постарался ясно изложить базовые принципы специализации шаблонов и показать как эти принципы можно использовать в построении магических заклинаний.
+43
Запуск KDE 4 под Win
3 min
8.3K Ползая по просторам интернета, натолкнулся на то, что KDE портировано под Win и на данный момент уже можно установить оболочку Plasma. Пусть без эффектов и с невероятными глюками, но можно.
Решил поставить и себе, попробовать на вкус, результат в картинках смотрите сами.
Решил поставить и себе, попробовать на вкус, результат в картинках смотрите сами.
+69
Почему, сидя за компом, стоит сделать перерыв
1 min
981все нижесказанное ↓ имхо
Основываясь на своем личном опыте, я могу сказать, что после того как я сел за компьютер и залез в интернет, многие мысли о том, что было бы неплохо за ним сделать, улетучиваются из моей головы очень быстро. А когда я отхожу от него, например, попить чайку, то все они сразу же вспоминаются.
Так может быть, это работает не только со мной, помешанном на компах гиком, но и с Вами? Попробуйте, может быть это спасет вам несколько минут/часов, и вы сделаете наконец то, что хотели.
Основываясь на своем личном опыте, я могу сказать, что после того как я сел за компьютер и залез в интернет, многие мысли о том, что было бы неплохо за ним сделать, улетучиваются из моей головы очень быстро. А когда я отхожу от него, например, попить чайку, то все они сразу же вспоминаются.
Так может быть, это работает не только со мной, помешанном на компах гиком, но и с Вами? Попробуйте, может быть это спасет вам несколько минут/часов, и вы сделаете наконец то, что хотели.
+87
Призовой фонд соревнования Sapka
2 min
547Стандартная практика награждения победителей соревнования выделяет три призовых места. Наверное, это тянется еще с тех времен, когда многие умели считать как «раз, два, три, много». Самое значимое место было первым. Потому-что счет всегда начинался с единицы.
Но, у программистов все не так. У них все начинается с нуля и в счете они часто ограничены разрядной сеткой.
У соревнования для программистов Sapka появился генеральный спонсор призов, который учреждает призовой фонд для награждения команд-победителей энными сумами денег.
Но, у программистов все не так. У них все начинается с нуля и в счете они часто ограничены разрядной сеткой.
У соревнования для программистов Sapka появился генеральный спонсор призов, который учреждает призовой фонд для награждения команд-победителей энными сумами денег.
+12
О самоподписных сертификатах
5 min
24KВ связи с моим участием в проекте fin-ack.com постоянно сталкиваюсь с подобными замечаниями:
Как по мне, это один из случаев недопонимания и предрассудков, которых так много в отношении безопасности в Интернете. (Вроде знаменитых «Хакеров, крекеров, спамов, куки» :). Хочу разобрать его с двух точек зрения: как человека, некоторое время проработавшего в сфере защиты информации в банке и имевшего дело с большинством аспектов информационной безопасности, и как человека, занимающегося разработкой и развитием интернет-сервиса.
Но сперва отвечу на вопрос, почему у нас нет «нормального» сертификата? (На самом деле, с недавнего времени есть :) Самая главная причина в том, что в нашем списке приоритетов этот пункт стоял на N-ном месте, и только сейчас все N-1 предыдущих пунктов были выполнены. Когда работаешь над новым проектом, всегда приходится от чего-то отказываться, потому что ресурсы, прежде всего временные, ограничены…
А почему же он стоял аж на N-ном месте?
Во-первых, зачем вообще нужен сертификат SSL? Для того, чтобы зашифровать HTTP-соединение между браузером и сайтом, по которому будет передаваться пароль и какие-то другие конфиденциальные данные. Что изменится, если сертификат не подписан доверенным центром сертификации? Ничего! Соединение все равно будет зашифрованно точно также. Единственная возможная проблема: атака человек-посредине, которая в Интернете обычно является phishing'ом или pharming'ом.
я не доверяю вашому самоподписному сертификату, почему вы не купите «нормальный» сертификат?
Как по мне, это один из случаев недопонимания и предрассудков, которых так много в отношении безопасности в Интернете. (Вроде знаменитых «Хакеров, крекеров, спамов, куки» :). Хочу разобрать его с двух точек зрения: как человека, некоторое время проработавшего в сфере защиты информации в банке и имевшего дело с большинством аспектов информационной безопасности, и как человека, занимающегося разработкой и развитием интернет-сервиса.
Но сперва отвечу на вопрос, почему у нас нет «нормального» сертификата? (На самом деле, с недавнего времени есть :) Самая главная причина в том, что в нашем списке приоритетов этот пункт стоял на N-ном месте, и только сейчас все N-1 предыдущих пунктов были выполнены. Когда работаешь над новым проектом, всегда приходится от чего-то отказываться, потому что ресурсы, прежде всего временные, ограничены…
А почему же он стоял аж на N-ном месте?
Во-первых, зачем вообще нужен сертификат SSL? Для того, чтобы зашифровать HTTP-соединение между браузером и сайтом, по которому будет передаваться пароль и какие-то другие конфиденциальные данные. Что изменится, если сертификат не подписан доверенным центром сертификации? Ничего! Соединение все равно будет зашифрованно точно также. Единственная возможная проблема: атака человек-посредине, которая в Интернете обычно является phishing'ом или pharming'ом.
- При фишинге пользователя перенаправляют на сайт с похожим URL. При этом в браузере обязательно появится предупреждение про сертификат (такое же предупреждение появляется и при первом заходе на реальный сайт с самоподписным сертификатом).
В общем-то, в этой ситуации достаточно просто посмотреть к какому домену относится сертификат, и если это именно тот домен, на который вы хотели попасть, добавить сертификат в доверенные. После этого любое сообщение о недоверенном сертификате для данного сайта можно воспринимать как тревожный звоночек. - Отличие фарминга в том, что в данном случае пользователь попадет как-бы на тот сайт, на который хотел (судя по URL). Впрочем, ему также как и при фишинге будет показано сообщение о недоверенном сертификате.
+35
Типограф 2.0 — дождались!
3 min
4.4KЭтого ждали редакторы, корректоры, верстальщики, веб-девелоперы и блоггеры . Типоргаф должен был обновиться ещё в январе , но обновляется только сегодня. Итак рад представить вам Типограф 2.0!
+90
Captchaad — Каптча с рекламой
2 min
741Побывал сегодня на Startup Camp'е в Кёльне: встреча начинающих и далее продвинутых предпринимателей, инвесторов и СМИ в сфере IT, Web 2.0, Software, Mobile & Medien. Из всех презинтирующих стартапов на меня лично произвел сильное впечатление своей ясностью и потенциалом один, о чем и хочу поделиться:
+56
О важности кэшей в IT
1 min
621В обсуждении спонтанно родилась задачка, показалась интересной:
Огромный сервис выполняет запросы, результаты которых кешируются. Выполнение незакешированного запроса в десятки тысяч раз дольше, чем закешированного. Однажды что-то слегка испортилось, и процент попаданий в этот кеш упал с 99% до 98%.
Раньше сервис работал на 100 абсолютно одинаковых серверах. Сколько серверов потребуется теперь?
PS: задача не совсем строго сформулирована, но это не должно сильно мешать её решить :)
Огромный сервис выполняет запросы, результаты которых кешируются. Выполнение незакешированного запроса в десятки тысяч раз дольше, чем закешированного. Однажды что-то слегка испортилось, и процент попаданий в этот кеш упал с 99% до 98%.
Раньше сервис работал на 100 абсолютно одинаковых серверах. Сколько серверов потребуется теперь?
PS: задача не совсем строго сформулирована, но это не должно сильно мешать её решить :)
+6
Неожиданное коварство параметров по умолчанию или язык мой — враг мой
3 min
12KХочется поделиться одним поучительным примером того, как, казалось бы, совершенно безобидная возможность языка программирования может обвести вокруг пальца даже опытного разработчика.
Вот пример кода. Вопрос традиционный, что напечатает программа? Постарайтесь скомпилировать и выполнить этот очень простой код «в уме», так будет интереснее.
Не заглядывайте в ответ! Ну что, определились? Смелее!
Вот пример кода. Вопрос традиционный, что напечатает программа? Постарайтесь скомпилировать и выполнить этот очень простой код «в уме», так будет интереснее.
#include <iostream>
using namespace std;
class A {
public:
virtual void Foo (int n = 10) {
cout << "A::Foo, n = " << n << endl;
}
};
class B : public A {
public:
virtual void Foo (int n = 20) {
cout << "B::Foo, n = " << n << endl;
}
};
int main() {
A * pa = new B ();
pa->Foo ();
return 0;
}
Не заглядывайте в ответ! Ну что, определились? Смелее!
+98
Martin Fowler — GUI Architectures. Часть 2
9 min
31KВсем привет еще раз. Это опять я. Внутри хабраката перевод еще одного параграфа статьи Мартина Фаулера.
На этот раз затронута тема MVC. Фаулер весьма популярно про него написал. Я постарался популярно перевести:) Теперь можно понять, почему все носятся с MVC, как с писанной торбой. И, кстати, Фаулер прав — очень много где и много кто воспринимают MVC по-своему. Сам Фаулер пишет про оригинальный MVC, который работал на платформе Smalltalk. Очень познавательно.
Предыдущая часть тут. Оригинал статьи тут. Очень желательно прочитать первую часть, потому как Фаулер там определил общую задачу-пример, которую он решает при помощи описываемых архитектур. Если не прочитать про эту задачу, будет немного не ясно, про что речь.
Следующую часть перевода напишу, когда разозлюсь и возьму себя в руки.
На этот раз затронута тема MVC. Фаулер весьма популярно про него написал. Я постарался популярно перевести:) Теперь можно понять, почему все носятся с MVC, как с писанной торбой. И, кстати, Фаулер прав — очень много где и много кто воспринимают MVC по-своему. Сам Фаулер пишет про оригинальный MVC, который работал на платформе Smalltalk. Очень познавательно.
Предыдущая часть тут. Оригинал статьи тут. Очень желательно прочитать первую часть, потому как Фаулер там определил общую задачу-пример, которую он решает при помощи описываемых архитектур. Если не прочитать про эту задачу, будет немного не ясно, про что речь.
Следующую часть перевода напишу, когда разозлюсь и возьму себя в руки.
+15
Information
- Rating
- Does not participate
- Location
- Киевская обл., Украина
- Date of birth
- Registered
- Activity