Метка «linux» - 62

Проблема

Для работы с базой данных MSSQL Server 2005 в кодировке UTF-16(UCS2) я использую скрипт, написанный на python. Этот скрипт использует для работы с базой данных следующий набор инструментов:

  • unixODBC
  • FreeTDS
  • pyodbc
  • sqlachemy

И тут появилась трудность: при получении строковых данных из базы (поля nvarchar, ntext) неправильно обрабатывается юникод.
Как выяснилось, установленный у меня питон был собран с UCS4 юникодом. Методы получения типа юникода в сборка python хорошо описаны в данном вопросе на stackoverflow. Т.е, если выполнить следующую строчку в терминале:

python -c "import sys;print 'UCS4' if sys.maxunicode > 65536 else 'UCS2'"

то мы получаем версию сборки юникода для python.В моем случае это было UCS4. Что это за собой тянет:

  1. unixODBC вызывая соответствующие функции работы с базой данных с аппендиксом W (например, SQLExecDirectW()), получает результаты. в которых один символ текста занимает 2 байта(UCS2)
  2. pyodbc получает результаты от ODBC-драйвера, и в свою очередь сохраняет результаты в переменную с типом unicode
  3. Таким образом 1 символ результата, по мнению pyodbc, составляет 4 байта(UCS4). Именно так и сохраняется результат. полученный из ODBC-драйвера.

Драйвер возвращает данные, в которых символ занимает 2 байта, а pyodbc переделывает эти данные так, что символ занимает 4 байта. Все бы хорошо, если бы было какое-либо преобразование, но данные просто сохраняются как массив байтов в переменную с типом unicode, что несет неприятные последствия: символ результата по-сути содержит 2 символа того результата, который вернул ODBC-драйвер.
Читать полностью »

QJson как библиотека для работы с JSON в Qt
Привет!

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

Внимание! Этот пост — заметка. Все что вы тут прочитаете можно найти в гугле и на офф сайте проекта — но я думаю что такая заметка не будет лишней.
Читать полностью »

Steam под Linux всё ближе и ближе. Впрочем, не только он:

«Пареные пингвины? (steam — пар) Это рецепт экзотического блюда на Южном Полюсе? Или одно из странных видео на YouTube, где пингвины в сауне резвятся с шведками в биники? (я не знаю, как перевести „Swedish Bikini team“)

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

Читать полностью »

Valve продолжает нанимать Linux разработчиков

Valve Software продолжает нанимать известных специалистов Linux, что вполне логично, если учесть озвученные намерения компании выйти на новую ОС и слухи о создании консоли Valve Box. Совсем недавно к Valve присоединились ведущие разработчики движка DarkPlaces (кроссплатформенные шутеры от первого лица Xonotic и Nexuiz) и создатель кроссплатформенной игры Battle for Wesnoth.

Новое приобретение корпорации — Сэм Лантинга, работавший ранее в Loki Software, где до банкротства компании он портировал некоторые Windows-игры на Linux, например, Rune, Tribes 2, Railroad Tycoon II и многие другие хиты конца 90-х. Его опыт в работе с Linux составляет более 10 лет, именно Сэм создал и продолжает разрабатывать популярную кроссплатформенную библиотеку Simple DirectMedia Layer, используемую при написании мультимедийных программ (в основном игр) не только на Linux и Mac OS X, но и Windows.Читать полностью »

Краткий анонс

Собирался добавить пару предположений на счет авторизации и регистрации на сайте, но то ли от недосыпания, то ли от многочисленных выпитых сегодня чашек кофе меня потянуло в дебри. Набросал некоторые заметки. Возможно кто-то из Вас найдет что-то новое для себя, возможно кто-то подскажет новое правило для кого-то, возможно кто-то поправит меня тем самым дав и мне урок, и другим. Ниже идут некоторые заметки работы с БД, еще ниже уже несколько заметок про работу самого сервера и т.д.
Читать полностью »

PHP-разработчик Крис Хени (Chris Haney) не поленился и собрал у себя на сайте огромную коллекцию скринштов дистрибутивов различных Linux-систем, начиная от общеизвестных и заканчивая крайне экзотичными.

Читать полностью »

Сначала немного предыстории. Небольшое продолжение истории с медиаплеером GV2B, описанным мной ранее тут. Напомню, что изначально бокс покупался не как Android приставка к телевизору, а как более мощная замена Raspberry Pi, на который я оставил заявку ещё в апреле, но приедет который только в августе. А GV2B оказался у меня в руках через 8 дней после заказа, всего за $100 и с полным комплектом кабелей (что всего на $5 дороже, чем комплект Raspberry Pi с зарядкой, шнурами и корпусом).
Успокою злопыхателей из моего предыдущего поста, что Youtube и другие приложения, установленные с Play, заработали замечательно, и больше никаких недостатков у устройства обнаружено не было.

