• GUI frontend для Python приложения

    @MagNet
    Вообще сейчас можно рассматривать 3 варианта (Tkinter, wxWidgets, PyQt).
    Tkinter лучше использовать для несложного GUI, вид приложения не под все платформы будет родной (в частности под Win)
    PyQt — хорошая документация, нативный вид под все платформы, но есть и минус, если будешь разрабатывать приложение не под лицензией GPL, то придётся купить коммерческую версию лицензии (а стоит она около 16 т.р.)
    wxWidgets — думаю самый оптимальный вариант, нативный вид под все платформы, лицензия LGPL, нормальная документация с примерами (советую посмотреть wxDemo, примеры использования виджетов).
    Но интерфейс придётся писать вручную, нормальный GUI builder есть разве что под PyQt, под wxWidgets и Tkinter их нет.
    Ответ написан
    2 комментария
  • Python - два main loop

    coxx
    @coxx
    Кстати, скорее для общего развития, потоки — это не единственный подход к разработке сетевого клиента с GUI. К примеру, есть фреймворк Telepathy. В нем сетевой клиент — это, по сути, демон, который взаимодействует с фронтэндом через D-Bus.
    Ответ написан
    Комментировать
  • Автоматическое включение компьютера после появления электричества в сети

    Если упс отключает комп штатно («умный», подключен по usb/com, идёт завершение работы), то он должен уметь и его включать (в настройках упса и в биосе «wake up on usb/com»). Если он отключает его просто обрубая питания, а потом питание обрубает, то настройка в биосе типа «on power fail» — «power on». Если же упс просто обрубает питание и ждёт пока на нём кнопку нажмут, чтобы снова его подать, то надо кнопку нажимать…
    Ответ написан
    Комментировать
  • Подключение dll к проекту Visual Studio 2010 (C++)

    @MikhailEdoshin
    Нужно сделать .lib-файл самостоятельно. Посмотрите, нет ли в комплекте с .dll файла .def. Если есть, то можно получить .lib с помощью

    lib.exe /DEF:mylib.def mylib.dll

    или

    lib.exe /DEF:mylib.def /OUT:mylibname.lib mylib.dll

    если нужно другое имя. В таком виде (dll + def), распространяется, например, sqlite3.

    Если .def-файла нет, посмотрите, какие у вас символы в библиотеке через

    dumpbin /exports mylib.dll

    Если это практически те же имена, что и в заголовочном файле, значит, библиотека экспортирует символы в стиле С; это хорошо. Перечислите все нужные имена в командной строке:

    lib.exe /EXPORT:mylib_func1 /EXPORT:mylib_func2 mylib.dll

    (.def-файл, по сути, делает то же самое.) Единственное, я сейчас не помню, но к именам может спереди добавлятся подчеркивание. Я не уверен, нужно ли указывать имена с подчеркиванием или без.

    Если там имен нет, значит, они отрезаны, функции можно определить только по порядковому номеру. Если вокруг них всякая муть, это C++, а муть означает закодированный тип параметров. Это все не очень хорошо, конечно, потому что соответствие номеров функциям не определить (разве что экспериментально), а стандарта на кодирование нет. Но технически создать .lib-файл можно, у опции /EXPORT полная сигнатура такая:

    /EXPORT: entryname[= internalname][,@ ordinal[, NONAME]][, DATA]

    То есть можно и переименовать функцию, и по номеру ее выбрать, и данные экспортировать. Но это на крайний случай.

    lib.exe обычно не в PATH, из обычной командной строки не найдется, но в группе инструментов Visual Studio должно быть что-то вроде «Command Prompt» — он открывает консоль и добавляет нужные пути в PATH, так что инструменты командной строки становятся доступными.

    Ссылки: dumpbin, lib.
    Ответ написан
  • Подключение dll к проекту Visual Studio 2010 (C++)

    kostik450
    @kostik450
    Делаете так:
    lib.exe /DEF:test.def /OUT:test.lib /MACHINE:IX86

    В файле test.def нужно записать:
    LIBRARY TEST
    EXPORTS
    testfunc@32 @1

    Узнать, какие там цифры вместо @32 проще всего через ошибки линковки (число в имени функции обычно равно числу ее параметров, умноженному на 4), а что там вместо @1 можно узнать через утилиту dumpbin.exe по списку экспортируемых из DLL функций.

    Бывают DLL и без @32 — это зависит от того, как она была скомпилирована через __cdecl или через __stdcall
    (это тоже легко устанавливается экспериментально)
    Ответ написан
    Комментировать
  • При отключении наушников звук в динамиках ноутбука не появляется

    @Mawerik
    Думаю, что проблема в разъеме. Года 4 назад была такая ерунда. Вылечил ковырянием спичкой в гнезде для наушников.
    Ответ написан
    1 комментарий
  • Будут ли интересны статьи про SproutCore?

    ob1
    @ob1
    Вы бы хоть написали, что это такое. Не все же как я в Википедию полезут.

    По теме. Думаю, что не помешает. Если, конечно, хорошо подготовите.
    Ответ написан
    2 комментария
  • Захват видеопотока с сайта - проблемы с преобразованием полученных файлов

    kostik450
    @kostik450
    Попробуйте с помощью VLC, он умеет просматривать «битые» файлы. Если получится, значит дело в заголовке и можно копать дальше.

    Еще можно попытаться узнать, какой используется протокол и искать граббер под этот протокол. Например, напишите письмо админу сайта с вопросом о протоколе.
    Ответ написан
    1 комментарий
  • Online-tool для генерирования POST-запросов?

    taliban
    @taliban
    php программист
    Возможно Вам подойдет эта штука встроенная в оперу:
    Piccy.info - Free Image Hosting
    Ответ написан
    3 комментария
  • не открывается gmail в firefox.

    ntkt
    @ntkt
    Потомственный рыцарь клавиатуры и паяльника
    Все в норме.

    А на подобные вопросы моментально отвечает www.downforeveryoneorjustme.com/
    Ответ написан
    Комментировать
  • Нужны ли на хабре статьи про GAE?

    ArtemSmirnov
    @ArtemSmirnov
    Порой на хабре просто нужны статьи, а то от новостей хабр уже разрывается
    Ответ написан
    1 комментарий
  • Где и как правильно хранить настройки программы?

    А что мешает написать свои сериализуемые классы для хранения настроек и добавить их в тот же app.config? ИМХО, свои велосипеды изобретать в таких вещах не стоит, лучше использовать стандартные средства. А то получится как всегда: понаписали программ, постоянно пишущих что-то в Program Files, пришли на семерку — а там оно не работает. Вы уверены, что в винде-восьмерке, например, данные будут храниться там же и так же, как и в семерке?
    Ответ написан
    1 комментарий
  • Как успеть за всеми технологиями

    @lesha_penguin
    Насчет «новых технологий» дам несколько хороших советов (как человек, который уже многое успел повидать на своем веку).

    Первое: Самый простой способ везде успеть — это никуда не спешить, а двигаться к своей обозначенной цели, не позволяя сбивать себя с пути.

    Второе: Позволь, дам тебе несколько нестандартный взгляд на «новые технологии».

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

    Сразу видно, хитрые фирмы изобретут еще 100500 разных технологий, языков, фреймворков, парадигм и каждую из них они будут рекламировать как новую и революционную, готовую перевернуть мир (хотя я авторитетно скажу, что по крайней мере за последние 20 лет чего-то действительно принципиально нового придумано было чрезвычайно мало. компутеры стали меньше а программы больше. и все).
    При этом каждую технологию подают исключительно как «серебрянную пулю», способную решить все текущие и будущие проблемы. А еще реклама давит на «чувство моды», выставляя всех кто не гонится за модой старомодными пердунами. И конечно, любая реклама тебе пытается внушить, что эта новая технология вот-вот вытеснит все остальные, и вам надо срочно все бросать и изучать пока не поздно чтобы не оказаться за бортом… да и вообще, есть еще over 9000 рекламных приемов.
    Так вот — не верь рекламе — не забывай, реклама все врет. У любой технологии есть свои плюсы и минусы. Плюсы, даже весьма сомнительные, рекламно выставляются напоказ, а минусы, даже самые очевидные, тчательно маскируются и отрицаются.

    Цель любой этой всей рекламы — чтобы такие как ты покупались на эту рекламу и сломя голову бежали «изучать новые технологии» (тратя на это свои силы, время и деньги). И самое главное, чтобы тащили когда нужно и даже когда совсем ненужно «продукты этих новых технологий» в свои проекты. А когда минусы станут очевидными, все обнаружат, что на технологию уже «подсели как на иглу» и просто так ее выпилить из проектов затруднительно. Знакомо?

    Отсюда постулат первый. Как ты только начал изучение чего-то или еще хуже потащил какую-то технологию в свой проект, ты уже подарил кому-то часть своей жизни (а жизнь она короткая, и это очень ценный ресурс). А также подарил кому-то часть своих денег, часть своего внимания, оторвав возможно от чего-то более ценного.

    Так вот, первый вопрос который ты должен себе задать: Твое время, силы и внимание, безвозвратные годы твоей жизни — оно что ничего не стоит, чтобы им так разбрасываться и просто дарить их кому-попало направо и налево? Наверное уж если вкладывать свое время так во что-то реально ценное! А вот что для тебя ценное — решать должен ты сам не позволяя никому в это влезать!

    При этом, обрати внимание, я вовсе не призываю, «запереться в бункере», отгородившись от внешнего мира глухой стеной. Как раз наоборот, надо быть в курсе того, что происходит вокруг. Но при этом не обязательно в каждую «новую хрень» углублятся, тратя на нее свои ценные молодые годы.
    Зачастую о «новых технологиях» достаточно знать только пять вещей:
    * знать что такая технология существует
    * примерно представлять для чего она
    * знать сильные и слабые стороны (т.е. читать больше практические отзывы, особенно внимательно читая негативные, чтобы не всю информацию брать из рекламы)
    * сравнительный анализ (обращаем внимание на негатив больше чем на рекламу)
    * знать примерно что и где гуглить если вдруг будет принято решение узнать о ней побольше.

    И все! Этого будет достаточно. Ты двигаешся к цели, и не даешь себя сбить с цели. И если вдруг ты видишь что какую-то технологию ты можешь применить применительно к своей цели (если оно оправдано и ты видишь что оно оправдано).

    Заметь, применить не потому что «это модно», а потому что это отвечает твоим целям и задачам и ты хорошо взвесил, что трудозатраты окупятся! (Кстати, никогда не применяй что-то только потому что это «модно». Мода она ни к чему хорошему не приводит, она только порождает «жертвы моды».)

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

    P.S.: Кстати, если вообще не знаешь что учить — учи матчасть, учи основы, тренируй мышление, развивай мозг. Это всегда пригодится. Зная матчасть любую «новую технологию» ты запросто освоишь как только ты для себя решишь, что она тебе нужна.

    P.P.S.: Короче, если по-простому, не будь хомячком, которого все стремятся сьесть на обед (т.е. не работай на продвижение ненужных тебе лично технологий).
    Будь матерым волчарой, который сам сожрет кого угодно (пусть технологии работают на тебя, и любое взаимодействие с «новой технологией» для тебя сто раз просчитанное взаимовыгодное сотрудничество, только так).
    Ответ написан
    4 комментария
  • Альтернатива Skype (дубль N)

    schastny
    @schastny
    Jazzist: Да, ну! Мы mumble давно используем. Я у себя на компе сервер поднимаю одним кликом, народ коннектится и все оок. Трафик чужой через себя не гоняет. Кодек хороший, жмет хорошо. Качество звука оок. Единственное, что — это конечно клиент-серверное приложение, а не P2P, как скайп и надо иметь внешний айпишник или на VDS каком-нибудь держать запущенный сервак всегда. Серверная часть murmur называется. Кодек speex.

    ru.wikipedia.org/wiki/Mumble
    ru.wikipedia.org/wiki/Speex
    Ответ написан
    Комментировать
  • Почему не умирает Opera?

    @bondbig
    Я уж испугался, что очередной holywar назревает.
    Ответ написан
    Комментировать
  • Скорость Интернета на FreeBSD не привышает 30mb/s а должна достигать 100mb

    scamp
    @scamp
    Покажите top -SHP под нагрузкой.
    Советую сразу убрать natd, и перейти на pf nat или ipfw nat, на rl0 включить polling, или, что ещё лучше, убрать нафиг.
    Ответ написан
    1 комментарий
  • Старое железо в качестве роутера. Выбор достойного ПО для непростой задачи

    icCE
    @icCE
    youtube.com/channel/UC66N_jRyZiotlmV95QPBZfA
    Сделайте себе сборку openwrt для x86. Моя пслд сборка показала что
    1) занимает места не больше 32 метров
    2) памяти жрет 10mb с нужными мне модулями.

    В итоге вы получите быструю, стабильную систему с управлением через web морду как на роуторе.
    Ответ написан
    2 комментария
  • Старое железо в качестве роутера. Выбор достойного ПО для непростой задачи

    opium
    @opium
    Просто люблю качественно работать
    monowall вам подойдет, правда он на фрибсд, но приятен.
    Ответ написан
    Комментировать
  • Термин для слова "говнокод"?

    interrupt_controller
    @interrupt_controller
    >Ну есть же метрики программного кода

    wtf в минуту
    Ответ написан
    2 комментария