vak: (Default)
Что напечатает следующая программа? Компилируем посредством "clang++ -std=c++11 lol.cc -o lol".
#include <iostream>

using namespace std;

int main() {
int lol = 10;
int l​ol = 10;
int l​o​l = 10;
int l​​ol = lol + l​ol + l​o​l;
cout << l​​ol << endl;
return 0;
}
(отсюда)
vak: (Default)
Сервер 2xARM64 с операционной системой Ubuntu 16.04, память 2Гб, диск 50Гб, сетевой порт 200Мбит/с с неограниченным трафиком, и всё это за €3 в месяц. Подробности здесь: https://blog.online.net/2017/04/27/scaleway-disruptive-armv8-cloud-servers/

Отлично подходит для организации веб-сервера или персонального VPN.
vak: (Default)
Фирма Global Knowledge опубликовала результаты исследования зарплат программистов по всему миру за 2016 год.

http://images.globalknowledge.com/wwwimages/pdfs/2017_Global_Knowledge_SalaryReport.pdf

vak: (Default)
[personal profile] henry_flower предложил удобный способ вставлять в комментарии видео с Youtube.

К примеру, чтобы вставить ссылку с идентификатором HzavoVQhlOA, в комментарии пишем:
<a href="https://www.youtube.com/watch?v=HzavoVQhlOA" target="_blank">
<img src="http://img.youtube.com/vi/HzavoVQhlOA/0.jpg">
</a>
Получаем:


vak: (Default)
Your Test Results (Tested on 3/28/2017, 3:06:49 PM)
Download Speed: 28.9 Mbit/s (3612.5 kbyte/s transfer rate)
  Upload Speed: 4.88 Mbit/s (610 kbyte/s transfer rate)
       Latency: 23 ms
vak: (Default)
Чего только народ не строит на процессорах MIPS. Вот, к примеру, самодельное сетевое хранилище на шесть жёстких дисков. Процессор MediaTek MT7621A (MIPS 1004Kc), два двухпоточных ядра до 1.2ГГц под управлением Debian Linux. Документация и схемы выложены на Гитхаб.

vak: (Default)
Я наконец нашёл приемлемый способ хранения интернетовских паролей: утилита pass. Пароли шифруются посредством GPG и хранятся на закрытом GIT-сервере. В базовом виде pass это утилита командной строки. Есть GUI для Linux, MacOS, Windows, а также приложение для Android. Вариант для iOS пока в разработке.
vak: (Default)
В таблице для каждой пары языков X и Y показана активность обсуждения темы "Почему мы мигрировали с языка X на язык Y". Что интересно - побеждает язык Go (16.41%). На втором месте Си (14.26%).

vak: (Default)
"Финская компания Jolla развивает Sailfish OS с 2012 года. В 2015 году одним из её акционеров стал основатель группы ЕСН Григорий Берёзкин. В настоящее время он является мажоритарным акционером Jolla (более 50% акций)." (отсюда)

"Sailfish OS is licensed and developed by Russian local product company Open Mobile Platform Ltd. Open Mobile Platform’s aim is to customize and further develop Sailfish OS for the Russian market, and to answer to local Russian needs. Open Mobile Platform has already started rapidly building the local developer community for Sailfish OS in Russia." (отсюда)
vak: (Default)
Провёл простейшее измерение memory footprint для примера "Hello world" на четырёх языках: C, Go, C++ и D. Размер требуемой памяти и количество прерываний подкачки страниц измерялись утилитой /usr/bin/time. Операционная система Ubuntu Linux.
Language    Resident Size   Page faults
----------------------------------------
C           1324k           61
Go          1064k           120
C++         3052k           126
D           2796k           144 
Как можно видеть, Go требует наименьшего размера памяти: в три раза меньше чем C++ и D, и на 30% меньше чем Си.
vak: (Default)
Тридцать лет назад у меня родился сын, и я проводил много времени, прогуливаясь с детской коляской по живописным окрестностям славного города Долгопрудного. Под мышкой я держал невероятную ценность, доставшуюся мне по удачному стечению обстоятельств: книжку "Язык программирования Си" Кернигана/Ритчи. Присаживался на лавочки и тщательно штудировал мудрость далёкий американских инженеров. Это было еще первое издание, аж 1985 года. Пытался найти обложку в сети - не смог.

Сейчас получаю такое же интеллектуальное удовольствие от книжки "The Go Programming Language" Кернигана/Донована. Великое дело сделали товарищи: сваяли язык 21 века. Не зря он сейчас вытесняет Джаву и прочих из серьёзных проектов.

vak: (Default)
Приехала ко мне вот такая штуковина:



Это Arduino-совместимая плата, построенная на микроконтроллере FE310 фирмы SiFive. Процессор имеет открытую архитектуру RISC-V. Фактически это первая реализация RISC-V в кремнии, доступная широкой публике. Плату можно заказать за $59 на сайте CrowdSupply.

Скачиваем и устанавливаем среду разработки:
git clone --recursive https://github.com/sifive/freedom-e-sdk.git
cd freedom-e-sdk
make tools
Компилируем и загружаем в плату тест Dhrystone:
make software PROGRAM=dhrystone BOARD=freedom-e300-hifive1
make upload PROGRAM=dhrystone BOARD=freedom-e300-hifive1
Подключаемся к консоли платы и жмём кнопку Reset:
core freq at 279979622 Hz
циферки )
Dhrystones per Second: 775193.8


Progam has exited with code:0x00000000
Видим, что процессор работает на частоте 280 МГц. Измеренную производительность надо поделить на 1757 (скорость VAX), чтобы получить величину DMIPS = 775193.8 / 1757 = 441.2. Для сравнения: микроконтроллер ATmega2560 16MHz даёт 7.23 DMIPS, процессор STM32F103 72MHz - 48.8 DMIPS, PIC32MX 80MHz - 92 DMIPS.

Для оценки эффективности архитектуры процессора имеет смысл поделить производительность на частоту процессора. Получим характеристику DMIPS на MHz. Результат такой:
Processor    Architecture    DMIPS/MHz
-----------------------------------------
ATmega2560 AVR 0.45
STM32F103 ARM 0.68 PIC32MX MIPS 1.15
FE310 RISC-V 1.57
vak: (Default)
Для долгосрочной архивации купил на Амазоне минимальный комплект: DVD-писалку для M-DISC ($25) и запас болванок ($1.33/шт). Производитель Verbatim обещает срок хранения в несколько сот лет. Поживём - увидим. :)

В отличие от традиционных дисков эти - полупрозрачные на просвет.

vak: (Default)
Полезная статейка от уважаемого френда [livejournal.com profile] 32bit_me: как применять LLVM и clang в своих целях. Приводятся примеры анализа исходных текстов программ на Си и Си++.