Pull to refresh
21
0
tyaga @tyaga

Пользователь

Send message

Скороговорки для программистов

Reading time1 min
Views2.3K
Деплоили, деплоили, да не выдеплоили.

Из транка в бранч, из бранча в транк (для достижения нужного эффекта повторить несколько раз).

Разрабатывал разработчик разрабатывающую разработку.

Предлагайте свои!
Total votes 48: ↑43 and ↓5+38
Comments16

Все вебморды в одной. virtualhost и proxy_pass в nginx для дома.

Reading time4 min
Views4K
В этой статье я хотел бы поделиться опытом, как организовать доступ к Web-интерфейсам различных домашних качалок через один единственный проброшеный наружу порт. Делать будем под винду (на Win32 порту nginx), но точно также можно сделать под unix.

Где это может понадобиться? Очень простой пример, состоящий из двух условий:
— У меня дома стоит СТРИМ, который блокирует входящий 80 порт
— У меня на работе открыты наружу только порты 443, 80, 5190.
— Как итог: я могу достучаться домой только к 2 сервисам, один из которых у меня SSH, и один остается свободным. Задача сводится к тому, чтобы завернуть все WEB-морды в один сайт, ибо замучался я с SSH-туннелингом. Универсального интерфейса, конечно же, не получится, так что их надо логически разделить.
Читать дальше →
Total votes 33: ↑27 and ↓6+21
Comments18

MacHeist. Новые секретные миссии.

Reading time1 min
Views606
Не успели мы оправиться от Macworld 2009, как подоспел знаменитый MacHeist.

Сайт MacHeist разослал по почте своим секретным агентам новые задания, за решение которых агенты получат вознаграждение — лицензии для платного ПО для Mac OS X.
Читать дальше →
Total votes 38: ↑27 and ↓11+16
Comments13

Концепт WebOS

Reading time3 min
Views707
Просьба не рассматривать данный пост как рекламу, ибо BeOrganized! — мое некоммерческое хобби.

Навеяно:


Серией постов в данном блоге о браузерных ос
Комментариями: вот этим, вот этим
BeOrganized! — туда можете и не заходить, вот тут есть немного инфы: вот тут

Читая комменты, ловил себя на мысли: «Я тоже хочу весь контент на одном месте», «Мне тоже не нужен оконный интерфейс в браузере», «Я тоже хочу подключаться к своему рабочему месту с любого устройства»

На самом деле я пытаюсь реализовать что-то подобное, и то, что получается — мне нравится. Но можно и круче. За час размышлений родилась вот такая идея:
Читать дальше →
Total votes 40: ↑34 and ↓6+28
Comments37

33 правила для увеличения Вашей продуктивности (Стив Павлина)

Reading time6 min
Views3.8K
Оригинал: 33 Rules to Boost Your Productivity
Автор: Стив Павлина (Steve Pavlina)
Перевод: Евгений Ефремов

Эвристика — это набор правил, предназначенных для того, чтобы помочь решать вам свои задачи. Когда задача сложна или просто велика, а оптимальное решение неясно, применение эвристических методов поможет вам продвинуться в ее решении, даже если у вас нет четкого видения всего решения целиком.
Предположим, что вашей целью является покорение горы, но ни одна дорога не ведет к вершине. Примером эвристического решения может быть: Двигаться напрямую к вершине до тех пор, пока вы не встретите препятствие, которое не сможете преодолеть. Когда вы встретите подобное препятствие, следуйте вдоль него направо до тех пор, пока не сможете двигаться к вершине снова. Это не самый лучший или самый полный вариант применения эвристики, но во многих случаях он будет нормально работать, и вы достигните вершины.
Эвристика не гарантирует, что вы найдете оптимальное решение, более того, она не гарантирует, что вы найдете хоть какое-нибудь решение. Но для определенного типа задач эвристика бывает весьма полезна. Ее сила в том, что она помогает сдвинуться с мертвой точки, когда вы не можете принять решение, и приступить к действиям. Когда вы начинаете действовать, вы исследуете возможные варианты, что углубляет ваше понимание задачи. И получая больше информации о задаче, вы понемногу повышаете свои шансы найти ее решение. Если вы пытаетесь решить задачу, не зная точно, как это сделать, зачастую вы можете найти решение в процессе. Причем такое, до которого не смогли бы додуматься, не начав действовать. Особенно это справедливо для творческой деятельности, например для разработки программного обеспечения. Там вы часто не знаете, что вы хотите сделать, пока не начнете это делать.
Эвристика имеет множество приложений, одним из моих любимых является применение в личной продуктивности. Эвристика в задачах продуктивности — это набор поведенческих правил (иногда общих, иногда — ситуационных), которые помогают нам делать вещи более эффективно. Вот некоторые из мои любимых:
Читать дальше →
Total votes 35: ↑30 and ↓5+25
Comments28

