LINUX.ORG.RU

Сообщения ymn

 

ICFP 2012

Опубликован анонс сабжа!

Any programming language(s) may be used as long as the submitted program can be run by the judges on a standard Linux environment with no network connection.

Кто-нибудь собирается принять участие?

 

ymn
()

сортировка тем в поисковой выдаче

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

Сложно ли это сделать?

 ,

ymn
()

С днем радио!

7 мая 1895 года русский физик Александр Попов сконструировал первый радиоприёмник и осуществил сеанс связи.

Ура, товарищи! С праздником!

73!

 

ymn
()

Закапывателям лиспа

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

Краткая и неполная хроника лопатных походов на Lisp:

Время: 70-е - 80-е года прошлого века
Закапывающие: C
Итог: 
C: с боями выбил себе нишу низкоуровневого программирования и окуклился.
Lisp: потеряны Lisp-машины, сообщество объединилось под знаменем Common Lisp.
Время: конец 80-х - 90-е года прошлого века
Закапывающие: C++
Итог: 
C++: превратился в мумифицированный труп, изредка гальванизируемый для выжимания чуть большей производительности.
Lisp: ничего не заметил.
Время: начало 90-х
Закапывающие: Dylan
Итог: 
Dylan: породил несколько личинок, забыт.
Lisp: счел Dylan отличной шуткой.
Время: конец 90-х - начало 00-х
Закапывающие: Java
Итог: 
Java: до сих пор стучится лбом в хитиновый панцирь.
Lisp: урча и пожмякивая вобрал в себя виртуальные машины.
Время: начало-середина 2000-х
Закапывающие: личинки Dylan (Python, Ruby) и примкнувший к ним PERL
Итог: PERL выкинут на свалку истории, Python и Ruby выгнаны ссаными тряпками в веб.
Lisp: показательно проигнорировал недоязычки.
Время: 2000-е - 2010-е
Закапывающие: Caml, Haskell
Итог: 
Закапывающие: держатся впереди за счет бурной активности не испорченных адекватностью прозелитов.
Lisp: гонится за незадачливыми закопщиками, с громоподобным "ОМ НОМ НОМ НОМ" вбирая в себя их идеи. 

Источник: http://repl-stories.blogspot.com/2012/05/blog-post.html

Перемещено post-factum из development

 

ymn
()

Генпрокуратура заставит Samsung и Panasonic платить Михалкову

тыц

Ъ:

Как стало известно РБК daily, Генпрокуратура усмотрела в действиях импортеров техники нарушение российского законодательства. По мнению ведомства, компании Samsung, Panasonic, Philips и другие нарушают законодательство в сфере автор­ского права, не выплачивая вознаграждение за свободное воспроизведение музыкального контента в пользу Российского союза правообладателей (РСП) кинорежиссера Никиты Михалкова.

бла-бла-бла

Сумма долга указанных в письме Генпрокуратуры компаний на сегодняшний день составляет более 1,3 млрд руб., подсчитали в РСП и уточнили, что «долг накопился с момента вступления в силу постановления правительства от 14 октября 2010 года «О вознаграждении за свободное воспроизведение фонограмм и аудио­визуальных произведений в личных целях»

Для тех, кто в танке: Сумма долга составляет более 1,3 млрд руб.

Когда же они все передохнут?!

 

ymn
()

Parenthetic: Brainfuck теперь не одинок

Parenthetic это язык программирования, который используется только ( и ) для написания кода. Все остальные символы являются комментариями.

Следующая программа напечатает 'hello world':

((()()())(()(()()))((()(()))((())()()()()()()())((()()(()))((())()()()()()()()()())
((())()()()()()()()()()()))))((()()())(()(()()()))((()(())(())())((())()()()()()()(
)()()()()()()()()()()()()()()()()()()()()()()()()())))((()(()))((()(())(())())((()(
()))(()(()()))((())()()()()()()())))((()(())(())())((()(()))(()(()()))((())()()()()
)))((()(())(())())((()(()))(()(()()))((())()()()()()()()()()()())))((()(())(())())(
(()(()))(()(()()))((())()()()()()()()()()()())))((()(())(())())((()(()))(()(()()))(
(())()()()()()()()()()()()()()())))(()(()()()))((()(())(())())((()(()))(()(()()))((
())()()()()()()()()()()()()()()()()()()()()()())))((()(())(())())((()(()))(()(()())
)((())()()()()()()()()()()()()()())))((()(())(())())((()(()))(()(()()))((())()()()(
)()()()()()()()()()()()()())))((()(())(())())((()(()))(()(()()))((())()()()()()()()
()()()())))((()(())(())())((()(()))(()(()()))((())()()()))))

