Search
Write a publication
Pull to refresh
389
0

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

Send message

Маленькие хитрости: автоматическое восстановление вида указателя курсора

Reading time2 min
Views3.6K
Добрый день, коллеги!

Те из вас, кто пишет клиентские приложения, наверняка сталкивались с необходимостью менять вид курсора, чтобы показать пользователю, что в данный момент приложение выполняет какую-то обработку данных (длительную или не очень) или выполняет запрос к базе. Хочу поделиться маленькой хитростью, как упростить себе жизнь. Подробности под катом.
Читать дальше →

Бестиповое лямбда-исчисление, комбинаторы, Unlambda и числа Фибоначчи

Reading time11 min
Views6K
Далее пойдет рассказ о самом, на мой взгляд, хардкорном способе программирования.
Предмет поста непростой, путь будет долгим, а в качестве печеньки в конце я расскажу, как считать числа Фибоначчи на языке Unlambda.
Читать дальше →

Новый сайт «Сколково» попал под АГС

Reading time4 min
Views4.2K
Прекрасно понимая общую нелюбовь Хабравчан ко всему, где есть слово «SEO», отмечу, что правильная поисковая оптимизация является необходимой частью процесса создания и поддержания сайта, что отражено в соответствующих рекомендациях по созданию сайтов от Яндекса и Гугла.

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

Снова о раскрытии IP-адреса собеседника в Skype

Reading time2 min
Views63K
Подготовил видео демонстрацию возможности раскрытия IP-адреса собеседника через Skype.


UPD: много вопросов на тему чем отличается данная статья от этой или вот этой.

Отвечаю:
1. Там речь шла только о звонке. Я показал, что в определённой ситуации можно раскрыть и без звонка, через чат.
2. Там была только теория. А здесь видео демонстрация.

Предыстория



А началось всё с прочтения вот этой статьи.

Цитата из статьи:

«Skype, оказывается, в большинстве случаев напрямую соединяется с собеседником.»

Но никаких доказательств этого приведено не было. Меня это сильно заинтересовало. И я провёл первые предварительные тестирования.

После чего обнаружилось, что многие люди не владеют достаточными знаниями относительно этой ситуации, но вовсю готовы хвастать своими сомнительными знаниями. Дальнейшие комментарии на эту тему тому подтверждение. Кто-то считал, что нужно смотреть UDP сокеты (хотя в статье автор использовал программу cports для просмотра TCP соединений). Ещё мнения были, что выяснить IP-адрес собеседника можно только в случае, если у него выделенный IP, а в случае использования NAT это невозможно. Третьи говорили, что можно только адрес супернода выявить, поэтому автор статьи злоумышленника не вычислил и т.д.

Поэтому я решил внести ясность в ситуацию.

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

Полупроводниковые приборы — диод

Reading time3 min
Views83K
полупроводниковые приборы

Введение

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

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

Как люди принимают решения

Reading time1 min
Views3.7K

В этом выпуске вебинаров UXRussia раскрываются 5 феноменов, обнаруженных в экспериментах психологов, показывающих, как люди принимают решение. И даются рекомендации дизайнерам о том, что делать с этим знанием:
  • Люди, в основном, принимают решения неосознанно.
  • Сознание медленнее познаёт мир.
  • Люди хотят больше выбора и информации, чем они могут переработать.
  • Людям нужно чувство контроля, когда они делают выбор.
  • Люди заботятся о времени больше, чем о деньгах.

Продолжение темы

OpenGTS open-source решение для отслеживания транспортных средств

Reading time3 min
Views34K

Вступление


48 часов в пути, а то и больше, многие даже не знают, как можно провести столько времени за рулем. Они, конечно, догадываются, что существуют такие профессии как водитель грузовика – дальнобойщик, но, смею предположить, даже не думали о том, что такое долгая дорога и как проводить время за рулем.
Я люблю путешествовать и люблю свой мотоцикл. Было время, когда я мог за сутки преодолевать до 1000 км. Это очень много, даже для такой страны как Россия.

Первое о чем стоит подумать человеку, кто едет очень далеко на собственном транспорте – это безопасность. В дальней дороге может случиться что угодно: аварии, поломки, внезапные проблемы со здоровьем, да и просто может кончиться бензин. Знайте, даже если вы аля волк-одиночка, есть люди, которым вы дороги, кто думает и переживает за вас.

Именно о решении, которое позволяет отслеживать транспортные средства в реальном времени мы и поговорим сегодня.
По-подробнее

Эволюция понимания ООП

