Доступные языки

Полезные ссылки
Read in English

четверг, 30 декабря 2010 г.

Копируем музыку из iPod на компьютер или Массовое переименование

Простота копирования музыки с iPod на компьютер не может никого удивить, потому что ее нет. И если оценивать iPod по этому критерию, то он наберет 0 из 10.

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

Думаю, ни для кого не секрет, что музыкальные файлы хранятся на iPod в скрытой папке \iPod_Control\Music\.
Чтобы просмотреть скрытые файлы в Проводнике надо в "Параметрах папок"(для Windows 7: Панель управления\Оформление и персонализация -> Параметры папок, для Windows XP: Панель управления\Оформление и личная настройка -> Свойства папки) перейти на вкладку "Вид" и найти в конце пункт "Скрытые файлы и папки" -> установить в состояние "Показывать скрытые файлы, папки и диски".

Копируем оттуда все файлы/папки в каталог на нашем компьютере.

Но на этом приключение не кончается: все файлы названы абы как.
Проверьте, имеют ли ваши музыкальные файлы дополнительную информацию, такую как название композиции, автор, альбом, год и т.п. Для этого щелкните по папке, в которой расположены файлы и на вкладке "Настройка" в выпадающем списке выберите пункт "Музыка". Потом перейдите в эту папку, нажмите правой кнопкой и установите вид "Таблица". У вас появились колонки "№", "Название", "Участвующие исполнители", "Альбом" и, возможно, другие. Надеюсь, они не пусты.
Качаем программу Tag Scanner и начинаем массовое переименование по шаблону.
Интерфейс программы интуитивно понятен.

Tag Scanner

Словесное описание моего примера: Я использовал шаблон: %artist% - %title%  Т.е. файлы будут иметь названия вида "Земфира - Румба.mp3". Поставил галочку "Реорганизовать файлы на диске", указал каталог, в котором хочу собрать все музыкальные файлы("Переместить файлы в папку"), и поставил галочки "Переместить также не музыкальные файлы"(потому что у меня есть картинки к некоторым трекам) и "Удалять пустые папки".
Задаем шаблон и выбираем каталог с файлами, нажимаем "Переименовать" - и получаем каталог с любимой музыкой.

Но mp3 файлы могут и не содержать ID3-тэгов(доп. информации). В таком случае вам надо перейти на вкладку "Tag editor" в программе TagScanner и добавить информацию, которую вы хотите видеть/знаете, самостоятельно. Я добавил Автора и Названия композиций лишь для 16 песен(из 367).

Альтернативные варианты:
  • Попрактиковаться в программировании и написать небольшой скриптик. Например, с помощью id3lib.
  • Использовать iTunes.

Печатаем... Как напечатать закрытый pdf файл? Часть 2: Windows

В первый раз я описал возможный вариант печати для пользователей линукс. Тогда я как-то не обратил на это внимания, потому что сам работал в GNU/Linux Mint 7.

В Windows поставленную задачу можно решить еще проще.
Для этого необходимо скачать pdf2djvu.
Далее...
    распаковываем скачанный архив программы pdf2djvu
    копируем файл pdf с запретом на печать в папку программы pdf2djvu
    открываем терминал в директории программы pdf2djvu
    запускаем программу из терминала командой:
            pdf2djvu -o output.djvu locked_pdf_example.pdf
    здесь output.djvu - имя сконвертированного файла
              locked_pdf_example.pdf - имя pdf файла с запретом на печать
Полученный файл output.djvu имеет массу премуществ: обычно он меньше по размеру, а еще его можно распечатать!
Для просмотра файлов формата djvu вам понадобится WinDjVu.

OpenGL, C++ and GLUT using CodeBlocks and MinGW

Original can be found at LevelByLevel.com: OpenGL, C++ and GLUT using CodeBlocks and MinGW – Updated.

