Microsoft Visual Studio Code, под Linux, Mac, Windows

2i8a9082

Почти первоапрельская новость обнаружилась 29.04.2015 на большинстве айтишных ресурсов, компания Microsoft на конференции Build 2015, объявила о разработке новой редакции, теперь уже кроссплатформенной среды разработки «Visual Studio Code». С поддержкой Linux, Mac OS и Windows. Читать

Доклад Алексея Шепилева. JAVA Benchmarking

Было дело задумывался я померять производительность java приложения. Многие наверное задумывались, как бы замерить производительность какого-то кода, и многие (как и я) думали, что это достаточно просто. Вот вам крайне рекомендую посмотреть этот доклад. Рассматриваються очень интересные, и порой не очевидные ньюансы.



Java: распределенные вычисления

Просмотрел сейчас запись выступления Алексея Рагозина на встрече jug.ru от 12.12.13, интересные вещи рассказывает, не вольно поймал себя на мысли, что ищу варианты, чего бы распределенно посчитать. Кроме перебора забытого пароля на rar архив, ничего не придумалось.

В общем рекомендую к просмотру.

 

Кое что о SED

В жизни любого айтишника, бывают моменты, когда нужно сделать много однообразной работы, но инструментами, которые могли бы помочь автоматизировать процесс не владеешь. И тут возникает вопрос, что быстрее: потратить время, научиться пользоваться инструментом, и потом сделать все за 5 минут, или потратить время и сделать все в ручную.

Зачастую, сделать в ручную быстрее, если конечно не думать о том, что возможно придется еще не раз делать эту работу, а обычно так и бывает!

Так случилось, что сегодня мне нужно было в пяти мегабайтном CSV файле из почти 100 000 строк заменить сперва все запятые на точку с запятой, а затем все точки на запятые. Не буду вдаваться в подробности, но сперва, я попробовал как обычно открыть его в Libre  Office Calc. Точнее открыл то я его без проблем, а вот операция «поиск с заменой» подвесила редактор на долго. Прождав минут 10, я его прибил. Решил, что старый добрый nano сделает это быстрее. Хрен там было!

Любой смыслящий в линукс, скажет — в SED это сделать легко, но так уж вышло, что для меня SED это тот самый инструмент, который изучить все не доводилось. Но решил попробовать. Нашел довольно хороший мануал для новичков, и блин эта ацкая прога перемолола файл примерно за 2 СЕКУНДЫ!!!!

Сказать что я был удивлен — ничего не сказать. Я сперва подумал, что команду не правильно ввел…. Но все было верно. Ниже перепост того мануала. Автору ОГРОМНОЕ СПАСИБО. Ссылка на оригинал в конце.

Читать

Спорим в твоем приложении есть утечки памяти?

Посмотрел доклад… с интересом. Суть в том, что какой бы ты не был крутой программист, но почти гарантированно в твоем софте есть утечки памяти. В 99% случаев это баги сторонних библиотек. В общем начинающим Java разработчикам обязательно к просмотру.



OpenJDK

Посмотрел доклад Артема Ананьева о OpenJDK.

Рассказывал он о том, что такое OpenJDK, чем отличается от Oracle JDK, как разрабатывается, как присоедениться к процессу разработки, и т.д.

В результате снес на домашнем компе Oracle JDK (т.к. есть сложности с обновлением), и поставил OpenJDK. Как оказалось разницы почти никакой, хотя я был почему то уверен, что OpenJDK это полностью с нуля переписанная реализация JDK от Oracle. В общем, есть смысл посмотреть.



TARGET, HOST и BUILD в autoconf

Разбираюсь с кросскомпиляцией пакета, нашел интересное и понятное объяснение отличий опиций target, build и host в autoconf.
--build: это машина на которой вы компиляете.
--host: машина для которой компилируете.
--target: машина для которой GCC сгеренинует бинарник.

Как указано в GCC documentation (Host/Target specific installation notes):

Если build, host и target одинаковые, это называется «нативная компиляция»(native).

Если build, host одинаковые, а target отличается, это называется: кросс-компиляция(cross).