Больше скобок, хороших и разных!

 

ymn
()

Python и компания

Разыскивается язык-компаньон для Python, чтобы, если не будет хватать питоновской производительности, переписать медленные части кода. Хочется компилируемый высокоуровневый язык. Было бы просто замечательно, если бы этот язык умел:

  • замыкания
  • лямбды
  • статическую типизацию (или вывод типов)
  • TCO
  • и мог работать на железке с ARM926EJ-S, 2.6.26 ядром и 64 метрами ОЗУ

Основные задачи:

  • парсинг текстовых конфигов
  • манипулирование файлами
  • работа с сетью

Что посоветуете?

 

ymn
()

ZX Spectrum отмечает 30-летие!

Культовый 8-разрядный домашний компьютер был впервые выпущен 23 апреля 1982 года английской фирмой Sinclair Research Ltd на основе микропроцессора Z80 фирмы «Zilog». Первая модель имела 16 или 48 КБ оперативной памяти и имела 16 КБ ПЗУ, в которые был прошит диалект языка Бейсик.

Вскоре после ZX Spectrum появились и более совершенные аналоги, например Commodore 64 и Amstrad CPC, но «спектруму» удалось завоевать популярность, благодаря чему для него было разработано более 23 тысяч программ и игр. В начале и середине 1980-х было выпущено ещё две модели, пока Amstrad не приобрела линейку Spectrum.

Несмотря на то, что официально выпуск компьютеров прекратился в 1992 году, ZX Spectrum получил культовый статус и массу приверженцев. Более 5 миллионов компьютеров и 8 различных моделей было официально продано по всему миру. В настоящее время существует масса эмуляторов для ПК, Mac и мобильных устройств, позволяющих запускать игры и ПО для «спектрума».

Подробности

Перемещено DoctorSinus из hardware

 , ,

ymn
()

Ограничить размер очереди workqueue

Привет, ЛОР!

Возник очередной нубский вопрос по поводу ядра. Если я правильно понял, то рабочие потоки представляются структурой workqueue_struct, в которой содержится массив структур struct cpu_workqueue_struct:

/*
 * The per-CPU workqueue.  The lower WORK_STRUCT_FLAG_BITS of
 * work_struct->data are used for flags and thus cwqs need to be
 * aligned at two's power of the number of flag bits.
 */
struct cpu_workqueue_struct {
        struct global_cwq       *gcwq;          /* I: the associated gcwq */
        struct workqueue_struct *wq;            /* I: the owning workqueue */
        int                     work_color;     /* L: current color */
        int                     flush_color;    /* L: flushing color */
        int                     nr_in_flight[WORK_NR_COLORS];
                                                /* L: nr of in_flight works */
        int                     nr_active;      /* L: nr of active works */
        int                     max_active;     /* L: max active works */
        struct list_head        delayed_works;  /* L: delayed works */
};

и, наверное, можно руками контролировать размер связного списка delayed_works. Существует ли механизм ограничения размера очереди workqueue?

 workqueue, ,

ymn
()

Помогите поднять wi-fi на Lenovo B570e

Собственно, сабж.