TheLastRipper — граббер «эфира» Last.fm

Reading time1 min
Views2.2K
TheLastRipper — бесплатное приложение, с помощью которого можно записывать потоковое аудио из радио Last.fm в mp3. Помимо загрузки музыкальных композиций программа позволяет скачивать обложки альбомов и записывать в mp3-файлы ID3v1 теги. Полученные в результаты mp3 можно сортировать по трекам, исполнителям или альбомам. Также есть возможность создавать плейлисты.
Читать дальше →
Total votes 21: ↑17 and ↓4+13
Comments45

Шесть вопросов, которые приводят к заключению сделки

Reading time3 min
Views2.7K
Предлагаю вам универсальную схему постановки вопросов, которая даст вам значительные преимущества в переговорах. Эту схему можно применять не только для продажи, но и для любых других целей, которые предполагают получение от собеседника чего-либо: согласия на продолжение взаимодействия, дополнительной информации и так далее…

1 Вопрос о мнении. Задайте вопрос о мнении собеседника на какой-либо вопрос, который не подразумевает принятия решения. Выражение своего отношения ни к чему не обязывает и не раскрывает конфиденциальной информации. Рассказывая, человек начинает видеть в вас заинтересованного человека и начинает доверять вам.
Итак, собеседник выразил определенное мнение, начал видеть в вас понимающего собеседника и можно переходить непосредственно к теме встречи.
Читать дальше →
Total votes 34: ↑24 and ↓10+14
Comments36

История Google. Книга о главном

Reading time2 min
Views5.3K

Неделю назад приобрел книги Дэвида Вайза “Google. Прорыв в духе времени” об истории ИТ-гиганта, поисковой системы Google. Прочитал быстро и с интересом.

В книге 26 глав, повествуют о развитии и становлении компании в хронологическом порядке: от проблемы поиска информации в Сети, идеи создания новой системы поиска и до выхода на IPO и планов на будущее основателей компании (Ларри Пейджа и Сергея Брина). К слову, Брин — родился Советском Союзе.
Предисловие к русскому изданию написал В.Долгов, директор российского представительства Google, в котором больше говорит о мощи гиганта, чем о полезности книги. Также господин Долгов пишет, что из книги можно будет узнать причины и особенности столь масштабного развития компании. Преувеличивает немного. Узнать можно многое, но только не главное. что позволило поисковику захватить мир, включая Китай, где далеко не просто обстоят дела с цензурой и Интернетом вообще.

Читать дальше →
Total votes 33: ↑22 and ↓11+11
Comments67

Опыт блогстарта

Reading time6 min
Views710
Эта статья — вторая в серии из трёх статей о становлении блога. Она основывается на моём личном опыте и на примере моего проекта. Все советы, приведённые ниже — результат моих собственных опытов. Думаю, это может быть полезным для тех, кто только собирается заиметь «стэндалон». А те, чей опыт схож с моим, могут дополнить и поправить то, что я написал, на благо новых блоггеров.

nude2



Стойким товарищам я советую начать с выбора домена и поиска хостинга. Если ты планируешь немного повременить, и не становиться «звездой блогинга» в первые десять дней практики, смело бери пакет «стартер». Его наполнение везде разнится, но несущественно. Php 4.1, MySQL-база, три-четыре гигабайта трафика и контрольная панель — есть почти у всех. Сразу после оглушительного успеха, докупишь места и трафика.

Читать дальше →
Total votes 49: ↑39 and ↓10+29
Comments46

Melange — DSL для сетевых протоколов

Reading time8 min
Views16K
Всем программистам рано или поздно приходится передавать данные. Ни для кого не секрет, что библиотек сериализации в Java существует примерно >9000, а в C++ они вроде и есть, а вроде их и нет. К счастью для большинства, несколько лет назад появился Google Protobuf, который принёс достаточно удобный способ определять структуры данных и быстро завоевал всенародную любовь. Это была фактически первая, доступная широким массам библиотека, позволяющая гонять по сети готовые структуры данных, не связываясь при этом с чем-то вроде XML. На дворе был 2008 год.

Вернёмся немного назад. В 2006 году простой индийский программист (как бы подозрительно это ни звучало!) Анил Мадхавапедди, один из самых известных сейчас в мире OCaml-разработчиков и автор свежевышедшей книги Real World OCaml, защищал в Кембридже кандидатскую диссертацию. Именно о ней я сегодня вам и расскажу.