On my old blog, CodieCode, I wrote a tutorial on how to set up an OpenGL, C++ and GLUT environment using the CodeBlocks IDE and MinGW compiler on a Windows XP and Vista machine. This was a popular post which seemed to help quite a few people. However time moves on, software updates and operating systems change. I’ve decided to update this tutorial with Windows 7 (though this should still work fine on XP and Vista) and the latest version of CodeBlocks and MinGW. Hope it helps

I would like to add that if you’re serious about learning OpenGL, I think it’s a must that you own “The Red Book” (OpenGL Programming Guide by Dave Shreiner). You can buy it from Amazon (with the link on the left) or wherever you normally buy your coding books. Either way it’s a fantastic resource to have and it’s helped me countless times in the past.

———

If you’re interested in coding in OpenGL and C++, a great way to start is by using GLUT. GLUT takes care of a lot of the difficulties in setting up an OpenGL project and lets you get started on your project quick and easily. In this tutorial I will guide you through installing and setting up the software you’ll need (CodeBlocks, MinGW and GLUT).
Before you can start you’re going to need a few things:

Windows – I’ve updated the steps below to run on Windows 7, Windows XP and Vista, If you manage to get this working on other operating systems, let me know

OpenGL – I’m not going to go into how to install OpenGL in this tutorial as most people will be using Windows XP or later and OpenGL comes ready in these operating systems.

GLUT – To download the GLUT files you’ll need click here and download ‘glut.zip’.

IDE (Integrated Development Environment) – While it’s possible to use an editor (such as Notepad++) and makefiles. I find the easiest and most efficient way to code is using a good IDE (be careful there’s some not-so-good IDE’s out there). The best that I’ve come across is CodeBlocks (I’m not a fan of using Visual Studio for OpenGL but you can use that too if you wish) and it’s this IDE that we’ll be setting up today.

C++ Compiler – The compiler I’ll be using is MinGW, there are many advantages to using this but I wont go into these here.

So without further ado, lets start:

вторник, 28 декабря 2010 г.

Рецепт хлебного кваса

Лето, наверное, лучшее из времен года. Яркое солнце пригревает все жарче, а в городах становится откровенно душно. В такую погоду постоянно тянет освежиться стаканчиком вкусного и холодного напитка, и вот мы отправляемся в магазин за газированной водой. И вот уже мы открываем баночку холодной «Кока-колы» или «Спрайта», выпиваем ее и понимаем, что наша жажда отнюдь не прошла. Знакомая ситуация, не так ли? А ведь подобные сладкие шипучие напитки еще и не всегда полезны! Красители, сахар, всевозможные сахарозаменители и другие компоненты превращают безобидную на первый взгляд водичку в настоящий бич для тех, кто хочет похудеть. А ведь еще наши далекие предки прекрасным образом справлялись с летней жаждой, не нанося никакого вреда своего организму. Компоты, морсы и конечно же квас – вот напитки, которые бодрят и освежают в любую жару.
Славяне готовили квас с незапамятных времен, а впервые записи о нем можно найти в «Повести временных лет». В этой старинной летописи говорится о приказе князя Владимира, распорядившегося раздать соотечественникам «питье хмельное и хлебный квас». Приказ был отдан это было по случаю Крещения Руси, то есть в 988 году. Уже с тех самых пор нашим прародителям были известны целительные свойства кваса, который прекрасно утоляет жажду, помогает восстановить силы, повышает аппетит. В наше время ученые нашли научное подтверждение этим фактам и объясняют целебный эффект этого напитка содержанием в нем уникального сочетания аминокислот, ферментов, молочной кислоты и витаминов. Кроме всего квас обладает очень низкой калорийностью, всего 200-300 килокалорий на литр.
Квас не только вкусный и дешевый напиток, прекрасно утоляющий жажду, но и основа для многих вкуснейших блюд русской кухни. Именно поэтому МирСоветов предлагает вам приготовить этот напиток своими руками.

Хлебный квас – продукты

Приготовить квас вполне может любой желающий, продукты для него найдутся в каждом доме:

