вчера в 23:02
Эти два вымышленных парня сильно повлияли на меня в плане программирования:
Вместо предоставления гарантий на совместимость или безошибочную работу, софт от Братьев Бигл обещал кое-что другое: веселье.
Игры со странными дискетами от Братьев Бигл на компьютере Apple II в средней школе, и «шведский стол» всяческих программ, которые были написаны для них, стали для меня обрядом посвящения.
вчера в 21:56
Одна из новых идей Perl 6 – метаоператор. Это оператор, который можно скомбинировать с обычным оператором, изменив его поведение. Таких метаоператоров есть несколько штук, но в этой статье мы рассмотрим только X и Z.
Оператор X вы могли видеть в роли инфиксного комбинирования. Он комбинирует списки, по элементу из каждого, во всех возможных комбинациях:
> say ((1, 2) X ('a', 'b')).perl
((1, "a"), (1, "b"), (2, "a"), (2, "b"))
Однако, запись
infix:<X>
— это короткая запись метаоператора X, примененного к оператору конкатенации
infix:<,>
. И действительно, можно написать:
> say ((1, 2) X, (10, 11)).perl
((1, 10), (1, 11), (2, 10), (2, 11))
Что произойдёт, если мы применим Х к другому инфиксному оператору? Например, к
infix:<+>
вчера в 20:04
Наш стартап
Olery был основан почти 5 лет назад. Мы начали с единственного продукта, Olery Reputation, который был создан агентством, занимавшимся разработкой на Ruby. Всё это выросло в набор различных продуктов. Сегодня у нас есть ещё Olery Feedback, API для Hotel Review Data, виджеты для вставки на сайты и многое другое.
Всего у нас работает 25 приложений (все на Ruby) – некоторые из них в вебе (Rails или Sinatra), но в основном это фоновые приложения для обработки данных.
Хотя нам есть, чем гордиться, есть у нас одна проблема, которая всё время висела где-то в фоне – база данных. Изначально мы использовали MySQL для важных данных (пользователи, контракты, и т.д.) и MongoDB для хранения обзоров и других данных, которые легко можно было бы восстановить в случае утери. Сначала всё работало неплохо, но по мере роста мы начали испытывать проблемы, в особенности с MongoDB. Некоторые из них возникали в сфере взаимодействия БД с приложениями, некоторые – непосредственно у самой БД.
К примеру, в какой-то момент нам надо было удалить миллион документов из MongoDB, а позже вставить. В результате работа базы застопорилась на несколько часов. Потом нам пришлось запускать repairDatabase. И сама починка тоже заняла несколько часов.
вчера в 16:08
Клона Spectrum 128K, оснащенного музыкальным сопроцессором AY-3-8910 (YM2149F) у меня не было. Был 48K с расширенной клавиатурой и убогим блоком питания, перегревающим внутренности через час-два работы. От этого, помнится. домики посреди моря в Sim City образовывались и другие веселые артефакты. Но к делу данные воспоминания не относятся. Вдохновившись
материалом tronix286, я решил восполнить пробел в ретро-образовании и склепать что-нибудь на легендарном (и при этом, легко добываемом и недорогом) чипе.
В ходе изучения различных поделок, идея сформировалась следующая: надо делать модуль с последовательным (UART) входом. Чтобы его уже можно было подключить с минимальными затратами к любому девайсу, добавляя тем самым +146 к чиптюновости. В процессе также было решено освоить пару дополнительных навыков, вроде программирования AVR и изготовления печатных плат с применением фоторезиста.
Сразу опишу результаты: модуль разработан и пиликает, побочные навыки прокачаны, грабли собраны, можно радоваться, расширять и углублять.
13 марта в 15:04
При разработке кросс-платформенного мобильного приложения, имеющего в своём функционале работу с файлами, встаёт вопрос об организации процессов работы с файлами на каждой платформе. С данным вопросом мы столкнулись при разработке новой версии
Edusty, позволяющей делиться файлами со своими одногруппниками. В этой статье мы расскажем как происходит импорт и экспорт файлов в приложениях, работающих на операционных системах iOS, Android, Windows Phone.
13 марта в 18:22
По специфике работы сталкиваюсь с дефицитом информации по эксплуатации систем конвенциональной и транкинговой связи и, в частности, при работе с оборудованием компании «Kenwood». При этом есть небольшой накопленный опыт, которым я бы хотел поделиться.
Сегодня расскажу об одном из вариантов практической реализации ROIP (radio over ip) с помощью радиостанции kenwood nx-700, cisco 2911 с CUCME и ROIP шлюза ФР-106.
13 марта в 22:15
Здравствуйте, меня зовут Виталий и я
обезьяна практик — для меня лучше один раз увидеть и скопировать, чем сто раз прочитать абстрактные руководства. Долгое время я был обычным системным администратором — писал скрипты на CMD/BAT, и даже на sh (при помощи busybox для Windows). Но однажды обычного shell мне стало не хватать, и я решил для себя написать собственный RPC-сервер, но так, чтобы он работал при минимуме системных компонентов, и был понятным, и был многопоточным и содержал минимум строк кода. Java и прочее ООП я отмел, так как для профессионалов, и слишком абстрактно, и надо ставить среду для выполнения на целевой компьютер, и мне же, как админу, её обновлять. Долгое время приглядывался к perl, но я боюсь динамической типизации. В статье я расскажу, как человеку мало знакомому с программированием решить некоторые задачи системного администрирования при помощи
Go.
13 марта в 22:10
С недавних пор мы с друзьями плотно подсели на настольные игры, а незадолго до этого я решил попробовать программировать под микроконтроллеры. Чередуя настольные игры с пляской вокруг микроконтроллера (я игрался всё это время с Attiny2313), родилась идея применить на практике небольшие знания, которые приобрёл на начальных этапах работы с этим МК и сделать игральный кубик. Была поставлена примерно следующая задача:
- Кубик должен отображать информацию по аналогии со своим костяным собратом;
- Кубик должен выдавать два значения;
- Кубик должен быть максимально простым в использовании.
13 марта в 15:56
Привет, коллеги!
Совсем недавно мы провели конференцию, посвященную ASP.NET технологиям и всему что с ними связанно. Она имела успех, о чем можно судить по полному залу и звонкам с вопросами: «Может еще билетик будет все же?». Более подробно мы расскажем позже, но можно посмотреть
фотоотчет, а сейчас хочется рассказать о
двух новых конференциях, которые мы планируем провести в апреле.
Прежде всего хотим сказать, что быть вегетарианской конференцией мы не планировали, поэтому (но не только) мы сменили площадку и меню теперь будет с
мясом!
Первая конференция UI Desktop & Business Application (11 апреля) посвящается «невидимым» с облаков разработчикам настольных корпоративных приложений и в целом всем, кто занимается разработкой и поддержкой бэкенда или разработкой сложного корпоративного интерфейса.
Сейчас почти все митапы и конференции посвящены тому, как перейти в облака или как клево написать сайт. Но до сих пор огромное количество разработчиков создают или поддерживают десктопные приложения, и они могут чувствовать себя обделенными. Мы хотим собрать их вместе, где все внимание будет сосредоточено на их проблемах в решении задач энтерпрайза, чтобы могли поделиться знаниями о своих подходах к решению различных задач. Мы собираем – профессионалов своего дела, чтобы они поделились с вами своим опытом. Чувствуете себя профессионалом, есть интересный случай из практики, решение которого может быть полезно коллегам?
Тематика докладов:
- разработка системы обновлений
- системы плагинов — MEF
- интересные бизнес-кейсы связанные со стационарной разработкой
- фреймворки для UI, тестирование UI
- встраивание в систему
- особенности или какие-то интересные возможности связанные с EF
- и так далее, все что специфично для Windows программ
Регистрация уже началась. Воспользуйтесь возможностью приобрести билет по начальной цене.
вчера в 00:28
В Perl 6 введён новый оператор… для задания последовательностей. Вот как это работает:
my @even-numbers := 0, 2 ... *; # арифметическая последовательность
my @odd-numbers := 1, 3 ... *;
my @powers-of-two := 1, 2, 4 ... *; # геометрическая последовательность
Пример использования:
> my @powers-of-two := 1, 2, 4 ... *; 1;
1
> @powers-of-two[^10]
1 2 4 8 16 32 64 128 256 512