Анил сразу пошёл дальше, чем Google. Он сразу подумал, для чего люди обычно пересылают по сети какие-то формализованные структуры данных? Чтобы реализовать какой-то протокол. А что такое протокол? Это какой-то конечный автомат. А где мы можем взять хороший пример сложного, хорошо спроектированного и проверенного временем протокола? Да прямо в обычном сетевом стеке! Итак, были взяты набор сетевых структур данных и протоколов: Ethernet frame, IPv4, ICMP, TCP, UDP, SSH, DNS и DHCP и постановка задачи: большая часть этих протоколов (особенно SSH и DNS) реализуются, что называется «руками», а хочется, чтобы не было типичных для C переполнений буфера, все переходы совершались автоматически, это всё можно было верифицировать, и чтобы работало быстро, а не как обычно.

Поскольку никто не будет читать диссертацию, сразу скажу: это более чем удалось. По результатам работы были написаны референсные реализации DNS и SSH-сервера и произведено сравнение с BIND и OpenSSH. OCaml-реализации давали по сравнению с традиционными прирост производительности от незначительного, до почти двухкратного. Кроме того была найдена ошибка в RFC на SSH (рабочая группа была уведомлена и RFC исправлен). О том, что было сделано, и как с этим жить, читайте под катом.
Мне интересно.
Total votes 68: ↑68 and ↓0+68
Comments18

90 модулей Node.js в общественное пользование

Reading time1 min
Views3.3K
Разработчики из Browserling решили выложить для всеобщего пользования (под open source) 90 модулей для Node.js. Все они выложены на github и хорошо документированы.

Большинство модулей — маленькие полезные утилиты, но некоторые представляют собой серьёзный вклад в сообщество Node.js. Например, node-bigint — очень надёжная и эффективная библиотека для арифметики произвольной точности.

Компания Browserling известна как разработчик одного из лучших веб-сервисов для кросс-браузерного тестирования сайтов. Сначала они делали его на Haskell, но пару лет назад переключились на Node.js. Кто-то говорит, что эти ребята на год-два опережают по уровню разработки всех, кто работает в данной области.
Total votes 54: ↑48 and ↓6+42
Comments18

Переписываем проект с Zend Framework на Rails

Reading time9 min
Views7.8K
Около пяти месяцев назад я завязал с zend framework и пересел на рельсы. Тогда же начал переписывать свой проект www.okinfo.ru. Сейчас он уже закончен и sloccount показал что количество строк в проекте уменьшилось с 15000 до 4000. Мои знакомые php разработчики попросили success story и в итоге родилась эта статья. В ней я опишу как оно было, а так же немного расскажу о своем переходе на ruby.
Читать дальше →
Total votes 154: ↑143 and ↓11+132
Comments197

О монадических технологиях

Reading time6 min
Views3.4K
Кирпичёв правильно пишет про небрежность интуитивного понимания императивных языков: http://antilamer.livejournal.com/300607.html.

Однако, мне кажется, что важно было бы озвучить, что всё то, что сейчас скрывается под именем «монада» — само по себе достаточно спутанно в плане педагогики и евангелизма.  Классическая шутка SPJ/Вадлера звучит как «нам следовало назвать ЭТО warm fuzzy things, чтобы не пугать людей теоркатом».  Шутка поразительно недальновидная.   Проблема лежит в той же плоскости, что и называние стоящих перед тобой задач словом «stuff» (это то, с чем борется Аллен в своём GTD).  
Монады в настоящий момент являются миру как сложный ком из исторически обусловленных причин, проблем, решений, технических возможностей и теоретических основ (как алгебраических, так и аспектов теории вычислений). 
Все эти наслоения можно (и нужно) расщепить в первом приближении так (порядок приблизительно случайный):
  • стремление к экспликации эффектов (чистое внедрение императивно-подобных моментов в вычисление), (см. труды Вадлера);  здесь мы включаем ввод-вывод, STM, параллельные вычисления и проч.)
  • удобный механизм для материализации базовых микро-стратегий вычисления — вызов функции (call-by-name/call-by-value), многозначность, смена состояния (присваивания!), обработка исключений, останов при неудаче, continuations, бэктрекинг;
  • typeclasses как механизм внесения монад в язык, и как следствие — удобный механизм для мета-перехвата вычисления (невероятно удобно для domain-specific embedded languages);
  • строгая проверка типов, проистекающая из использования typeclasses, и позволяющая механически проверять корректность использования объектов;
  • существование монадических законов, в которые укладываются монады, что позволяет материализовывать абстрактные комбинаторы; это позволяет находить порой неожиданные изоморфизмы между различными предметными областями, а также помогает при оптимизации и верификации программ;
  • проработанная теоретическая основа (теория категорий), на которой базируются монады; это облегчает жизнь создателям базовых библиотек, на которых потом базируется всё реальное программирование;
  • монады — лишь один из классов в длинной цепочке интересных алгебраически обусловленных классов, некоторые из которых слабее монад, а некоторые — сильнее: Functor, Applicative, Monoid, Traversable, Foldable, Monad со товарищи, Arrow со товарищи;
  • стремление к материализации некоторых видов вычислений в алгебраическую структуру (моноидальные вычисления); это открывает широкий простор для оптимизаций, верификации программ, создания абстрактных комбинаторов, а также устранение unbounded recursion — по мощности результатов это похоже на то, как когда-то ввод-вывод был надежно изолирован в IO Monad;