воскресенье, 26 декабря 2010 г.

Bash Tips for Working Faster With the Shell

"Using !! "This command is used to bring back and automatically execute the last command in history. It is the same as pressing C^P followed by Enter). Here’s an example:

debian$ cat /etc/debian_version
5.0.7
debian$ !!
cat /etc/debian_version
5.0.7

"Using !text

"Replacing ‘text’ with any command will call the last command in the history which starts with ‘text’. Example:"

Original story:
10 Bash Tips for Working Faster With the Shell (Part 1 of 2)
In addition:

Патриарх дал маху


Ольга Ипатова – Патриарху Кириллу: Своим поздравлением Вы фактически дали индульгенцию Лукашенко

Бывший председатель Белорусского Союза писателей Ольга Ипатова направила Патриарху Всея Руси Кириллу открытое письмо, в котором осудила его поздравление Александру Лукашенко с победой на выборах.
"Патриарх Кирилл поздравил Лукашенко с переизбранием".
Политика ли это или он просто дал маху?
Сложно поверить, что хоть один здравомыслящий человек на такое способен... А он - патриарх, он у всех на виду. Надо было думать о пастве, прежде чем делать такие заявления. Так ее можно и вовсе лишиться.
Такое количество разоблачений в течении нескольких дней не может оставить равнодушным. Да и каких разоблачений! Если Лукашенко показал свое лицо западу, то для нас это уже давно не секрет. А вот от патриарха никто такого не ожидал! Раз - и на весь мир...
Как вы думаете, как иностранцы думают о Беларуси!?

четверг, 23 декабря 2010 г.

Жириновский: уберите к черту пост президента! Парламентская республика!

Вице-спикер Госдумы РФ Владимир Жириновский встретился с журналистами из Беларуси, Украины и Молдовы в помещении фракции ЛДПР в здании Госдумы и ответил на их вопросы.

Владимир Вольфович, как всегда, не стеснялся в выражениях, был красноречив, но резок. Отвечая на вопросы, касающиеся белорусского президента Александра Лукашенко, Жириновский заявил: «Лукашенко ревнует! Ничего же не получается у него, выборы проиграет, надо уходить. А еще могут под суд отдать за то, что диссидентов подавлял, бизнесменов в тюрьму сажали и деньги заставляли платить».

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

Жириновский считает, что Лукашенко лишился поддержки Москвы – и из-за этого продержаться у власти больше не сможет. «На всех выборах, когда он шел, мы его поддерживали. Я сам приезжал! А сейчас кто его будет поддерживать, если он так себя ведет? А без поддержки Москвы те, кто его поддерживали, они от него отвернутся, понимая, что он не имеет поддержки, которую имел раньше».

Владимир Жириновский сказал, что прекрасно понимает, в чем ошибки Лукашенко: «Сколько он закручивал гайки для частного бизнеса? Недовольны! Молодежь? То нельзя, это нельзя: все это ограничения! Интеллигенция - ограничение. Бизнес - ограничение: или за границу, или в тюрьму, или под руководством чиновников все делай, как при советской власти».

Вице-спикер сказал, что избирателей у Лукашенко в Беларуси не осталось: «То старшее поколение, которое символизировало его с советской властью, умирает каждый год, уходит из жизни старшее поколение. Те, кто за него голосовали: деревня, рабочие, бедные. Зарождается новое поколение: та белорусская молодежь, которая имеет интернет, которая выезжает за границу, которая слышит и видит какой другой мир, которая хочет выборы, на которых не будет сразу известно все».

В пример Беларуси и всему миру Жириновский привел недавно прошедшие выборы в Украине: «Вот на Украине великолепно! Никто не знал до последнего момента кто: Тимошенко или Янукович. И это выборы, и это всем нравится. Как в Прибалтике рядом. Ну, он скажет, что остается, и что дальше?»

Далее Жириновский пустился в философско-политологические рассуждения о формах правления, сделав вывод, что нам всем необходимо стать парламентскими республиками, а президента если и выбирать, то максимум на один срок. «Вообще идеальный вариант - переход к парламентским республикам. В Грузии не было бы проблемы никакой, не было бы никакого Саакашвили. В Молдавии, всей Прибалтике, Украине, на всем Закавказье и Средней Азии, а на каком-то этапе и в России - лучший вариант - парламентская республика. Это высшая форма демократии»

Напутствие белорусскому народу по этому вопросу тоже прозвучало: «Желательно, чтобы Беларусь тоже свою систему демократическую как-то модернизировала. Потому что она ближе к Туркмении, Узбекистану, Казахстану. Хотя рядом Прибалтика, Украина и Россия. Найти вариант, чтобы в Беларуси политическая система была более схожая с соседями».

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

«Давайте введем парламентские республики. Если сохраняем президентские режимы, то один срок! Никакого второго, а тем более третьего, четвертого... Четыре, пять или шесть лет - в конституцию заносите норму», - призвал Жириновский.

«Если ему (народу – Oko.by) объяснить, что парламентская республика лучше, это больше демократии, больше стабильности, больше выражения ваших симпатий, то они за это проголосуют. И в Украине нужно покончить с этим - никаких президентов. И в Беларуси так же. И в России тоже, в перспективе обязательно!», - считает политик.

Oko.by

Яснее некуда...


Вы его любите?

Это уже очень старая история, которая началась в 94ом и никак не закончится...
Но многие осознают это только сейчас. Хорошо хоть, что вообще осознают.

http://charter97.org/ru/news/2010/4/7/27925/

вторник, 21 декабря 2010 г.

Чай поможет сохранить фигуру даже при неправильном питании

Чай может помочь сохранить вес, несмотря на то, что вы любите нездоровые продукты. Такое заявление сделали японские ученые из университета Кобе, пишет The Daily Mail.
 Они выяснили, что регулярное употребление чая также подавляет развитие изменений в крови, связанных с потребление жирной пищи, что может спровоцировать диабет 2 типа. Это доказал эксперимент на грызунах.
Так, одних мышей держали на диете, насыщенной жирами. А других – на нормальной пище. Каждую из этих двух групп поделили еще на несколько маленьких. Подгруппам давали вместе с пищей воду, черный или зеленый чай в течение 14 недель. Исследователи увидели, что оба вида чая не давали грызунам потолстеть и накопить жир в области живота. Кстати, черный чай еще и нивелировал негативное воздействие, оказываемое неправильным питанием на кровь (повышение уровня холестерина, высокий уровень сахара).

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

суббота, 17 апреля 2010 г.

Выбор оружия, или сравнение различных языков программирования.

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

Pascal (императивный, структурированный)
За: очень простой язык со строгим синтаксисом – прост для начинающих – на нем просто писать программы и отлаживать их.
Против: отсутствие стандартных библиотек (в сравнении с библиотеками C++ и Java).