Reading time5 min
Views16K
Почти все программисты считают, что знают ООП. Я тоже так считал. Оглядевшись немного, я понял, что эволюция моего понимания ООП была немалой. Начиналось все с простого, что есть классы, у них есть методы. И если один класс представляет какое-то понятие реального мира, то вот оно — ООП. Фактически, это не статья, а просто мысли, представление того, как менялось мое понимание ООП и отношение к нему. Кстати, я не уверен, что через пару месяцев оно вновь не претерпит некоторых изменений.

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

Выявление адресов сетей провайдера

Reading time2 min
Views8.4K
Так уж вышло, что я, как и многие, люблю халяву. И в один прекрасный момент, для обеспечения онной, мне понадобилось узнать адреса сетей закреплённых за моим провайдером. Гугл простого и однозначного ответа не дал, буду рад если знатоки ткнут меня носом. Звонок провайдеру, порождающий резонный вопрос — «а зачем вам?» — отпадал. Пришлось изголяться.
Читать дальше →

Монады с точки зрения теории категорий

Reading time9 min
Views36K

Введение

Кажется, монады в программировании стали загадкой века. И для этого есть две причины:
  • недостаточное знание теории категорий;
  • многие авторы стараюстся не упоминать категории вообще.
Это как говорить об электричестве не используя мат. анализ. Достаточно для замены предохранителя, не хватит, чтобы спроектировать усилитель.

Мы начнём с простого введения в категории и функторы, затем дадим определение монады, приведём простые примеры монад в категориях и в конце приведём монадическую терминологию используемую в языках программирования.

Я уверен, что монады с точки зрения категорий почти элементарны.

Содержание

  1. Категория
  2. Функтор
  3. Естественное преобразование
  4. Монада
  5. Монады исключения и состояния
  6. Монады в программировании
  7. Ссылки
Читать дальше →

Поджарим её! Или реанимация видеокарты в духовке

Reading time3 min
Views254K
Около полугода назад моя GeForce 8800GTS 512 приказала долго жить, начав выдавать артефакты. Через некоторое время перестали грузиться «окна». В Bios же оставались артефакты и непонятные символы вместо букв.

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

Итак, кратко теория — зачем нам духовка. Дело в том, что подобные признаки умирания видеокарты свидетельствуют о том, что некоторые контакты чипа начинают «отваливаться» и давать микротрещены между контактом и припоем. Поэтому если довести припой до состояния плавления (200-230 градусов Цельсия), он может обратно «подцепить» контакт и возобновить проводимость и следовательно «оживить» видеокарту. Нагреть необходимый участок, или всю видеокарту можно разными способами. Я выбрал самый «классический» — обычную газовую духовку, хотя народ так же экспериментирует со строительными фенами и даже микроволновками с грилем.
Начнем!
Читать дальше →

Введение в OpenCL

Reading time11 min
Views63K
Эта статья посвящена основам программирования на OpenCl. OpenCl -это язык программирования на GPU/CPU, по своей структуре близкий к стандарту c99. Его развитием занимается Khronos Group, где на их сайте доступна полная документация. Во избежание полемики на тему «ну это же всё тривиально, достаточно покопаться в инете» сразу оговорюсь: в рунете информация на эту тематику практически полностью отсутствует, а в западном инете доступна весьма в разрозненном состоянии на десятке сайтов. Здесь будет приведена некоторая компиляция базовых принципов, максимально упрощающая начинающему программисту жизнь, а так же позволяющая с самого первого проекта максимально задействовать вычислительные мощности видеокарты. Людям написавшим 2-3 серьёзных программы на OpenCl это будет уже неинтересно. Статья в некотором смысле является продолжением моей прошлой статьи.
Читать дальше →

Imperavi: удобный и действительно красивый JS WYSIWYG редактор

Reading time1 min
Views22K
В продолжение темы о красивой и удобной JS визуализации (http://habrahabr.ru/blogs/javascript/124899/) хочу рассказать вам о WYSIWYG редакторе, на который сегодня случайно наткнулся.

Вы наверное часто используете различные WYSIWYG редакторы в ваших проектах. Я их тоже часто использую, так уж получается, что они очень нравятся секретаршам и т.д. нашим пользователям.

Таких редакторов существуют десятки, но все они мне почему-то не нравилисись: то выглядит уж очень топорно, то работает совершенно криво. В конце концов я остановился на TinyMCE. Он хоть и ужасен на вид, но рабоет стабильно.

И вот сегодня я совершенно случано наткнулся на редактор, который мне полностью подходит:
  • работает стабильно
  • выглядит очень стильно
  • написан на jQuery

Имя этому чуду – Imperavi.
Попробуйте сами и думаю, что вам понравится.

Скриншот:
image

UPD
Более новая версия редактора: http://imperavi.ru/redactor/.

Видео: тренды Рунета

Reading time1 min
Views9.2K
Приезжал @bobuk, рассказывал про Яндекс, деньги и голландскую соцсеть для беременных мотоциклисток. Объяснил, почему Groupon — пирамида МММ 21 века.
Выступление получилось честным и чуть менее, чем полностью состояло из личного мнения.



Григорий Бакунов, заместитель руководителя департамента разработки Яндекса, «бородат и голосист» (считают 73 человека), что не мешает быть «лучшим IT-шоуменом» (67 человек).

Переделка роутера D-link DIR-620 в Zyxel Keenetic или делаем из г. конфетку

Reading time4 min
Views603K
Что такое D-link DIR-620 и что такое Zyxel Keenetic, и для чего нужно переделывать одно в другое?
Достаточно почитать тему по DIR-620 на хоботе или на родном сайте D-link, чтобы понять что к чему. Имея неплохую элементную базу (чип Ralink 3052 2T2R на 300Мбит, 32Мб RAM и 8Мб Flash, USB порт), роутер подкачал в программном обеспечении — большинство гневных отзывов относится именно к прошивке. Хотя, чего ещё желать от устройства за 54$, позиционируемого для бюджетного сектора. Однако, Zyxel Keenetic собран на той же элементной базе, но отличается как по цене 105$, так и по программному оснащению. Заявлена поддержка USB накопителей, 3G и 4G модемов, торрент-клиент transmission прямо в роутере, и всё это реально работает. А можно ли из DIR-620 сделать Keenetic? Оказалось, что можно.



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

Дополнение от 25.09.2011
Справедливости ради, стоит отметить, что пользователем deadc0de разработан другой метод перепрошивки в keenetic без перепайки и вскрытия устройства, который заключается в заливке модифицированной прошивки. Поэтому метод, описываемый в этой статье, стал неактуальным. Однако, его можно рассматривать как альтернативный, или аварийный, когда устройство перестало быть доступным по сети.

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

O'Bakas одночипный Arduino

Reading time1 min
Views8.5K
image
Всем любителям минималистки посвящается.
Некий гражданин японской национальности, в своем проекте O'Baka, 0'baka Project" means a stupid project собрал Arduino размером всего в пару сантиметров на одном чипе.
Причем программирование ведется через USB и не нужно никаких промежуточных МК.
Читать дальше →

Текстильный принтер своими руками с минимумом затрат

Reading time2 min
Views48K
Как то захотел я напечатать себе картинку на футболку. Залез в интернетик — а там, оказывается, у людей суперпринтеры есть, которые на этих футболках и печатают. Отлично, подумал я — а не купить ли мне такой же? Но, посмотрев цены на них со мной случилась драма и трагедия. Как то дороговато они стоят — тысяч за пять вечнозеленых можно найти какой нибудь б/у и это будет дешево. В общем немного не та сумма, что бы покупать его как игрушку. И тут я вспомнил про старый добрый EPSON 1290, который пылился в чулане на офисе…

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

10 способов улучшить свои навыки программирования

Reading time4 min
Views89K

1. Выучить новый язык программирования


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

Среди языков программирования отличный познавательный эффект и наверстывание опыта дают: Lisp (или Scheme), Форт, PostScript или Factor (стековые языки программирования), Haskell (строго типизированный, чистый функциональный язык) либо OCaml (объектно-ориентированный язык функционального программирования), Пролог (логическое программирование), Erlang (отличные паралельные вычисления).

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

Как сеть bitcoin будет уничтожена (практические советы с примерами)

Reading time3 min
Views25K
Многие уже на хабре знают про криптовалюту — bitcoin, про ее основные особенности и типичные заблуждения. Кому то топики на эту тему покажутся надоедливыми и скучными, попробую обмануть ожидания последних.


Одна из основных и самых интересных особенностей сети bitcoin является ее защищенность от 'взлома' и, в какой то мере 'DoS атак'. Невозможно на халяву настрогать монеток (их скорость строго контролируется через difficulty на основе скорости нахождения последних блоков), худшее, что может сделать владелец большей половины мощности сети — отменять свои транзакции, а полный контроль над средой распространения (интернетом) — замедление прохождения транзакций и, если разделить физически сеть на несвязанные подсети, откат всех транзакций во всех этих отдельных подсетях послед объединения кроме одной, самой крупной (отдельный и сложный разговор, какие именно транзакции будут откинуты, и это непринципиально).

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

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

Но самая интересная атака поджидает практически в главной защитной функции сети — расчете сложности.
Читать дальше →

Information

Rating
Does not participate
Location
Саха (Якутия), Россия
Registered
Activity