Потратим по паре абзацев на каждый пункт.
Читать дальше →
Total votes 49: ↑33 and ↓16+17
Comments103

Настройка и оптимизация MySQL сервера

Reading time9 min
Views312K
В этой статье будут описаны различные настройки MySQL, преимущественно те, которые влияют на производительность. Для удобства все переменные разделены по разделам (базовые настройки, ограничения, настройки потоки, кэширование запросов, тайминги, буферы, InnoDB). Сначала уточним имена некоторых переменных, которые изменились в версии 4 MySQL, а в сети продолжают встречаться и старые и новые варианты имен, что вызывает вопросы.
Читать дальше →
Total votes 180: ↑171 and ↓9+162
Comments19

Несколько фишек для изучающих английский язык

Reading time1 min
Views48K
1. Анонимные чаты: omegle.com, chatroulette.com
2. Сайты-помощники: kwiz.me, kimir.org, englishtips.org
3. Подкастинг: eslpod.com, effortlessenglish.com, npr.podcast.com, businessenglishpod.com,
4. Качаем фильмы/сериалы, затем субтитры к ним. Просматривать можно с замедлением в VLC плеере чтобы лучше переваривать. Еще рекомендую комик шоу, например Important Things with Demetri Martin — не пожалеете.
5. В скайпе ищем каких нибудь индусов со статусом SkypeMe и не стенсняясь знакомимся.
6. При прочтении какой-то книги или просмотра фильма неплохо бы подготовится таким образом: берем текст, устанавливаем длину слова и частоту употребления в тексте и запускаем, например, этот скрипт (PHP): pastebin.com/m7672c2a9
В итоге имеем дайджест слов большинство из которых вы уже знаете но остальные стоит подучить. И когда вы будете смотреть фильм или читать книгу вы автоматом поймете это слово.
7. Произношение слов — ставим в Google.translate режим Русский->English и в поле текста пишем английское слово — оно без перевода встанет справа вместе с флэшкой которое произносит слово. Также forvo.com, howjsay.com
8. Социальные сервисы ответов:
answers.yahoo.com, vark.com
9. Социальные сети для изучения языка:
livemocha.com, lingq.com, italki.com
10. Остальное:
nytimes.com, ecenglish.com, urbandictionary.com
allengl.narod.ru/top/phvTOP170.htm

Надеюсь каждый нашел для себя что-то полезное:)
Total votes 190: ↑171 and ↓19+152
Comments114

Фонетический поиск

Reading time4 min
Views16K
Пару лет назад была задача написать для одного из сайтов такой поиск, который бы распознавал опечатки и предлагал бы исправленные запросы. Было перепробовано несколько вариантов, об одном из которых я и хотел тут написать. Поиск на основе звучания слов может стирать языковые границы, поскольку имена собственные на разных языках созвучны. Например, ищешь «Арнольд Шварцнеггер» на русском — находишь «Arnold Schwarzenegger» на английском, или ищешь «Michael Jordan» — находишь «Майкл Джордан», или ищешь «Чак Норрис» — и вдруг он сам тебя находит. Помимо поиска созвучных слов этот метод нивелирует большое количество опечаток. А то че-то задолбала попса, надо больше про инсайд…

...больше про инсайд
Total votes 123: ↑122 and ↓1+121
Comments77

Ускоряем выборку произвольных записей MySQL

Reading time3 min
Views33K
Последнее время оживилась публика с вопросом случайной выборки из таблицы. Решений по оптимизации полно, и нового сейчас я вам наверное ничего не покажу, просто напомню про основные методы оптимизации — упрощение запроса и индексацию. Без предисловий про фриленсеров, сразу к делу ;)

Читать дальше →
Total votes 59: ↑50 and ↓9+41
Comments22

Выборка произвольных записей в MySQL

Reading time4 min
Views107K
Есть вроде бы обычные задачи, которые можно решить сразу и не задумываясь, но при интенсивном использовании таких решений возникают проблемы, причем не маленькие. Об одной из таких задач я и хочу рассказать.
Почитать интересную статью
Total votes 44: ↑28 and ↓16+12
Comments142

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity