Archive for the ‘Программизм’ Category

Переключение раскладки по капслоку в виндовс

Есть софтина, без которой я с давних пор очень неуютно себя чувствую за компом. Я с давних пор являюсь апологетом расово-верной ОС Виндовс. А так как в ней нету возможности повесить переключение русской/английской раскладок на клавишу, например, Caps Lock, как это можно сделать в этих ваших линуксах, то приходится использовать всякие сторонние тулзы.

Я много лет использую ту, что написал дружище DikMax. Респект ему и уважение.

Плюсы переключения по капслоку:

  1. Можно убрать значок EN/RU с панели. Диод на клаве отлично его заменяет.
  2. Нажимать одну кнопку удобней чем две.
  3. Одной бесполезной клавишей на клавиатуре меньше.

Ну а вообще — дело привычки. Я привык очень быстро :)

Качаем здесь (28 KB).

UPD: Ещё про одну софтину читаем тут.
UPD2: Выношу из каментов — товарищ написал пост, как к этой софтине прикрутить индикацию языка на клаве.

5 cпособов сделать агрегацию строк в SQL Server'е

Иногда возникает необходимость осуществить агрегацию строк в SQL запросе, то есть, по такому набору данных:

GroupId Item
1 AAA
2 IS
5 OMG
2 WHAT
2 THE
1 This

получить примерно такой:

GroupId ItemList
1 AAA,This
2 IS,WHAT,THE
5 OMG

MySQL, например, для таких целей обладает встроенной функцией GROUP_CONCAT():

SELECT GroupId, GROUP_CONCAT(Item SEPARATOR ",") AS ItemList
FROM Items

В MS SQL Server'e такой функции нету, поэтому приходится извращаться. Перед тем, как приступить, сделаем скрипт для создания тестовой таблицы:

CREATE TABLE Items(GroupId INT, Item NVARCHAR(10))
 
INSERT INTO Items(GroupId, Item)
SELECT 1 AS GroupId, 'AAA' AS Item
  UNION ALL
SELECT 2, 'IS'
  UNION ALL
SELECT 5, 'OMG'
  UNION ALL
SELECT 2, 'WHAT'
  UNION ALL
SELECT 2, 'THE'
  UNION ALL
SELECT 1, 'This'

Итак, начнем.
Читаем дальше

Вордпресс-плагин для ссылок на участников TopCoder'а

Недавно написал плагин TCUsers для вордпресса чтобы можно было удобно референсить топкодерские хэндлы пользователей. Пользоваться можно так [tcuser color="red"]Petr[/tcuser], так [tcuser color="yellow"]DNNX[/tcuser] или так [tcuser]unrateduser[/tcuser].

На выходе получаются кликабельные ссылки на топкодер-юзеров, раскрашенные модными цветами: Petr, DNNX, unrateduser. Плагин большей частью содран с аналогичного LJUsers автора Jenyay. Этот же товарищ на своей домашней странице разобрал подробно код своего плагина — весьма познавательно для тех, кто хочет научиться писать WordPress-плагины.

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

Как выучить SQL

Самый простой, эффективный и быстрый метод выучить язык SQL — тренироваться. Скажу откровенно: можно много умных книжек, статей и документации прочитать по SQL, но без практики знания наверняка будут малоприменимыми. Так вот, самый лучший способ тренироваться — решать упражнения по SQL на сайте sql-ex.ru. Задачи там начинаются с очень простых и постепенно усложняются. Я, честно говоря, до последней пока не добрался — завис на 137-м упражнении.

Да, еще немаловажен тот факт, что на сайте есть рейтинг участников и система выдачи сертификатов участникам, решившим определенное количество задач. Я считаю, что качество сертификата c sql-ex позволяет быть уверенным в глубоком понимании языка SQL его обладателем. Кроме того, обладание сертификатом «All requirements» поднимает ЧСВ на несколько пунктов.

Командная строка в виндовс

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

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

Квайн (quine) произвольного порядка на языке Brainfuck

Когда-то решал занятное упражнение для любителей сломать мозг: как написать квайн n-го порядка на чудесном языке Brainfuck. Результат этих упражнений я и публикую в своем унылом бложике. Кто хочет сам порешать, можете дальше пока не читать, а то будет не интересно.

Основные понятия

Brainfuck
Эзотерический язык программирования, отличающийся крайней простотой. Программы, написанные на этом языке, оперируют с некоей лентой посредством считывающе-записывающей головки. Всего в языке восемь операторов (для записи/чтения символа, смещения головки, инкремента/декремента значения в ячейке и двух оператора для организации циклов). Как видно, эта конструкция очень напоминает реализацию машины Тьюринга. За подробностями можно невозбранно обращаться в википедию или другие интернеты.
Квайн (quine)
Непустая программа, выдающая на выходе свой исходный текст. При этом запрещены всякие трюки вроде чтения текста программы из файла и тому подобное.
Квайн n-го порядка
Программа, которая выводит код другой программы, которая вывовит код третьей программы, ... , которая выводит код n-й программы, которая выводит код первой программы. Определение придумал я сам, поэтому ссылки на википедию нету.

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

Онлайн-генератор диаграмм последовательности

Диаграммка в посте о Жаббе и GPRS'е была сгенерирована с помощью замечательной онлайновой прилаги www.websequencediagrams.com. Этот чудесный инструмент позволяет строить достаточно сложные (в хелпе описано) диаграммы послеовательности в формате PNG-картинок на основе очень простого текстового файла.  Кроме того, позволяет изменять стиль картинки и масштаб. Можно получить постоянную ссылку как на сгенеренное изображение, так и на страницу, с которой можно редактировать исходник диаграммы.

Кроме того, к этому добру имеются интерфейсы на жавоскрипте, жаве, питоне и руби. То есть, скармливаешь скрипту текстовый файл, он лезет в на сайт, тот ему дает картинку, скрипт сохраняет её на диск. Только почему-то пример с руби у меня генерит невалидный PNG — не открывается ни в одном вьювере.

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

Newer Entries »