Pull to refresh
-3
0
olen @olen

User

Send message

Использование Thrift в .NET

Reading time5 min
Views12K
Хочу поделиться с вами примером того как можно использовать такую удобную штуку как Thrift в своих .NET проектах.

Для тех кто не знает, Thrift — это фреймворк для облегчения взаимодействия между кодом написанным на разных языках, а именно C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk и OCaml.

Thrift используется и был изначально создан Facebook. Так же неоднократно упоминался здесь, на Хабре, но примеров для .NET я не нашел, кстати пошаговое руководство для .NET отсутствует и на официальном сайте. В гугле если честно, тоже не смог найти, хотя может плохо искал.

Thrift позволяет один раз описать сервис, структуры данных и даже исключения, а потом сгенерировать код для всех поддерживаемых языков. Таким образом, если вы, например, напишете сервер с использованием Thrift на .NET, то вы
  1. Сэкономите кучу времени для написания клиент серверного приложения, например с использованием сокетов.
  2. Почти автоматически получаете клиентов на всех поддерживаемых языках.
В своем примере я реализую простейший сервис, который просто будет возвращать время. Но имея такой макет достаточно легко расширить его до чего-нибудь полезного.
Читать дальше →
Total votes 41: ↑31 and ↓10+21
Comments28

Грабли при верстке HTML писем

Reading time3 min
Views103K
Довольно часто наши клиенты устраивают регулярные рассылки с новостями. Почти всегда их не устраивают текстовые рассылки или простое оформление HTML рассылок. Наши дизайнеры вовсю креативят, а мы потом набиваем шишки при верстке их макетов с корректным отображением во множестве почтовых клиентов.

Ниже список встретившихся нам особенностей и способы их разрешения (как то упорядочить их мне не удалось, поэтому всё идет единым списком)
Читать дальше →
Total votes 282: ↑273 and ↓9+264
Comments77

Ликвидатор велосипедов: часть 1

Reading time3 min
Views15K
imageЭтим постом я начинаю серию статей, которые должны помочь каждому разработчику избавиться от велосипедов в своих последующих и текущих проектах. Усилить код и увеличить функционал. Каждый из нас хочет внести в свою программу нечто, что сделает ее богаче, но зачастую решение либо не находится, либо лень тратить время на поиски… Либо внутри сидит глупая уверенность что это можно реализовать быстро и не менее функционально. В любом случае я хочу чтобы каждый пробежался глазами по спискам библиотек, которые я вам предоставлю на суд, и чтобы у каждого эти библиотеки отложились в памяти. И когда их функционал пригодится в будущем, я очень надеюсь что вы вспомните этот пост и поищите эти библиотеки вместо того чтобы писать все новые и новые велосипеды, полные палок в колесах.
Начну я с оконных менеджеров.
Читать дальше →
Total votes 119: ↑101 and ↓18+83
Comments52

Шпаргалка: кеширование картинок, CSS и JS в NGINX

Reading time1 min
Views78K
Заметка для тех, кто не специалист в NGINX, а проблему нужно решить быстро.

Допустим, у вас на сервере стоит NGINX и вы хотите, чтобы вся статика кешировалась у клиента. В конфиге хоста NGINX пропишите это:

server {
listen 80;
server_name mysite.com;
...
# Задаем правила обработки статического контента (типов файлов можно поставить и больше)
location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|pdf|ppt|txt|bmp|rtf|js)$ {
root /path/to/document/root/; # Путь к корню вашего сайта
access_log off; # не пишем логи
expires 3d; # кешируем у клиента на 3 дня
}
}

Проверить можно в FireBug во вкладке NET: обновите страницу 2 раза и посмотрите код ответа. Если 200 ОК, то не работает. Если 304 Not Modified, то работает.

Неплохо ускоряет работу сайта.
Total votes 87: ↑52 and ↓35+17
Comments30

Cufón – используйте шрифты, какие душа пожелает

Reading time4 min
Views90K
Если стоит задача использовать в проекте нестандартный шрифт, то есть возможность пойти несколькими путями:
  1. Ъ-метод – не использовать нестандартные шрифты, достаточно в CSS сказать body {font-family: sans-serif;} и не морочить себе голову.
  2. Быдло-метод – нарезать из ЖПЕГов, картинок с заголовками, ужать посильнее, что б появилась размытость и вставлять вместо текста картинки. Достаточно популярный на наших просторах метод.
  3. W3C-метод – используем @font-family и наслаждаемся красивыми шрифтами без всяких заморочек. Пока этот метод не рассматривают, как рабочий, по причине слабой поддержи со стороны браузера.
  4. sIFR – клевая вещь, наиболее употребляемая на сегодняшний день, но как недостаток – требует наличия Flash-плагина. Хотя это трудно назвать недостатком, но если есть инструмент, позволяющий обойтись без плагинов, то это не может не радовать.
  5. Cufón – самое то. Относительно новый метод, который показывает превосходные результаты. Он и есть герой этой статьи.
Читать дальше →
Total votes 119: ↑111 and ↓8+103
Comments106

Еще несколько полезных плагинов

Reading time2 min
Views1.8K
За последний месяц, я написал уже два поста с обзорами плагинов jQuery (1 и 2). Надо сказать, что подобные статьи на английском языке появляются все чаще и чаще. Однако их содержание довольно быстро приедается. Галереи картинок, слайдеры, опять галереи картинок, многочисленные динамические меню и опять слайдеры. Мне не хочется описывать очередную порцию подобных плагинов. Поэтому сегодня я расскажу не о двадцати-тридцати как обычно, а только о семи важных на мой взгляд плагинах, о которых очень хотелось рассказать. Лучше меньше, да лучше.
Читать дальше →
Total votes 100: ↑87 and ↓13+74
Comments25

Принципы работы покерного бота. ч.2

Reading time9 min
Views37K


Эта статья является продолжением вот этого хабратопика. В этой части создания покерного бота мы поговорим об алгоритме принятия решений. В основном речь пойдет о стратегиях которые можно успешно применять и получать какой-то доход. Нужно понимать, что стандартные алгоритмы могут работать в плюс только на небольших лимитах, где встречается много игроков с очень неоптимальной игрой, которые готовы отдавать нам много денег. Для дальнейшего усовершенствования нужно вводить дополнительные элементы, которые принимают во внимание игроки более высоких лимитов используя статистику игроков.
Читать дальше →
Total votes 82: ↑62 and ↓20+42
Comments37

Использование коэффициента Танимото для поиска людей с одинаковыми предпочтениями

Reading time3 min
Views12K
Решая упражнения к книге «Программируем коллективный разум», я решил поделиться реализацией одного из алгоритмов упомянутого в этой книге (Глава 2 — Упражнение 1).

Исходные условия следующие: пусть мы имеем словарь с оценками критиков:

critics={'Lisa Rose'{'Superman Returns'3.5'You, Me and Dupree'2.5'The Night Listener'3.0}
           'Gene Seymour'
{'Superman Returns'5.0'The Night Listener'3.5'You, Me and Dupree'3.5}}

Чем выше оценка, тем больше нравится фильм.
Надо вычислить: насколько схожи интересы критиков для того, например, чтобы можно было на основе оценок одного рекомендовать фильмы другому?

Читать дальше →
Total votes 109: ↑100 and ↓9+91
Comments22

HTML5 Prefetching — Предварительная загрузка документов

Reading time2 min
Views8.2K
Аж в 2003 году Mozilla представила новый механизм для оптимизации загрузки страниц. И существует большой шанс, что технология войдет в HTML5.

Суть же метода в том, что на любой странице браузеру можно указать документы (страница, файл стилей, картинка), которые в скором времени могут понадобиться пользователю. И он заранее их закэширует.
Узнать, как использовать prefetching
Total votes 45: ↑41 and ↓4+37
Comments36

HTML5 Video — от А до Я

Reading time6 min
Views233K
Да, да, это очередная статья про html5 и тэг < video >. Но главным ее отличием будет то, что здесь будут рассмотрены самые базовые понятия и теории. Так что приготовились внимательно читать и записывать, let html5 rocks!
Читать дальше →
Total votes 57: ↑52 and ↓5+47
Comments26

Прикручиваем клевые шрифты с помощью @font-face

Reading time3 min
Views43K
Недавно столкнулся с задачей прикручивания достаточно необычного шрифта для мобильного веб клиента. Так как работа была под айфон, то я решил, что в этой задаче мне поможет css 3 и такая штука как @font-face. Пользу от такого способа решения задачи, я думаю, видят все, потому что:
  • сохраняется поиск по тексту, потому что это текст, а не картинка;
  • появляется возможность использовать онлайн-переводчики и разные фишки связанные с текстом;
  • никто не отменяет для нас использование line-height, letter-spacing, text-shadow,text-align, и селекторов вида ::first-letter и ::first-line

Читать дальше →
Total votes 98: ↑88 and ↓10+78
Comments48

База изображений в любых форматах и разрешениях

Reading time3 min
Views4.5K
заказчик: Пусть аватарки пользователей у нас будут в 50×50 и 100×100, в JPEG
разработчик: Готово

заказчик: Надо переделать, чтобы аватарки были в PNG
разработчик: Сделал

заказчик: Пусть аватарки будут в GIF, 25×25 и 40×40
разработчик: Ага, проверяй
заказчик: Уже? Как ты это так быстро делаешь???
разработчик: …
Читать дальше
Total votes 157: ↑140 and ↓17+123
Comments153

Хостинг на AWS (EC2, EBS, S3) для чайников

