Pull to refresh
11
0
imps @imps

шаман

Send message

Самый быстрый мини веб-сервер

Reading time1 min
Views6.8K
Джон Фремлин (John Fremlin) выпустил, по его мнению, самый быстрый мини веб-сервер для динамического контента. Сервер teepeedee2 целиком написан на Common Lisp (CL), диалекте LISP, второго по древности языка программирования высокого уровня.

О своей разработке Фремлин рассказывал ещё в прошлом году, задолго до релиза, на токийской встрече Linux Users Group, там же он показал и результаты замеров производительности (PDF), которые демонстрируют, что «функциональные языки могут превзойти C».

via slashdot
Total votes 72: ↑62 and ↓10+52
Comments93

Оптимистичные примитивы синхронизации, очереди и все-все-все. Трагикомедия в трёх действиях

Reading time4 min
Views8.7K
Заранее предупреждаю, для тех кто в теме, интересного будет не очень много. :)

У меня появилась актуальная задача реализовать базовые примитивы синхронизации(мьютекс, семафор и read/write lock), используя только синхронную очередь — единственный доступный примитив. Заодно по пути я расскажу как устроены спинлоки и мы даже соберём маленького франкенштейна.

Часть 1: Всё — очереди

Читать дальше →
Total votes 41: ↑30 and ↓11+19
Comments28

«Скрытые» полезности С#

Reading time8 min
Views8.3K
Предлагаю мой вольный перевод вопроса с stackoverflow, который мне показался полезным и сидит в фаворитах. Что-то я взял с MSDN (в основном вырезки из русской редакции), что-то -с блогов.
Все мы, С# разработчики, знаем базовые комманды C#. Я имею ввиду объявления, условия, циклы, операторы и т.д.
Некоторые из нас знают даже про Generics, anonymous types, lambdas, linq,…

Но, каковы реально скрытные возможности и трюки C#, про которые даже фанаты и эксперты не всегда знают?
Составим список некоторых из них:
Total votes 83: ↑62 and ↓21+41
Comments56

Spotify — более 10 млн. легальных музыкальных треков бесплатно*

Reading time2 min
Views2K
Spotify — это легальный сервис для прослушивания музыки, основанный в Швеции в 2006 году и ставший открытым публично 7 октября 2008 года. Пользователям доступно более 10 млн. треков известных лейблов. База песен активно увеличивается, также в наличии музыка таких групп, как AC/DC, The Beatles, Metallica, Led Zeppelin и Pink Floyd. Количество зарегистрированных пользователей на данный момент превышает 1 миллион.
В свете последних событий(платная подписка на Last.fm), интерес к Spotify заметно вырос.
До 10 февраля 2009 бесплатно зарегистрироваться возможно было лишь по инвайтам. Сейчас же есть три вида подписок:
  • Premium (9.9€ в месяц)
  • Day Pass (1€)
  • Free (только для Швеции, Норвегии, Финляндии, Великобритании, Франции и Испании)

image
Обзор и способ бесплатной регистрации
Total votes 62: ↑52 and ↓10+42
Comments136

Открывать ли публичный доступ к WiFi точке доступа?

Reading time1 min
Views9K
Так сложилось, что у меня дома 100мбитный интернет-канал, безо всяких шейпилок и с неограниченным трафиком. Так как трафика мне не жалко — точка доступа (точнее — старенький ноут :) раздавала его налево и направо без каких-либо ограничений.
Кто-то из соседей им периодически пользовался, а мне было приятно, что кому-то от этого хорошо :)
Но тут появился странный товарищ — сначала пытаться подобрать пароль к ssh, а потом начал круглосуточно качать что-то в большом количестве, просаживая канал. КулХацкер, в общем. Пару раз заблокировал его mac — товарищ его после менял. Потом поставил простой WEP пароль — ну, думаю, поймет человек, верну обратно.
Ан нет — через пару дней он его «сломал» (не будем обсуждать небезопасность WEP) и продолжил качать порево что-то.
Так как заменять человеку домашнего провайдера в мои планы не входило — пришлось сегодня поднять hostapd, и вкрутить WPA2 шифрование.
Товарищ остался не у дел, но и несколько человек еще, кто-то из которых похоже просто сидел в «одноклассниках» и еще чем-то легком остался без халявного интернета.

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

UPDATE
Забавно, если сначала все поддерживали идею, то сейчас, видимо почитав «хвост» топика, крутят пальцем у виска и говорят, мол «хочешь проблем — раздавай, и ващетыдурак».
Total votes 198: ↑190 and ↓8+182
Comments357

Полный AJAX. Теория и Примеры. Фишки и Фичи

Reading time8 min
Views34K
По многочисленным просьбам начинающих (и не только) AJAX разработчиков, решил выделить часть своего времени для описания некоторых хитростей и приемов, которыми пользуюсь при построении сложных, динамических веб-приложений. Статья представляет из себя смесь теоретических выкладок и практических примеров.

Наибольшие трудности при построении сайтов c применением AJAX возникают при реализации механизма AHAH (Asynchronous HTML and HTTP). Особенно выполнение на лету подгружаемых Javascript-ов. Также есть куча дополнительного «гемороя» при разработке AJAX сайтов и веб-приложений. Вы можете ознакомится с детальным описанием некоторых существующих проблем. Из-за указанных сложностей, многие разработчики отказываются от более насыщенного внедрения AJAX.

Однако, мало кто знает, что перечисленные проблемы можно решить.
Читать дальше →
Total votes 112: ↑95 and ↓17+78
Comments141

Начало пути — Часть 4. Аппаратные решения (Часть 2).

Reading time4 min
Views7.4K
Как и обещал, выкладываю вторую часть «Аппаратных решений». Сегодня мы поговорим о мониторах, микшерах и midi-контроллерах, а в конце будет представлена таблица аудио разъемов.

P.S. Цены взяты снова с МузТорга.
Читать дальше →
Total votes 27: ↑27 and ↓0+27
Comments36

Скачиваем альбомы из Picasa

Reading time12 min
Views1.1K
Собственно все довольно просто:

1. Качаем и ставим Google API [Google.GData.Client.dll, Google.GData.Extensions.dll, Google.GData.Photos.dll]

2. Создаем новый проект на C# (я использую WinForms)
3. Заведем класс основной логики:

Читать дальше →
Total votes 42: ↑29 and ↓13+16
Comments23

Начало пути — Часть 1. Программные решения.

Reading time8 min
Views28K
Доброго времени суток всем читателям нашего блога! Это первая статья из серии «Начало пути», в которой я расскажу о программной части нашей маленькой звукозаписывающей «студии». В течении недели будет опубликовано еще три статьи — одна про «железо», вторая про базовые термины, которые могут нам повстречаться и еще одна про основы сведения. Эта серия в первую очередь полезна новичкам, знатоки скорее всего ничего полезного для себя не откроют.
Итак, поехали!
Total votes 96: ↑88 and ↓8+80
Comments98

Учимся C#. Ведро второе.

Reading time6 min
Views28K

Результаты отзывов


Немного о C# и *nix


Многих заинтересовало, как же можно писать на C# в *nix системах. Попробую помочь нашим друзьям. Существует проект Mono и вот, что нам говорит Википедиа:
Mono — проект по созданию полноценного воплощения системы .NET на базе свободного программного обеспечения.
Mono включает компилятор языка C# — mcs, среду исполнения .NET — mono (с поддержкой JIT) и mint (без поддержки JIT), отладчик, а также ряд библиотек, включая реализацию ADO.NET и ASP.NET. В рамках проекта также разрабатываются привязки для графической системы GTK+ на платформу .NET.
Среда исполнения mono может исполнять модули, написанные на языках C#, Visual Basic .NET, Java, Boo, Nemerle, Python, JavaScript, PHP и Object Pascal (при наличии компилятора в среду .Net/Mono). Ожидается также поддержка языков C, Ada 2005 и Eiffel.
Реализации Mono существуют для следующих операционных систем: GNU/Linux, Solaris, Mac OS X, Microsoft Windows и Unix.

И это говорит нам о том, что мы спокойно можем программировать практически в любой ОС на C#. Последний релиз Mono Project — 2.2. Mono Project — здесь вы сможете загрузить самую последнюю версию, а так же посмотреть документацию.
Так же есть ещё одна хорошая новость. У группы разработчиков Mono есть дочерний проект — MonoDevelop. Это бесплатная IDE для C# и ASP.NET. Она поддерживает все необходимые функции для успешной и быстрой разработки в *nix системах.

Что там дальше...
Total votes 99: ↑71 and ↓28+43
Comments58

Загрузка JavaScript-файлов. Решаем проблему Ctrl-F5

Reading time15 min
Views27K
Все мы знаем сотню способов загрузки скриптов. У каждого свои плюсы и минусы.

Хочу представить вам очередной метод загрузки js-файлов. Я также понимаю, что такой метод активно используется в сети, но статей про него я не видел.
Поэтому опишу способ, которым пользуюсь сам, в надежде, что он вам тоже понравится.

Цели: модульность разработки, быстрота загрузки, валидный кэш.
Бонус: индикатор загрузки

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

UPD 2. Для тех кто не дочитывает до конца (я вас прекрасно понимаю), в концовке сказано, как всё можно сделать намного проще.
Вместо core.633675510761.js писать core.js?v=633675510761. И там же указано, почему всё же написано так много.

UPD 3. В комментариях от david_mz, WebByte прозвучало предложение для обработки запроса использовать не JSHandler, а urlrewrite.

Как сделать чтобы пользователь не нажимал Ctrl-F5, чтобы обновить ваш скрипт?
Total votes 75: ↑58 and ↓17+41
Comments87

Тривиальные задачи по вёрстке

Reading time4 min
Views60K
image

Начинаю вести серию статей Это статья про вёрстку html css js, начинаю с самого простого, потом планирую описать более сложные вещи и всякие тонкости и этим видимо так и закончил

Читать дальше →
Total votes 275: ↑251 and ↓24+227
Comments160

25 самых опасных ошибок в программировании

Reading time8 min
Views2.7K
Всем привет.
Под катом — перевод статьи Джеффа Атвуда, в которой он приводит список 25 наиболее опасных ошибок в программировании от Common Weakness Enumeration со своими комментариями.

Сразу хочу сказать. Большинство ошибок, перечисленных там — общеизвестны и многим набили оскому. Несмотря на это, мы продолжаем вновь и вновь наступать на те же грабли. И я в том числе.
Однако, поехали
Total votes 101: ↑85 and ↓16+69
Comments34

Оптимизация процесса создания unit-тестов

Reading time6 min
Views4.8K
Всем привет! Хабраюзер shai_xylyd написал статью про аспекты тестирования, где им были рассмотрены некоторые понятия и ценности TDD. В частности, он упомянул очень интересный способ создания первичных юнит-тестов — когда функциональный код пишется совместно с кодом юнит-теста, чем меня очень заинтриговал.

Дело в том, что я (как программист), нахожусь в состоянии переходного процесса между «классической» разработкой и разработкой test-driven, поэтому всякими способами ищу возможности упростить и сделать более естественной последнюю. После пары приседаний, сразу включиться в методику shai_xylyd не сумел. Начал переписку с автором статьи, где он натолкнул меня на мысль подойти к решению с математической точки зрения. Идея в том, чтобы воспользоваться функциональным пространством среды программирования и «разложить» написание юнит-теста на составляющие. После чего сделать выводы.
Немного математики, а потом пример
Total votes 22: ↑18 and ↓4+14
Comments17

Руки прочь от автозапуска!

Reading time2 min
Views3.3K
Не правда ли, удалять с любимой флешки кучу вредоносных элементов, после каждого ее подключения к чужому компьютеру, несколько обременительно? А сколько нервных клеток уничтожают эти элементы? Моих — немеряно!

Все известные мне способы борьбы с подобного рода инцидентами (как то: пересесть на Линукс, отключить автозапуск, не тыкать флешкой куда попало и т.д.) не приемлимы для меня. Потому и пришлось выдумывать свой.

Наверняка кому-то этот метод покажется неэффективным, кому-то — неудобным. А кто-то вздохнет с облегчением или даже поможет менее опытным друзьям.

Должен отметить, что, на защищенной таким образом флешке, будут затруднены операции над элементами корневой папки. Именно на этом основан метод.

Суть: запретить кому бы то ни было запись/изменение корневого каталога.
Результат: вся нечисть, попавшая на флешку, ничем не сможет Вам помешать.

Читать дальше →
Total votes 87: ↑59 and ↓28+31
Comments187

Синтез 3D звука :: Clunk

Reading time2 min
Views3.1K
Работая над проектом уютненькой аркады, я с сожалением обнаружил что OpenAL отбирает слишком много моего времени. Мало того, что для него пришлось написать менеджер звуков о полутора тысячах строк кода, так ещё и приходилось бороться с разного рода чёрной магией. (Например реализация от nvidia намертво вешала венду) Поэтому, я внезапно решил что потратил на него достаточно времени и написал свой собственный велосипед, который и был успешно обкатан в поле, и выпущен с открытыми исходниками на sourceforge.

Вообще, наше ухо не такое уж и хитрое устройство. Позицию источника ухо определяет двумя способами. В горизонтальной плоскости звук приходит в одно ухо чуть раньше чем в другое. Простая тригонометрия умноженная на диаметр головы и дело в шляпе! :)
Второй способ уже куда сложнее — голова имеет разную плотность и разные технологические отверстия, следовательно, спектр звука искажается по разному в зависимости от направления вхождения сигнала. Было много попыток сделать эталонную голову(ничего постыдного, даже Стив Джобс делал это), заполнить её желеобразным заменителем мозга и померить искажения эталонного звука, например проект KEMAR из MIT.

Мой проект называется Clunk, и умеет практически всё, что необходимо уметь звуковой библиотеке:
  • Бесконечное количество всего: музыкальных потоков (SDL_Mix умеет только один, например), объектов и именованных источников звука прикреплённых к объектам или слушателю.
  • Простое апи на c++. (В OpenAL вы вынуждены сами перестраивать сцену, для того чтобы перекинуть 16 источников поближе к слушателю, рестартуя источники (sic), ещё рекомендую посмотреть примерчик «как сделать фоновую музыку на OpenAL», ~полтыщи строк кода =-O ) )
  • HRTF, HDT описанные выше(собственно 3d звук)
  • Поддержка всех distance models (падение громкости в зависимости от расстояния) из OpenAL
  • Опциональная оптимизация под процессоры с технологией SSE
  • Эффект допплера
  • Должно работать под всеми платформами где есть SDL, не содержит платформно-зависимого кода.
  • Лицензия LGPL 2.1 — можно использовать в коммерческих продуктах.


Адрес проекта на sf.net: https://sourceforge.net/projects/clunk
Если вам интересно, можно смело писать мне в icq, я готов ответить на любые вопросы.
Total votes 96: ↑95 and ↓1+94
Comments43

Процессы и потоки in-depth. Обзор различных потоковых моделей

Reading time10 min
Views123K
Здравствуйте дорогие читатели. В данной статье мы рассмотрим различные потоковые модели, которые реализованы в современных ОС (preemptive, cooperative threads). Также кратко рассмотрим как потоки и средства синхронизации реализованы в Win32 API и Posix Threads. Хотя на Хабре больше популярны скриптовые языки, однако основы — должны знать все ;)
Далее
Total votes 64: ↑62 and ↓2+60
Comments45

Программирование в ring0 для Windows: вводная статья

Reading time3 min
Views32K

По долгу службы мне пришлось столкнуться с программированием драйверов под Windows. Люди, которые никогда не сталкивались с этой задачей могут предположить, что драйвера — это что-то очень сложное и непосредственно взаимодействующее с железом. Отчасти они правы, а отчасти нет. В этой статье я постараюсь рассказать о том, что же из себя представляют Windows драйвера изнутри и с чем мне пришлось столкнуться. Статья является некоторым введением и не содержит «кусков кода».

Читать дальше →
Total votes 120: ↑112 and ↓8+104
Comments32

Стэнфорд открыл учебные материалы по программированию и ИИ

Reading time1 min
Views6.1K
Стэнфордский университет выложил в открытый доступ под лицензией Creative Commons содержание десяти учебных курсов по программирование, искусственному интеллекту, линейным системам и оптимизации. Воспользоваться этими уникальными материалами могут преподаватели и студенты со всего мира.

Каждый курс содержит видеозаписи лекций, полные тексты и тезисы, а также практические задания и экзаменационные билеты. Материалы практически полностью совпадают с той программой, по которой учатся студенты-очники в Стэнфорде. Чтобы скачать материалы, не требуется никакой регистрации или специального запроса. Они просто выложены в открытый доступ в ZIP-архивах примерно по 300 МБ, а видеоролики ещё продублированы на YouTube.

Вот список открытых курсов:
Total votes 96: ↑95 and ↓1+94
Comments42

Сделаем фотомодель по-быстрому!

Reading time8 min
Views5.7K
Не знаю о чем Вы там подумали из названия, но знайте — я этого в виду не имел! :)
Итак, продолжим становиться «Колумбами и открывать то, что до нас знали миллионы людей», кто вспомнит откуда эта почти-цитата (подсказка: про Интернет) тому 4 балла к гик-карме. Итак…

Итак, в свободное время, когда я не создаю безумные проекты, не учу людей зарабатывать на стартапах, в это время я изучаю всяческие гик-технологии, в т.ч. одна из них прямо-таки у меня стала навязчивой идеей. А именно — взять свой городок в пригороде большого города и превратить его в 3d-уровень для какой-нибудь игры (в FarCry/Crysis я продвинулся в этом больше всего), при том с фотограмметрической точностью (погрешности в метр или меньше от реального расположения домов).

Для того, чтобы это сделать нам понадобится:
  1. 3d-модели;
  2. 3d-движок;
  3. наука со страшным названием фотограмметрия;
  4. даже математика — а то, когда читаешь про Spherical harmonics — радуешься, что приматом был некоторое время; грустишь что все-равно не понимаешь о чем там...
  5. тонна терпения (впрочем, я не был бы мировым лентяем, если бы это и правда было так);

Начнем с 3D моделей

Читать дальше →
Total votes 139: ↑119 and ↓20+99
Comments76
12 ...
10

Information

Rating
Does not participate
Registered
Activity