Совсем недавно появилось пара топиков, в которых рассказывалось, как на ARM устройства удалось поставить Puppy Linux, Arch Linux и Ubuntu. Это уникальная особенность Allwinner A10, недооценить которую тяжело, но всё-таки система физически запускается с SD карты, а не встроенного флеша. Я начал активнее работать над вопросом, и наткнулся аж на три способа прошить что-либо во флеш память устройства, что обнадёживает и, возможно открывает лазейку для заливки туда полноценного GNU/Linux. Самонадеянно замечу, что это уже следующий шаг за банальным запуском чуть допиленного образа с SD карты.

Цель

— Установить на устройство ядро Linux. Желательно самое новое. Либо самое новое из тех, которое содержит все драйвера, специфические для устройства;
— Поставить GNU;
— Поставить окружение рабочего стола;
— Сделать резервную копию, чтобы устройство можно было вернуть в изначальное состояние, если что пойдёт не так;
— Хорошенько повеселиться со сложной задачей (сравнимо с установкой первых версий USB загрузчиков на Wii и прохождению NetHack или Dwarf Fortress).

Средства

Устройство GV-2B от неизвестного китайского производителя, на базе Rockchip 2918 (сокращённо RK29) (CPU ARM Cortex A8 1ГГц + GPU Vivante GC800 600МГц), с 4ГБ флеш памяти, 512МБ оперативной памяти и неплохим количеством разьёмов.
SD карта 16ГБ class 10.
PC с Arch Linux.
Клавиатура.
Монитор.
Шнур HDMI-DVI для подключения монитора.
Куча USB шнуров, переходников итп.

Предостережение и самобичевание

Наверняка многие из читателей сделали бы то, что описано в топике или хотя бы какую-то определённую часть, быстрее и лучше, но никаких упоминаний о таком подвиге я в просторах сети не нашёл. Топик содержит много практики и совсем немного теории, лишь самое необходимое, чтобы понять о чём идёт речь и что происходит (признаюсь честно, мне и самому теории в описанных областях явно не хватает). С академической точки зрения тянет на трёхчасовую лабораторную работу. Также хочу сказать, что впервые занимаюсь всем этим, если исключить подключение диска с предварительно установленным на настольком компьютере Ubuntu к PC104 x86-совместимому одноплатнику.
Читать полностью »

Nokia передала патенты на MeeGo стартапу Jolla

Несколько дней назад стало известно, что ряд бывших сотрудников Nokia основали новый стартап Jolla по разработке, поддержке и выводу на рынок мобильной платформы MeeGo. На момент анонса стартапа упоминалось о том, что Jolla никак не аффилирована с Nokia и официально поддержкой ни N9, ни N950 заниматься не будет.

Как оказалось, финская компания не захотела остаться в стороне от разработки своего бывшего продукта. Сотрудники Jolla получили от своего бывшего работодателя — главой стартапа является проработавший в Nokia 11 лет Марк Диллон (Marc Dillon), непосредственно занимавшийся MeeGo с января 2006 года — не только этап финансирования, но и ряд патентов на различные технологии в MeeGo из портфолио финского вендора.

Сооснователь Jolla Джусси Хурмола (Jussi Hurmola) высказался прямо и честно: "Я бы хотел сказать Nokia спасибо".

Какие именно патенты были переданы не уточняется. Согласно осторожным планам, озвученным главой Jolla, первые результаты работы будут представлены общественности уже в конце 2012 года.
Читать полностью »

Nokia передала патенты на MeeGo стартапу Jolla (UPD)

Несколько дней назад стало известно, что ряд бывших сотрудников Nokia основали новый стартап Jolla по разработке, поддержке и выводу на рынок мобильной платформы MeeGo. На момент анонса стартапа упоминалось о том, что Jolla никак не аффилирована с Nokia и официально поддержкой ни N9, ни N950 заниматься не будет.

Как оказалось, финская компания не захотела остаться в стороне от разработки своего бывшего продукта. Сотрудники Jolla получили от своего бывшего работодателя — главой стартапа является проработавший в Nokia 11 лет Марк Диллон (Marc Dillon), непосредственно занимавшийся MeeGo с января 2006 года — не только этап финансирования, но и ряд патентов на различные технологии в MeeGo из портфолио финского вендора.

Сооснователь Jolla Юсси Хурмола (Jussi Hurmola) высказался прямо и честно: "Я бы хотел сказать Nokia спасибо".

Какие именно патенты были переданы не уточняется. Согласно осторожным планам, озвученным главой Jolla, первые результаты работы будут представлены общественности уже в конце 2012 года.
Читать полностью »

Приветствую, коллеги!

Хочу рассказать вам о нашем проекте — Geeknote. Это консольный клиент для Evernote. Проект Open Source и исходные коды доступны на Github. Geeknote позволяет работать с Evernote из командной строки. Реализованы все основные функции Evernote — создание/удаление заметок, создание блокнотов и тегов, поиск, а так же редактирование через обычный текстовый редактор заметок в формате markdown. То есть можно использовать Evernote в bash скриптах, cron, любых приложениях, где нельзя использовать Evernote SDK. Расскажу подробнее про проект.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js