C++ (поддерживает много парадигм(multi-paradigm) : объектно-ориентированное, обобщённое, процедурное, метапрограммирование)
За: STL (стандартная библиотека шаблонов) – много стандартных типов данных и алгоритмов. Большая “свобода” – можно реализовать одни и те же вещи по-разному. Хорошая производительность скомпилированного кода. Хорошая поддержка C++ сегодня.
Против: Отсутствие BigInteger и BigDecimal (они есть в библиотеках Java и C#). Возможны различные ошибки, вызванные непониманием между компилятором и программистом. Вы можете найти много тем об этом, но это не проблема языка. Но из-за очень большой свободы может быть сложнее писать и отлаживать программы на C++.

Java (объектно-ориентированный, структурный, императивный)
За: более строгий синтаксис, чем в C++ – более простое чтение кода – быстрая и простая отладка. Подсказки об ошибках и неиспользуемом коде. Очень много библиотек различного типа. Сборщик мусора. Новые возможности в последних версиях явы(пр.: вариации цикла for).
Против: Медленная работа программ (в 3-4 раза медленнее чем C/C++), длинный (постоянно длинный) код, но набор кода быстрый, потому что присутствует автодополнение.
Opinion of Petr: I think Java/C# (I don't see much difference between them except speed) are best suited for programming contests, since it's so much harder to make a mistake and so much easier to find and fix a mistake in a Java program than in a C/C++ program.
Much more strict type checking (implicit casts from long long to int and from int to bool??), out-of-range checking, code flow checking (allowing to read from uninitialized variables? why would a language allow that?), fantastic IDE which finds a lot of other mistakes for you, fantastically convenient debugging, more explicit syntax (a language with less power actually leads you to writing more readable programs), more explicit error messages (and the errors are always reproducible!) - to name a few advantages, but I've probably missed some more.
I think that writing correct programs and fixing them quickly when they're not correct far outweigh the disadvantages mentioned above (slower execution, longer programs). Even a 2x slowdown is almost never important in programming competitions, while a WA always is :) And I believe that most of the time at a programming contest is spent in thinking (including the thinking you do _while_ writing code), not in writing code, so the length of the program (or the typing speed, for that matter) is irrelevant.
And I believe the availability of various libraries is also not that important. So if I were to choose between C++ and Pascal, I'd choose Pascal because of the same argument (much more strict checking of everything).
Я не перевел мнение Петра, потому что оно намного лучше звучит на английском.

C# (поддерживает много парадигм(multi-paradigm) : объектно-ориентированное, обобщённое, процедурное программирование)
За: Быстрее чем Java. Стандартные библиотеки C#: в последней версии .NET присутствуют, как и в Java, классы для работы с длинной арифметикой, но теперь вы можете использовать их как переменные базовых типов: c=a+b, и т.п.
Против: Последняя версия .NET все еще не доступна на большинстве соревнований по программированию.

VB (процедурный, объектно-ориентированный, компонентно-ориентированный, событийно-ориентированный)
Отличие от C#: Язык программирования – Visual Basic, а не C#.
Мнение alliumnsk: VB.NET это всего лишь C# с синтаксисом Visual Basic, который был сделан, чтобы облегчить перенос программ, написанных на VB. Т.е. нет никаких причин думать о VB.NET.

Мнение _ph_:
За: Python - язык широкого назначения, на нем пишут практически любые типы программ, за исключением программ реального времени. Не случайно, питон - это официальный язык #3 в Google.
Python отлично подходит для решения не очень сложных задач благодаря краткости записи и наличию встроенных средств:
·         встроенная длинная арифметика (как целочисленная, так и дробная)
·         встроенные list (aka vector<>), set, dict, tuple (aka struct)
·         библиотека для работы с регулярными выражениями re
·         функция sorted() для любых последовательностей
·         удобные строковые операции
·         удобные конструкторы списков
·         функции sum(), max(), min(), способные обрабатывать списки и т.д.
Против: К недостаткам Python с точки зрения олимпиадного программирования относятся:
·         низкая скорость исполнения программ (в среднем проигрыш в 6 раз по сравнению с С++) и особенно медленный ввод-вывод (так что без специальных ухищрений 10^6 чисел даже прочитать за 1 сек. не успеешь)
·         мало удобных IDE (единственная нормальная, что я знаю, PyDev для Eclipse)

PHP и другие языки программирования.
Пока я не вижу никаких причин использовать их на соревнованиях. Если у вас есть возражения - пишите.

Заключение:
Лучше всего знать и практиковать как можно больше языков, учиться, знать все нюансы, но это не так просто и не всегда возможно. Мы – люди, и мы не можем изменить своей природы, но мы можем постараться стать лучше. Каждый язык программирования имеет свои преимущества и недостатки, и вы всегда можете выбрать один из них для более эффективного решения определенных разных задач.
Вы должны решить для себя, чего вы хотите: гибкости и свободы языка или простоты написания, чтения, отладки и сопровождения программ; нужна ли вам высокая скорость, или ей можно пренебречь.
Надеюсь, что эта статья помогла вам понять отличия разных языков программирования, самые основные их преимущества и недостатки.

Дополнительная и использованная информация:
Ссылки:

Lisp as an Alternative to Java: http://norvig.com/java-lisp.html

Выбор оружия - обсуждение: http://codeforces.ru/blog/entry/254
Выбор оружия 2 – обсуждение: http://codeforces.ru/blog/entry/316
C#. Почему не моно? : http://codeforces.ru/blog/entry/229
Немного о C# и Linq: http://codeforces.ru/blog/entry/245
Тесты и сравнение производительности Java, C#, C++:
Определения:

Pascal: http://en.wikipedia.org/wiki/Pascal_(programming_language)

C++: http://en.wikipedia.org/wiki/C%2B%2B

Java: http://en.wikipedia.org/wiki/Java_(programming_language)

C#: http://en.wikipedia.org/wiki/C_Sharp_(programming_language)

Visual Basic: http://en.wikipedia.org/wiki/Visual_Basic

Python: http://en.wikipedia.org/wiki/Python_(programming_language)

 

Ярлыки: java, c++, vb, c#, pascal, python, лучший язык, языки программирования.

 

Благодарности: MikeMirzayanov, Petr, alliumnsk, OSt, dAFTc0d3r, _ph_, Peteris, ktuan, SkidanovAlex, Nerevar, dev_il, valergrad и всем, кто принимал участие в обсуждении данной темы.

суббота, 3 апреля 2010 г.

Расписание Top Coder - Google календарь

Календарь, сделанный мной, удален, потому что я нашел более удобное решение.
Darnley написал скрипт, который парсит расписание топ кодера и переводит в формат Google calendar. Пока скрипт работает корректно, будем надеяться, что это не изменится :)
Спасибо, Darnley.
More...
Я сделал Google календарь расписания Top Coder.
Вы можете использовать его и даже сделать лучше, при желании.