Если build, host, target все разные, это называется канадская компиляция (canadian), назвали так в честь политической партии канады, у которых видимо обещания с делами сильно расходятся ))

Если target и host одинаковые, а build отличается, то вы используете кросс-компиляцию для сборки нативного бинарника для другой системы. (иногда это называют host-x-host, crossed native, или cross-built native.)

Если build и target одинаковые, а host отличается, то вы используете кросс-компилятор, чтобы скомпилять кросс-компилятор, для машины на которой в данный момент компиляете. (Иногда и такое бывает.)

 

PS. Убил кучу времени пытаясь скомпилить i386 код на amd64 системе. После каждой компиляции проверял полученный бинарник с помощью file. В результате получил заветные:

root@host:/home/serp/sbin# file zabbix_agentd
zabbix_agentd: ELF 32-bit LSB executable, Intel 80386, version 1 (GNU/Linux), statically linked, for GNU/Linux 2.6.24, BuildID[sha1]=0x80351655fa042fd59e60f87c61433eaf9f713e4d, not stripped

Помогло конфигурирование с помощью:

CFLAGS=»-m32″ ./configure —enable-agent —with-mysql —with-net-snmp —enable-static  —prefix=/home/serp/zabbix_compiled —host=i386

Занимательная археоелогия

Прочитал на хабре статью, автор которой проанализировал исходники DOS 1.1 и WORD 1.1a.  Много интересного для себя открыл. Пересказывать не буду, оригинал можно почитать тут: http://habrahabr.ru/company/pvs-studio/blog/217921/

В книге «Хакеры: Герои компьютерной революции», объясняется, что основное занятие хакеров — это написание инструментов для написания инструментов, для того чтобы делать «правильные вещи». И тут я не опечатался. Прикол в том, что ни один смертный этой работы не ощущает. Далеко не каждый программист способен ощутить, как много эти люди делают для индустрии программного обеспечения. Почему я так подумал? Да элементарно! С какой легкостью СЕГОДНЯ с помощью современного ИНСТРУМЕНТА человек сумел оперативно найти кучу недоработок в немаленькой программе, которую писал не один человек, и не два…

А ведь и сейчас есть такие же хакеры (слово заезженное, поэтому, в современных реалиях имеет несколько искаженный смысл), которые делают инструменты, что бы делать инструменты… Двигающие ту самую Computer Scienсe, но результат работы которых мы сможем ощутить не скоро…

Для того, что бы понять это, почувствовать, нужно много лет. В общем занятие не для любителей славы и известности.

Яков Сироткин — о геномном ассемблере.

Было очень интересно послушать по поводу того, как расшифровывается геном человека. Для тех кому лень, или нет времени — суть вот в чем: 1. Геном (или ДНК) невозможно просто взять и прочитать. 2. Для построения полной цепочки ДНК используются тысячи небольших отрезков по 100 — 200 символов, называемые ридами. 3. Риды взаимно перекрываются, и нет информации о том, из какой части ДНК данный конкретный рид. 4. Риды могут содержать ошибки, например при эксперименте в образц может примешаться ДНК человека, или какой-нить кишечной палочки (руки мыть надо). 5. ДНК человека (готовая цепочка) в состоящая из символов A,G,T,C, занимает больше 3 гигабайт. 6. Исходные данные (набор ридов), для построения цепочки, в сотни раз больше, чем результирующая цепочка. Вот и представьте, что, как и на каком железе нужно делать, что б получить ДНК человека….

Как доходчиво и быстро разобраться что делает команда на bash

Сегодня нашел сайт http://explainshell.com/ всем админам настоятельно рекомендую ознакомиться. Но сразу предупрежу, не во всех браузерах работает, проверяли на firefox 25.0.1 и google chrom 16.0.

Выглядеть должно примерно так:

 

explain

 

Разработчики собрали информацию с помощью парсинга 29761 руководств из репозитория справочников Ubuntu. Им пришлось немало потрудиться, чтобы корректно извлечь информацию об аргументах каждой программы, потому что в некоторых справочниках используется нестандартное форматирование страниц.