root@debian:~# lspci
00:00.0 Host bridge: Intel Corporation Sandy Bridge DRAM Controller (rev 09)
00:01.0 PCI bridge: Intel Corporation Sandy Bridge PCI Express Root Port (rev 09)
00:02.0 VGA compatible controller: Intel Corporation Sandy Bridge Integrated Graphics Controller (rev 09)
00:16.0 Communication controller: Intel Corporation Cougar Point HECI Controller #1 (rev 04)
00:1a.0 USB Controller: Intel Corporation Cougar Point USB Enhanced Host Controller #2 (rev 05)
00:1b.0 Audio device: Intel Corporation Cougar Point High Definition Audio Controller (rev 05)
00:1c.0 PCI bridge: Intel Corporation Cougar Point PCI Express Root Port 1 (rev b5)
00:1c.1 PCI bridge: Intel Corporation Cougar Point PCI Express Root Port 2 (rev b5)
00:1c.3 PCI bridge: Intel Corporation Cougar Point PCI Express Root Port 4 (rev b5)
00:1d.0 USB Controller: Intel Corporation Cougar Point USB Enhanced Host Controller #1 (rev 05)
00:1f.0 ISA bridge: Intel Corporation Cougar Point LPC Controller (rev 05)
00:1f.2 SATA controller: Intel Corporation Cougar Point 6 port SATA AHCI Controller (rev 05)
00:1f.3 SMBus: Intel Corporation Cougar Point SMBus Controller (rev 05)
01:00.0 VGA compatible controller: nVidia Corporation Device 1054 (rev a1)
03:00.0 Network controller: Broadcom Corporation BCM4313 802.11b/g/n Wireless LAN Controller (rev 01)
04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 06)

root@debian:~# ifconfig
eth0      Link encap:Ethernet  HWaddr f0:de:f1:ab:5d:ea  
          inet addr:88.206.68.20  Bcast:88.206.95.255  Mask:255.255.224.0
          inet6 addr: fe80::f2de:f1ff:feab:5dea/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:132304 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8145 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:27015920 (25.7 MiB)  TX bytes:1015537 (991.7 KiB)
          Interrupt:28 Base address:0x8000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:142 errors:0 dropped:0 overruns:0 frame:0
          TX packets:142 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:11322 (11.0 KiB)  TX bytes:11322 (11.0 KiB)

root@debian:~# iwconfig
lo        no wireless extensions.

eth0      no wireless extensions.

pan0      no wireless extensions.


root@debian:~# cat /etc/debian_version 
6.0.4
root@debian:~# uname -a
Linux debian 2.6.32-5-amd64 #1 SMP Thu Mar 22 17:26:33 UTC 2012 x86_64 GNU/Linux

 , ,

ymn
()

Биоинформатика

Случайно попал на страницу об упругих картах в википедии. Читаем:

Сравнение нелинейного метода главных многообразий и линейного метода главных компонент (МГК) для визуализации данных генетических чипов по экспрессии генов в раке груди...

А теперь, уважаемые СПВ, вопрос: а где простые смертные могут найти исходный материал для «визуализации данных генетических чипов по экспрессии генов»?

 ,

ymn
()

Популярность открытых приложений в файлообменных сервисах оказалась выше, чем предполагалось

не Ъ: тыц

Ъ:

копипаста с опеннета

Наметился интересный поворот в противостоянии между известным файлобменным сервисом Hotfile и Американской ассоциации кинокомпаний (MPAA, Motion Picture Association of America). Профессор права Джеймс Боули (James Boyle) из университета Duke University представил публике одно из самых тщательных и неоднозначных исследований о природе контента, распространяемого с помощью Hotfile. В противоположность утверждениям MPAA, профессор утверждает, что не всё так просто с «очевидной виной» этого файлообменника. В частности, им было доказано, что OpenSource-приложения входят в топ наиболее скачиваемых через этот обменник приложений.

бла-бла-бла

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

Так победим!

 

ymn
()

Отображать в трекере количество просмотров тем

Может быть уже было, но тем не менее сабж. что думаешь, maxcom?

 

ymn
()

Взаимодействие модулей в ядре

Привет, ЛОР!

У меня есть два самописных модуля ядра: один из них обслуживает нажатия кнопок на клавиатуре (key.ko), другой - системный динамик (sound.ko). По нажатию на кнопки дергается функция из sound.ko и издается звук. Прикладная программа также может обращаться к модулю sound.ko через соответствующий файл /proc.

Если прикладная программа дергает динамик и в тот же момент пользователь тычет в кнопки, то генерация звука срывается.

Подскажите, как лучше организовать потокобезопасное взаимодействие двух модулей?

 ,

ymn
()

Карманный проектор

Привет, ЛОР!

В свете последних событий(1), надумал приобрести карманный проектор. Кто-нибудь имел с ними дело? На какие параметры нужно обратить внимание при покупке?

Спасибо!

------------------------------------------

(1) - Для Ъ:

В рамках проекта Open Source-библиотеки libam7xxx энтузиасты провели обратный инжиниринг бинарных данных из Windows-драйвера и реализовали поддержку пико-проекторов в Linux

 ,

ymn
()

Шаттлворт: Почему Canonical нет среди главных контрибьюторов в ядро Linux?

!Ъ: тыц

Опубликованный на днях очередной отчёт по разработке ядра Linux (новость на ЛОРе) вновь напомнил о теме, которая весьма широко и долгое время обсуждается в Open Source-сообществе: где же вклад Canonical?

Ответ Марка преимущественно свёлся к заявлению, что усилия Canonical сосредоточены на том, чтобы предоставить пользователям законченный и удобный продукт, в котором всё «просто работает». Отмечая важность поддержки и улучшения стабильности ядра Linux, Шаттлворт заявил, что в его компании более 25 людей занимаются ядром. Среди направлений деятельности в этой области выделяются работы по поддержке архитектуры ARM, системы безопасности AppArmor, а также совершенствованию качества (Quality Assurance). Однако ядро в плане предоставления конечному пользователю удобной системы — это лишь один из компонентов. Хотя он и является важным вообще, Canonical не рассматривает личную активность в его разработке как основное направление своей деятельности.

[troll-mode-on]Получается, что компания Microsoft приносит для ядра Linux больше пользы, чем Canonical![troll-mode-off]

Весьма предсказуемый ответ.

 , шаттлворт,

ymn
()

Проблема с таймерами ядра.

Начал разбираться с таймерами. Есть устройство с линуксом на борту с SPI-клавиатурой. Я хочу по срабатыванию таймера прибивать авторепит у клавиатуры. Вот функция, регистрирующая нажатие:

static void key_press(void)
{
        if (last_scan_code != 0)
        {
                uint8_t i = 0;
                for (; i < NUMBER_OF_KEYS; i++)
                {
                        if (KEYS[i].scan_code == last_scan_code)
                        {
                                init_timer(&my_timer);
                                my_timer.expires = jiffies + delay;
                                my_timer.data = 0;
                                my_timer.function = my_timer_function;
                                add_timer(&my_timer);
                                if (KEYS[i].key == 79) /** по нажатию на кнопку "1" прибиваем авторепит */
                                {
                                        del_timer(&kbd_dev->timer);
                                }
                                else
                                {
                                        input_report_key(kbd_dev, KEYS[i].key, 1);
                                        input_sync(kbd_dev);
                                        snd_squeak(3000, 120000, 240000);
                                        STATUS.last_key = KEYS[i].key;
                                }
                        }

                }
        }
}

А это обработчик таймера:

void my_timer_function(unsigned long data)
{
        printk(KERN_INFO "\nHello from my_timer_function!\n");
        del_timer(&my_timer);
        del_timer(&(kbd_dev->timer));
}

Компилирую модуль, подгружаю его, тыкаю в кнопки. Дальше происходит странное - примерно на каждое 15-20 нажатие вываливается простыня:

14:38:29.800; Pressed 0x39 key {9} {NM:0} {NSC:0} {NVK:0} {MOD:20000000} {REPIT:true} [text:9]
Hello from my_timer_function!