Reading time4 min
Views138K
На хабре уже проскакивали периодически заметки посвященные AWS (Amazon Web-Services) — так что тема не новая. Однако, если для меня лично (да и для многих моих знакомых как выяснилось) — этот термин был знаком — однако каких-либо деталей я не знал. Попробую на основании только-что полученного опыта рассказать немного подробней, а так же изложить основные шаги по организации хостинга сервера на AWS и его преимущества. Как и несколько ссылок, которые могут оказаться полезными.
image
Читать дальше →
Total votes 101: ↑98 and ↓3+95
Comments62

Обзор нескольких новых плагинов jQuery

Reading time4 min
Views6.3K
Довольно часто я наступаю на одни и те же грабли. Стараясь выполнить какой-нибудь проект побыстрее, я с головой ухожу в реализацию необходимой функциональности. А через неделю, мне на глаза обязательно попадается описание библиотеки, фреймворка или плагина, воспользовавшись которыми, я мог бы выполнить свою часть работы в разы быстрее. В общем, сейчас я стараюсь быть в курсе готовых решений в интересующих меня областях. В последнее время мне часто приходится работать с javascript и поэтому, сейчас я уделяю особое внимание библиотеке jQuery и ее плагинам. Должен сказать, что упускать из виду такое разнообразие готовых решений просто нельзя. Данная статья сделана на основе обзора «50 Awesome New jQuery Plugins», который я прочитал пару дней назад.
Читать дальше →
Total votes 132: ↑123 and ↓9+114
Comments28

Кому в App Store жить хорошо. Магазинчик программ «У Стиви» глазами разработчика

Reading time10 min
Views6.5K
В этой статье постараюсь кратко рассказать про свой полуторалетний опыт разработки под iPhone. И о том, кому же полезен App Store.

Часть 1. Действующие лица


Независимый разработчик


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

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

Многие слышали success story о том, как молодой человек загорается желанием и за неделю «в гараже» выдает на-гора супер-проект, о котором пишут новостные ленты, пестрит твиттер, который попадает в топы категорий, подкатегорий.

Обычно, за очень редким исключением, кроме минуты/дня/недели славы из этого ничего не получается. Что на первых порах молодой команде даже вредно.
О реальных цифрах знают далеко не все. Потому что далеко не все были в этом самом «топе». Иногда это даже проблема, этот «топ».
Читать дальше →
Total votes 145: ↑131 and ↓14+117
Comments96

Требования к html-верстке

Reading time6 min
Views75K

1. Верстка, аутсорсинг и технические задания


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

Чтобы сэкономить трудовые ресурсы штатных верстальщиков, недостаточно просто переложить эту работу на плечи первого приглянувшегося фрилансера. Все намного проще, если вы постоянно отдаете работу на аутсорсинг одним и тем же исполнителям — в процессе длительного сотрудничества всегда складывается какой-то негласный свод стандартов и требований, выполнение которых входит в привычку. Но если вы работаете с человеком впервые — самое хорошее портфолио и рекомендации не гарантируют получения нужного результата и более того — даже не предполагают, что исполнитель вообще вас правильно поймет. Потому нужны детальные технические задания по верстке.
Читать дальше →
Total votes 228: ↑204 and ↓24+180
Comments296

Пишем фильтр «плохих» слов

Reading time5 min
Views93K
Многие из вас наверняка не раз бывали в публичных многопользовательских чатах. Будь то форум, вебчат или чат-сервер в локалке провайдера, идеального порядка можно достичь лишь при малом количестве пользователей (не более сотни, на мой взгляд). Когда сообщество разрастается, возникают примерно одни и те же проблемы: мат, спам и флуд — один скучающий индивид каждую минуту постит «Все в кантру!», другой матерится по поводу и без и все в таком духе.

Идеального мат-фильтра до сих пор не изобретено. Но мы этим заниматься и не будем, рассмотрим реализацию необходимого минимума.
Читать дальше →
Total votes 82: ↑61 and ↓21+40
Comments79

Веб-скрейпинг и .Net

Reading time6 min
Views9.5K
В последнее время интересуюсь веб-скрейпингом (он же веб-майнинг) и в результате решил написать статью для тех, кто уже слышал о том, что он существует, но пока на вкус не пробовал.

Читать дальше →
Total votes 43: ↑25 and ↓18+7
Comments48

Moles — Isolation Framework от Microsoft Research или как сделать юнит-тестирование удобнее

Reading time3 min
Views2K
Иногда случается, что стройную и продуманную систему юнит-тестов душит сильная связность компонентов — особенно этим грешит legacy код, изначально не предназначенный для тестирования. Рефакторинг, конечно, спасает — но не всегда можно рефакторить. Одной из проблем, возникающих при создании юнит-тестов может стать использование static методов или non-virtual методов, которые должны быть перегружены для успешного написания тестов. Поможет в этом проект от Microsoft Research — Moles.
Читать
Total votes 44: ↑30 and ↓14+16
Comments12

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity