Pull to refresh
-8
@Andrii_Zread⁠-⁠only

User

Send message

Разрегистрация оконного крюка

Reading time3 min
Views46K

Холмс. А скажите, друг мой Ватсон, доводилось ли вам разрегистрировать оконный крюк, в особенности глобальный?

Ватсон. Хм… что же может быть проще, дорогой Холмс.
    ::UnhookWindowsHookEx( hhookMy);

Х. Не скажите, Ватсон, не скажите. После этого вызова DLL-модуль, содержащий функцию крюка, по-прежнему загружен во все процессы, в которые был загружен. Система выполняет выгрузку этого DLL лишь спустя некоторое время. А именно в тот момент, когда через очереди сообщений всех нитей (имеющих таковую очередь) пройдёт хотя бы по одному оконному сообщению. И так для каждого процесса на рабочем столе.

В. Вот, ничего себе!
Читать дальше →
Total votes 129: ↑110 and ↓19+91
Comments61

Хочется взять и расстрелять, или ликбез о том, почему не стоит использовать make install

Reading time5 min
Views170K
К написанию сей заметки меня сподвигло то, что я устал делать развёрнутые замечания на эту тему в комментариях к статьям, где в качестве части инструкции по сборке и настройке чего-либо для конкретного дистра предлагают выполнить make install.
Суть сводится к тому, что эту команду в виде «make install» или «sudo make install» использовать в современных дистрибутивах нельзя.

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

Читать дальше →
Total votes 385: ↑339 and ↓46+293
Comments185

Эти занимательные региональные настройки

Reading time8 min
Views29K
Сегодня мы поговорим о региональных настройках. Но сперва — небольшая задачка: что выведет нижеприведённый код? (Код приведён на языке C#, но рассматривается достаточно общая проблематика, так что вы можете представить на его месте какой-нибудь другой язык.)

Console.WriteLine((-42).ToString() == "-42");
Console.WriteLine(double.NaN.ToString() == "NaN");
Console.WriteLine(int.Parse("-42") == -42);
Console.WriteLine(1.1.ToString().Contains("?") == false);
Console.WriteLine(new DateTime(2014, 1, 1).ToString().Contains("2014"));
Console.WriteLine("i".ToUpper() == "I" || "I".ToLower() == "i");

Сколько значений true у вас получилось? Если больше 0, то вам не мешает узнать больше про региональные настройки, т. к. правильный ответ: «зависит». К сожалению, многие программисты вообще не задумываются о том, что настройки эти в различных окружениях могут отличаться. А выставлять для всего кода InvariantCulture этим программистом лениво, в результате чего их прекрасные приложения ведут себя очень странно, попадая к пользователям из других стран.Ошибки бывают самые разные, но чаще всего связаны они с форматированием и парсингом строк — достаточно частыми задачами для многих программистов. В статье приведена краткая подборка некоторых важных моментов, на которые влияют региональные настройки.

CultureInfoExplorer Sceenshot
Читать дальше →
Total votes 57: ↑53 and ↓4+49
Comments32

Tortilla — весь TCP и DNS трафик из виртуальной машины через TOR

Reading time2 min
Views71K

Пошаговое руководство по направлению всего TCP и DNS трафика из виртуальной машины через TOR.

Тема уже поднималась в 2012 году: «Как направить весь tcp-трафик с гостевой Windows системы через Tor» с использованием tun2socks и виртуального сетевого адаптера TUN/TAP от OpenVPN.

Однако на Black Hat USA 2013 был представлен доклад «TOR… ALL-THE-THINGS!», в котором анонсировали новый инструмент от Jason Geffner из CROWDSTRIKE INC под названием Tortilla. Также Tortilla упоминается в официальном Tor FAQ в разделе What should I do if I can't set a proxy with my application?. Это виртуальный сетевой адаптер, который просто установить и использовать.
Читать дальше →
Total votes 25: ↑22 and ↓3+19
Comments25

Dell Venue 11 Pro: «таблетка» для фотографа

Reading time12 min
Views29K
Доброго дня, Хабр!

По своим техническим характеристиками отдельные планшеты по производительности и возможностям догнали ноутбуки. Если судить по спецификации Dell Venue 11 Pro (i3-i5, 4-8 Гб ОЗУ, SSD, Windows 8.1, IPS-экран с возможностью калибровки стандартными средствами), это мобильное устройство, производительности которого достаточно для первичной обработки отснятых в поездках фотографий в RAW-конвертере и графическом редакторе. И сегодня мы бы хотели дать слово журналисту и фотографу Евгению Уварову, который в течение месяца тестировал планшет в рамках своей профессиональной деятельности (как раз в поездках) и свой рассказ посвятил ответу на вопрос, насколько подходит Dell Venue Pro 11 профессиональным фотографам в работе и может ли он стать полноценной заменой ноутбуку.

Кстати, это не первый материал в нашем блоге о Venue 11 Pro. Некоторое время назад Сергей Вильянов (vilianov) поделился своими впечатлениями от планшета.

Если у вас будут вопросы к автору, ждем их в комментариях.


Читать дальше →
Total votes 52: ↑40 and ↓12+28
Comments54

Связывание модели данных в C++ c представлением в QML на примере карты

Reading time4 min
Views5.3K


Этот пост участвует в конкурсе „Умные телефоны за умные посты“.

Попробуем решить следующую задачу: показать в приложении карту с пинами, то есть сделать стандартную функциональность, нужную для любого LBS приложения. Причем, сделать это в парадигме MVC – то есть модель данных и контроллер в C++, а QML занимается только отображением и логикой, связанной с UI. Для карты будем использовать использовать стандартный элемент Map, а заодно разберемся со связыванием модели данных из C++ и QML.
Читать дальше →
Total votes 22: ↑11 and ↓110
Comments7

Руководство по собеседованию на вакансию PHP-программиста

Reading time22 min
Views254K
Вездесущий… это определённо то слово, которым можно описать язык PHP по отношению к вебу. Он действительно вездесущ. В настоящее время, среди всех серверных языков программирования, PHP используется наиболее широко. На нём написаны более 80% сайтов, при этом следующий по популярности ASP.NET со своими 17% остаётся далеко позади.



Почему? Что позволило PHP стать настолько популярным и широко используемым? На этот вопрос нет однозначного ответа, но простота использования языка, безусловно, существенный фактор, поспособствовавший его успеху. Новички в PHP могут быстро выйти на достаточный уровень и разместить динамический контент на своих веб-сайтах с минимум познаний в программировании.

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

Как же отличить тех, кто обладает реальной компетентностью в PHP (не говоря уже о тех, кто входит в 1% наиболее опытных кандидатов) от тех, у кого только поверхностные знания?
Читать дальше →
Total votes 96: ↑73 and ↓23+50
Comments107

Зачем Win32-приложению манифест?

Reading time6 min
Views60K
Недавно на руборде в разделе Программирование был задан вопрос: «Зачем Win32-приложению манифест? На что он влияет?». Первое, что сразу приходит в голову большинству программистов — это темы оформления. Но на самом деле в современных виндах манифест нужен не только для этого. Я подумал и написал пять ключевых аспектов, на которые влияет манифест или его отсутствие. После этого сразу несколько человек попросили оформить этот пост в виде более развернутой статьи.
Мое исследование темы манифестов под катом
Total votes 91: ↑83 and ↓8+75
Comments20

15 малоизвестных команд Linux

Reading time3 min
Views316K
Каждому разработчику в определенной степени следует овладеть навыками работы в терминале. Физически находиться у компьютера не всегда возможно, поэтому приходится подключаться удаленно. И действительно, GUI-программы вполне могут с этим с правиться, но зачастую они работают медленнее, чем получение доступа через тот же терминал (в конце концов, это лишь обмен текстом).
Читать дальше →
Total votes 333: ↑274 and ↓59+215
Comments224

Для новичков про stdafx.h

Reading time11 min
Views328K
StdAfx.h, Precompiled headers
Статья рассчитана на людей, которые знакомятся со средой Visual Studio и пытаются компилировать в ней свои Си++-проекты. В незнакомой среде всё кажется странным и непонятным. Особенно новичков раздражает файл stdafx.h, из-за которого возникают странные ошибки во время компиляции. Очень часто всё заканчивается тем, что новичок долгое время везде старательно отключает Precompiled Headers. Чтобы помочь людям разобраться что к чему, и была написана эта статья.
Читать дальше →
Total votes 108: ↑100 and ↓8+92
Comments34

Raspberry Pi: измеряем влажность и температуру с помощью DHT11/DHT22

Reading time5 min
Views221K
На Хабре уже публиковалась статья о подключении датчика температуры DS18B20 к Raspberry Pi. В нашем новом проекте, который строится на Raspberry Pi, понадобилось измерять не только температуру, но и влажность. Я расскажу, как подключить недорогие китайские датчики влажности к Raspberry Pi. Просмотрев несколько вариантов различных датчиков, остановился на двух наиболее массовых на рынке датчиков. Это DHT11, который привлек своей ценой $3 (с доставкой) и датчик DHT22 (около $10 с доставкой).
Читать дальше →
Total votes 34: ↑27 and ↓7+20
Comments33

Облачная копипаста – открытые исходники

Reading time2 min
Views13K
В один прекрасный день меня достала необходимости периодически набирать на экранной клавиатуре телефона тексты вроде логинов и паролей. При этом, как оказалось, своё состояние я описал вслух: “Вот бы было клёво нажать на Ctrl+C на компьютере, а потом в телефоне Ctrl+V”.
“Ну тыж программист” – напомнила одна из наших тестровщиц. “Не хватает программы, так напиши!”.

И программа для копирования содержимого буфера обмена с компьютера была написана. Несколько знакомых начали пользоваться ей с удовольствием, нашли баги, были советы… но большинство более дальних знакомых (и незнакомых) выразили недоверие. Мол, “я скопипастю пароль, а ты его к себе утащишь. Или сервак твой взломают…” Не доверяют люди. И правильно делают, наверное, доверие ещё надо заслужить. Поэтому с сегодняшнего дня исходники программы открыты всем и каждому!
Скриншоты, технические подробности, ссылка на гитхаб.
Total votes 36: ↑30 and ↓6+24
Comments15

Кодирование видео для веб-проектов

Reading time7 min
Views28K
image
Доброго времени суток.
Многим web-программистам рано или поздно нужно работать с видео. Такая задача возникла и у меня.
В Интернете есть много статей на форумах и блогах, как на русскоязычных, так и на зарубежных сайтах. Но, проделавши, так же как и предлагалось в инструкциях — результата ожидаемого не дало. Что и послужило поводом для этой статьи. Думаю, она поможет таким же как и я многим начинающим.
Читать дальше →
Total votes 73: ↑65 and ↓8+57
Comments57

Сайт на с++ (CppCMS). Часть 1

Reading time24 min
Views47K
Здравствуй уважаемый %username%.
Сегодня я хотел бы поделиться с тобой личным опытом в создании Web сайта на CppCMS (библиотека-шаблонизатор на с++). Можно назвать это «помощью начинающему программисту на CppCMS».

Зачем писать сайт на с++


Доводы за и против такого решения могут быть весьма разнообразны и, что бы не спровоцировать войну «языковых школ», я проведу аналогию с автомобилями: «Я купил этот. Нравится. Езжу. Продавать не хочу!».
Из дополнительных аргументов будет то, что данный язык является профильным для моего рабочего места.
Читать дальше →
Total votes 108: ↑89 and ↓19+70
Comments36

Makefile для самых маленьких

Reading time4 min
Views732K
Не очень строгий перевод материала mrbook.org/tutorials/make Мне в свое время очень не хватило подобной методички для понимания базовых вещей о make. Думаю, будет хоть кому-нибудь интересно. Хотя эта технология и отмирает, но все равно используется в очень многих проектах. Кармы на хаб «Переводы» не хватило, как только появится возможность — добавлю и туда. Добавил в Переводы. Если есть ошибки в оформлении, то прошу указать на них. Буду исправлять.

Статья будет интересная прежде всего изучающим программирование на C/C++ в UNIX-подобных системах от самых корней, без использования IDE.

Компилировать проект ручками — занятие весьма утомительное, особенно когда исходных файлов становится больше одного, и для каждого из них надо каждый раз набивать команды компиляции и линковки. Но не все так плохо. Сейчас мы будем учиться создавать и использовать Мейкфайлы. Makefile — это набор инструкций для программы make, которая помогает собирать программный проект буквально в одно касание.
Читать дальше →
Total votes 89: ↑77 and ↓12+65
Comments33

Расширяем и улучшаем Cache в ASP.NET

Reading time5 min
Views8.9K
Про ASP.NET-объект Cache наверняка знает каждый web-разработчик на платформе .NET. Совсем не странно, ведь это единственное решение для кэширования данных web-приложения в ASP.NET, доступное прямо из коробки.
Достаточно функциональный и легкий, снабженный механизмами приоритета, вытеснения, зависимостей и обратных вызовов, Cache хорошо подходит для небольших приложений, работая внутри AppDomain. Кажется, Microsoft предусмотрела все, что необходимо… Но я, тем не менее, хочу сделать его еще немного лучше. Чем же именно?
Об этом я расскажу под катом
Total votes 28: ↑21 and ↓7+14
Comments21

Шпаргалка по шаблонам проектирования

Reading time2 min
Views1.4M

Перевод pdf файла с сайта http://www.mcdonaldland.info/ с описанием 23-х шаблонов проектирования GOF. Каждый пункт содержит [очень] короткое описание паттерна и UML-диаграмму. Сама шпаргалка доступна в pdf, в виде двух png файлов (как в оригинале), и в виде 23-х отдельных частей изображений. Для самых нетерпеливых — все файлы в конце статьи.

Под катом — много картинок.

Читать дальше →
Total votes 192: ↑179 and ↓13+166
Comments66

Команда nice, или вежливые процессы

Reading time2 min
Views83K
Когда на компьютере достаточно процессорного времени на исполнение всех процессов, нет необходимости в выставлении приоритетов. Но когда необходимо параллельно запустить несколько процессов, каждый из которых использует всё доступное процессорное время, может очень пригодиться утилита nice.

Команда nice запускает программу с изменённым приоритетом для планироващика задач. Слово «nice» в английском языке обозначает, в частности, «вежливый». По этимологии этой команды процесс с большим значением nice — более вежлив к другим процессам, позволяя им использовать больше процессорного времени, поскольку он сам имеет меньший приоритет (и, следовательно, большее «значение вежливости» — niceness value).

Наибольший приоритет (и наименьшее значение nice) — −20. 19, либо 20 — наименьший приоритет, но это, с другой стороны, самые вежливые процессы.
Читать дальше →
Total votes 72: ↑50 and ↓22+28
Comments38

Сборка и настройка Transmission в Debian или все что вы хотели знать о Transmission но боялись спросить

Reading time6 min
Views122K
Transmission LogoDebian LogoTransmission — один из самых популярных torrent клинтов в мире Unix-подобных операционных систем и, к примеру, является выбором по умолчанию в таких дистрибутивах как Ubuntu, Fedora и openSUSE. В своей работе Transmission потребляет заметно меньше системных ресурсов нежели другие torrent клиенты благодаря чему может и используется во многих встраиваемых ОС даже таких устройств как домашние WiFi роутеры/точки доступа или сетевых медиаплеерах. Кроме того, Transmission обладает встроенным web-интерфейсом и не требует для его работы ни Apache, ни Lighttpd, ни какого другого http сервера. Именно о установке и настройке новейшей версии этого замечательного torrent клиента я и хочу рассказать в этом посте.
Читать дальше →
Total votes 39: ↑28 and ↓11+17
Comments79

Домашний ЧПУ-фрезер как альтернатива 3D принтеру, часть первая — выбор станка

Reading time5 min
Views290K
Последнее время на хабре все чаще появляются топики, посвященные 3D-печати вообще и домашним 3D-принтерам в частности. И почти в каждом в комментариях вспыхивает холивар между романтиками, в жизни не видевшими 3D отпечатков, и практиками, единожды потрогавшими и разочаровавшимися. При этом вторые почему-то не приводят адекватных альтернативных технологий, комментарии носят либо чисто критический характер, либо предлагают заведомо более дорогие альтернативы. Тем не менее, достойная альтернатива есть — домашний фрезерный станок с ЧПУ.

Звучит удивительно, да? Как-то само слово станок в народе ассоциируется с производством, с отдельными помещениями и специально обученным персоналом. В действительности, существует большой класс ЧПУ-станков, рассчитанных на настольное использование в офисе и на малых производствах, а при желании — и дома. При этом цена маленьких ЧПУ-фрезеров приближается (чтобы не сказать равна) к реальной цене 3D-принтеров.

Жизнь сложилась так, что последний год с гаком я занимаюсь изготовлением литьевых форм для полиуретановых изделий на ЧПУ-фрезере. Поскольку до этого 10 лет оттрубил в IT ритейле, а образование не имеет никакого отношения ни к инжинирингу, ни к ЧПУ, осваивать технологии пришлось с нуля. За прошедший год я подрос с должности оператора-фрезеровщика до инженера-конструктора, а затем и до замдиректора по технологиям, моими стараниями ЧПУ-парк предприятия вырос с одинокого старенького роланда до 5 разнокалиберных станков. В связи с чем еще свеж и актуален опыт выбора, покупки, пусконаладки, тюнинга, эксплуатации и ремонта различных ЧПУ-станков.

И вот — решил поделиться опытом с сообществом. Я осознаю сам, и прошу принимать во внимание читателей, что я — самоучка без базового инженерного образования, все нижеизложенное основано исключительно на личном опыте.
Читать дальше →
Total votes 104: ↑98 and ↓6+92
Comments188

Information

Rating
Does not participate
Registered
Activity