Полезные ссылки для программистов

Здесь я буду собирать полезные, на мой взгляд, и интересные программистам ссылки: ссылки на образовательные ресурсы, сайты соревнований, онлайн контесты, литературу и рекомендации по подготовке, блоги других программистов, архивы и разборы задач.
More...

Печатаем... Как напечатать закрытый pdf файл?

Иногда у нас может возникнуть проблема: мы сделали pdf файл и поставили на него ограничения, например, запретили печать. А потом забыли пароль или не сохранили копии без ограничений.
Что же делать, если мы захотим его распечатать?
Я пользуюсь линукс, сейчас - одной из последних версий ubuntu (9.04). Но это не так важно.
Итак, у меня есть вариант решения нашей проблемы:

pdftoppm copy.pdf copy.ppm //каждая страница pdf файла будет сохранена в отдельном ppm файле
convert *.ppm one.pdf //объединяем много изображений в один pdf файл. все говорят, что это прекрасно работает, но я не совсем уверен. Я не смог дождаться результата и отменил эту операцию, она использует очень много оперативной памяти.
for file in *.ppm; do ppmtojpeg $file > ${file/.ppm/.jpg}; rm $file; done //конвертируем все ppm файлы в jpg
ls -d *.ppm | sed 's/\(.*\).ppm$/mv "&" "\1.jpg"/' | sh //меняем расширения файлов с ppm на jpg
convert *.jpg > one.pdf  //можете попробовать объединить изображения в один pdf, но я не гарантирую, что это сработает.

В принципе, можно остановиться на ppm файлах, если вы можете распечатать файлы этого типа или хранить их, потому что они весят намного больше аналогичных jpg файлов.
Мы напечатали закрытый pdf файл.
Я проделал все это на моем ноутбуке с Linux Mint 7 (Ubuntu 9.04) на борту.
Функция convert содержится в пакете ImageMagick.