Unable to handle kernel NULL pointer dereference at virtual address 00000004
pgd = c0004000
[00000004] *pgd=00000000
Internal error: Oops: 817 [#1] PREEMPT
Modules linked in: power adc thermal busmanager dsp kbd squeak
CPU: 0    Not tainted  (2.6.27.8 #6)
PC is at run_timer_softirq+0x154/0x248
LR is at run_timer_softirq+0x1c/0x248
pc : [<c00482f0>]    lr : [<c00481b8>]    psr: 80000093
sp : c0325eb4  ip : c0325ebc  fp : c0325eec
r10: c0344208  r9 : c0344008  r8 : c0344408
r7 : bf002694  r6 : c0324000  r5 : 00000000  r4 : c0343600
r3 : 00000000  r2 : c0325ebc  r1 : bf004078  r0 : c03436b8
Flags: Nzcv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
Control: 0005317f  Table: 83a3c000  DAC: 00000017
Process swapper (pid: 0, stack limit = 0xc0324260)
Stack: (0xc0325eb4 to 0xc0326000)
5ea0:                                              c0325ebc c0343e08 00000000
5ec0: c3977970 c0343478 00000001 0000000a c0343440 00000001 c0345b70 00000000
5ee0: c0325f18 c0325ef0 c0043390 c00481ac c032c724 00000010 00000000 00000002
5f00: 00000001 c0324000 8001b99c c0325f28 c0325f1c c0043440 c004333c c0325f44
5f20: c0325f2c c0020048 c0043408 ffffffff f4008000 00010000 c0325f9c c0325f48
5f40: c00208b8 c0020010 00000000 0005317f 0005217f 60000013 c0021e10 c0324000
5f60: c0021e10 c033e028 8001b9d0 41069264 8001b99c c0325f9c 600000d3 c0325f90
5f80: c0021e54 c0021e60 60000013 ffffffff c0325fbc c0325fa0 c0021ddc c0021e20
5fa0: c0324000 c033dff0 c001cda8 c0327ce8 c0325fd0 c0325fc0 c027f07c c0021db0
5fc0: c0345ee8 c0325ff4 c0325fd4 c0008960 c027f01c c0008480 c001cda8 00053175
5fe0: c033e08c c001d1ac 00000000 c0325ff8 80008034 c0008720 00000000 00000000
Backtrace:
[<c004819c>] (run_timer_softirq+0x0/0x248) from [<c0043390>] (__do_softirq+0x64/0xcc)
[<c004332c>] (__do_softirq+0x0/0xcc) from [<c0043440>] (irq_exit+0x48/0x64)
[<c00433f8>] (irq_exit+0x0/0x64) from [<c0020048>] (__exception_text_start+0x48/0x60)
[<c0020000>] (__exception_text_start+0x0/0x60) from [<c00208b8>] (__irq_svc+0x38/0xc4)
Exception stack(0xc0325f48 to 0xc0325f90)
5f40:                   00000000 0005317f 0005217f 60000013 c0021e10 c0324000
5f60: c0021e10 c033e028 8001b9d0 41069264 8001b99c c0325f9c 600000d3 c0325f90
5f80: c0021e54 c0021e60 60000013 ffffffff
 r6:00010000 r5:f4008000 r4:ffffffff
[<c0021e10>] (default_idle+0x0/0x58) from [<c0021ddc>] (cpu_idle+0x3c/0x70)
[<c0021da0>] (cpu_idle+0x0/0x70) from [<c027f07c>] (rest_init+0x70/0x84)
 r7:c0327ce8 r6:c001cda8 r5:c033dff0 r4:c0324000
[<c027f00c>] (rest_init+0x0/0x84) from [<c0008960>] (start_kernel+0x250/0x2a8)
 r4:c0345ee8
[<c0008710>] (start_kernel+0x0/0x2a8) from [<80008034>] (0x80008034)
 r6:c001d1ac r5:c033e08c r4:00053175
Code: e5913000 e591700c e5915010 e5823000 (e5832004)
Kernel panic - not syncing: Fatal exception in interrupt

ЧЯДНТ?

 ,

ymn
()

Вышел русский перевод «Learn You a Haskell for Great Good!»

Собственно, сабж.

Издательство «ДМК-Пресс» выпустило русский перевод «Learn You a Haskell for Great Good!». Заказать книгу можно тут.

 ,

ymn
()

Red Hat жертвует 100k USD Open Source-сообществу

!Ъ - тыц

Last December, Red Hat decided that no billion dollar milestone would be complete without honoring the open source community. To that end, we are making a $100,000 donation to the future of open source. Red Hat associates nominated and voted for the following organizations to benefit:

  • Creative Commons
  • Electronic Frontier Foundation
  • Software Freedom Law Center
  • UNICEF Innovation Labs

Live long and prosper, Red Hat!

 ,

ymn
()

Есть тут кто с projecteuler?

сабж.

  • сколько задач решили?
  • какой язык программирования используете?

я решил 178 задач, в основном на общелиспе и хаскелле.

 ,

ymn
()

RSS подписка на новые темы