Блоґ одного кібера

Історія хвороби контуженого інформаційним вибухом

Archive for the ‘Інструменти’ Category

Побудова “скриньок з вусами” львівських квартир що здаються на сьогодні

with 3 comments

Я ще минулого року помітив що в питаннях про Python на StackOverflow обговорюють якісь панди. Це, як виявилось обгортка навколо matplotlib, numpy і подібних гарних речей. А ще, лазячи по своїх документах в Google знайшов скачану вже позаминулого року стіну групи пошуку нерухомості вконтакті. І так співпало що я і мій колега-аналітик зараз шукаємо квартиру у Львові. Я йому показав цей файл, і він загорівся бажанням проаналізувати ще якийсь сайт оголошень.

При всій повазі до lun.ua, але тут я прорекламую dom.ria.com. Передовсім, там є українська версія. А ще, можливість скачати результати пошуку як електронну таблицю, хоч і в xls форматі, і лише одну сторінку.

В python читати xls вміє бібліотека xlrd, тому треба доставити ще й її. Pandas взагалі має багато необов’язкових залежностей:

sudo pip3.5 install jupyter pandas xlrd matplotlib
jupyter notebook # дуже модний графічний інтерпретатор

Якщо все поставити як вище і запустити “jupyter”, то можна робити обчислення в отакому документі: https://github.com/bunyk/mypandas/blob/master/dom.ria/dom.ria.ipynb
Прочитати решту цього запису »

Advertisements

Written by bunyk

Січень 4, 2017 at 01:30

В кого який рюкзак і хто своїм задоволений?

with 5 comments


Мій улюблений – North Face Terra 30 (на фото). Переважає всіх яких я знав досі за вмістимістю, легкістю, ергономічністю, водонепроникністю, кількістю кишеньок і надійністю.

Після нього я мав якийсь Polar, модель на ньому не була вказана, тому тепер думаю що всі Polar-и – лайно. Крім того вони ще й москалі, а я в них стараюсь не купляти, навіть якщо то щось нормальне типу ABBY чи LinguaLeo. 🙂

Після того я мав підробку під North Face Yavapai. Знаю що підробка, бо система Deuter AirComfort буває лише в Deuter. В підробки злетіли обидва замки, і взагалі вона набагато гірша за Terra 30, бо хоча ніби теж тридцятилітровий, але вмістимість менша, об’єм більший, не скручується (в AirComfort там такі металеві дуги в спинці). Ну і як виявилось ота спинка з сітки зовсім не заважає спині потіти.

Зараз приїхав з відпустки з Husky Giro 60. Але 60 літрів – то забагато як для ровера по місту. Ну і всі ці пасочки компресії, пасочки для прив’язування пасочків компресії, пасочки регулювання висоти, тиску на ключиці, тиску на таз, тиску на груди і.т.п то заскладно як для міста.

А без рюкзака я втрачаю мобільність, бо нема де ховати ланцюг і помпу до ровера, ну й інші корисні речі типу ноутбука. В кульку носити ноутбук боюсь. Без ланцюга паркувати ровер теж боюсь, аби він не втік пастись кудись далеко. І хочеться щось таке взяти аби я наступні 5 років був задоволений і нічого не міняв.

Може MOLLE? Або Deuter? (Кажуть найкращі для велосипедистів.) Може підтримати національний продукт і спробувати Terra Incognita?

Вимоги (переважно те що я любив в Terra 30):

  • Відділ для ноутбука 15″. (Або гідросистеми, хоча то ніби одне й те ж)
  • Водонепроникність (raincover, хоча було б добре водонепроникність і без нього)
  • Міцність і надійність. Бажано щоб замки були по дві штуки на один відділ, і хороші. Бо я часто пакую мало не 10 кг, і по об’єму теж до упору. Батьки харчі передають, а я крім комп’ютера книжки купляю.
  • Ергономічність. Застібка на грудях. Перенесення частини ваги на пояс.
  • Бажано яскраві світловідбиваючі елементи.
  • Бажано елементи пеналу (місце для кількох ручок), брелок (карабін де можна ключі вішати), і всілякі дрібні кишеньки.
  • Розширюваність (можливість збільшити об’єм розтягуванням головного відділу).
  • Компактність (можливість стиснути і скрутити, тому всілякі металеві каркаси в спинці – нафіг).

А ще, я досі не знайшов правильну шапку. Тому якщо десь побачите таку – повідомте будь-ласка.

Written by bunyk

Липень 20, 2016 at 23:09

Оприлюднено в Інструменти, Нещоденник

Як запам’ятати ключі до tar?

with 2 comments

Кожного разу коли я бачив файл з розширенням на зразок *.tgz, я пам’ятав що треба написати щось схоже на tar -авадакедавра! і магія трапиться. Але що точно – завжди гуглив.

Тепер якось випадково запам’ятав. Все просто. -x означає “eXtract”, тобто розпакувати. Так і пишемо: $ tar -x archive.tgz. На що tar нам:

tar: Refusing to read archive contents from terminal (missing -f option?)
tar: Error is not recoverable: exiting now

Бачте, сам нагадує, що якщо хочемо вказати файл, то треба вказати його після ключа. На що ми йому $ tar -xf archive.tgz, і він слухняно все розпаковує. Є ще ключ -v, який часто пишуть, але він просто каже показати список файлів що розпаковуються, і не є обов’язковим до запам’ятовування.

tar -x Ось і все.

Written by bunyk

Червень 30, 2016 at 01:26

Оприлюднено в Інструменти

Tagged with ,

Як дописувати до Вікіпедії?

with 6 comments

Мене іноді питають про найелементарніші речі, тому почну з найелементарнішого. Якщо вам щось не подобається у Вікіпедії, і ви знаєте як воно повинно було бути правильно – ось як це виправляється:

Шляхи до редагування Вікіпедії

Шляхи до редагування Вікіпедії

Хоча звісно не все так просто. Іноді ваші зміни можуть не прийняти, тоді варто піти на сторінку обговорення і обговорити всі питаня які виникають.

Також вам крім кнопки “[ред.]” дуже потрібні ще дві речі: сильна цікавість до чогось, і бажання розібратись, та бажання поділитись тим про що довідались з іншими. А далі – деяке знання розмітки, але це не настільки вже й обов’язково. Оформлення вас навчать, головне аби стаття відповідала правилам, тобто мала незалежні від вас джерела і не порушувала авторські права (копіпаст або переклад дозволяється лише з матеріалів під вільними ліцензіями). Тому писати Вікіпедію трохи складніше ніж скачувати реферати з інтернету. 😉 А написати вибрану статтю складніше ніж написати дипломну роботу. Тут трохи про те як пишуться вибрані. Коли сам напишу вибрану – може розповім як і це робилось.

А поки що, розглянемо наприклад як дописувалась стаття про компанію Fujikura, яка відповідає мінімальним вимогам до якості. Той самий підхід працює як і для розширення існуючих статтей, так і для створення нових. Про Fujikura я дізнався завдяки прес-релізу “Міністерства магії”:
Прочитати решту цього запису »

Written by bunyk

Травень 2, 2016 at 13:58

Встановлення Python 3.5 з джерельного коду, встановлення Django

with 5 comments

Ок, продовжу спроби підготуватись до DjangoGirls так, щоб там ми вчили найпередовіші технології. 🙂

Такі експерименти краще робити у захищеному середовищі, тому бажано щоб у вас були VirtualBox та Vagrant:

sudo apt-get install virtualbox vagrant

Поки вони ставляться, раджу коротко ознайомитись як користуватись тим Vagrant-ом.

В директорії з кодом створюємо такий файл:

# -*- mode: ruby -*-
# vi: set ft=ruby :

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "ubuntu/trusty64"
  config.vm.network "forwarded_port", guest: 8000, host: 8000
end

Це поки що він такий. Пізніше поміняю, і вся інсталяція має більш автоматизуватись. Тепер команда vagrant up дозволяє підняти чисте середовище. vagrant ssh – зайти в його термінал.

Ми хочемо Python 3.5, а його інакше як з сорсів не отримаєш, тому качаємо з сайту: https://www.python.org/downloads/

sudo apt-get update
sudo apt-get install build-essential libsqlite3-dev sqlite3 bzip2 libbz2-dev
sudo apt-get install libreadline-dev libncurses5-dev tk-dev libssl-dev
wget -c https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tar.xz
tar xJf Python-3.5.0.tar.xz
cd Python-3.5.0
./configure
make
sudo make install

Прочитати решту цього запису »

Written by bunyk

Грудень 2, 2015 at 23:49

Оприлюднено в Інструменти, Кодерство

Tagged with ,

PostgreSQL & PostGIS “Hello world”

with 2 comments

Інсталяція:

sudo apt-get install -y postgresql postgresql-contrib postgis

Після чого від імені користувача postgres (це суперкористувач для postgres), створюємо користувача gisuser та базу для нього, яку наприклад назвемо gis:

sudo -u postgres createuser gisuser
sudo -u postgres createdb --encoding=UTF-8 --owner=gisuser gis
# і створимо пароль для користувача:
sudo -u postgres psql -d gis -c "ALTER USER gisuser WITH PASSWORD 'password'"

# і увімкнути розширення postgis:
sudo -u postgres psql -d gis -c "CREATE EXTENSION postgis;"
sudo -u postgres psql -d gis -c "CREATE EXTENSION postgis_topology;"
CREATE EXTENSION

Тепер ми можемо з’єднуватись з нашою базою за допомогою клієнта, вказавши базу і користувача:

psql -d gis -U gisuser

У випадку отримання помилки:

psql: FATAL:  Peer authentication failed for user

Треба відредагувати файл sudo vim /etc/postgresql/9.4/main/pg_hba.conf, чи який там буде для вашої версії, і зробити таку заміну десь ближче до кінця:

- local   all             all                                     peer
+ local   all             all                                     md5

І перезавантажте сервер

sudo /etc/init.d/postgresql restart

Тоді можна буде логінитись (дивно, але в мене навіть пароль не питає), і виконувати запити:

select postgis_full_version();
-- В мене дає щось схоже на:
-- POSTGIS="2.1.5 r13152" GEOS="3.4.2-CAPI-1.8.2 r3921"
-- PROJ="Rel. 4.8.0, 6 March 2012" GDAL="GDAL 1.11.2, released 2015/02/10"
-- LIBXML="2.9.2" LIBJSON="UNKNOWN" RASTER

Можна ще поставити гарний GUI-клієнт:

sudo apt-get install -y pgadmin3

Гаразд, давайте тепер створимо табличку з містами:

CREATE TABLE cities ( 
    id SERIAL PRIMARY KEY,
    name VARCHAR(100),
    location GEOGRAPHY(POINT,4326)
);

4326 це ідентифікатор системи координат (SRID, Spatial Reference system ID) і означає що ми використовуватимемо систему координат WGS 84. Здається це популярна система координат.

Тепер заповнимо таблицю якимись даними:

INSERT INTO cities (name, location) VALUES
 ('Львів', ST_GeographyFromText('SRID=4326;POINT(49.83 24.014167)') ),
 ('Київ', ST_GeographyFromText('SRID=4326;POINT(50.45 30.523611)') ),
 ('Івано-Франківськ', ST_GeographyFromText('SRID=4326;POINT(48.922778 24.710556)') )
;

І спробуємо зробити якийсь запит, наприклад скільки метрів від Львова до Києва:

select ST_Distance(
    (select location from cities where name='Львів'),
    (select location from cities where name='Київ')
);

І цей запит дає мені 723904.293225235, що приблизно 723 км, в той час як до Києва по прямій менш ніж 500 км. Я вибрав неправильну проекцію, або переписав з вікіпедії неправильні координати, або передав функції якісь неправильні параметри. 😦

Але на сьогодні напевне просто піду спати. До речі, може ви підкажете в чому помилка?

Посилання

Written by bunyk

Листопад 25, 2015 at 00:57

Оприлюднено в Інструменти, Кодерство

Tagged with

Шпаргалка по Docker

with one comment

Docker в порівнянні з гіпервізором другого типу.

Docker в порівнянні з гіпервізором другого типу.

Докер – штука для керування лінукс-контейнерами. А Лінукс-контейнери – це особливий вид гіпервізора, який дозволяє створювати на лінуксі віртуальні лінукси. Це мінус що тільки лінукси, але плюс що ядро операційної системи для кожного контейнера спільне, тому ці контейнери набагато легші в порівнянні з повноцінними віртуальними машинами.

Віртуальні машини корисні для ізоляції середовища. Наприклад середовища розробки. Хоча цим може займатись і Vagrant. А ще Vagrant може керувати не тільки машинами на VirtualBox, а й контейнерами Docker. Коли що використувати – здається справа особистих вподобань. Хоча мені кажуть що так як контейнери більш легковісні, тут інша філософія роботи, наприклад “кожному процесу свій контейнер”. Ось цікаве обговорення питання що коли варто використовувати, в якому беруть участь автор Vagrant та автор Docker.

Але краще раз попробувати ніж сто разів прочитати:

Інсталяція

На Linux найпростіше, хоч і не безпечно:

wget -qO- https://get.docker.com/ | sh

Прочитати решту цього запису »

Written by bunyk

Липень 22, 2015 at 09:43

Оприлюднено в Інструменти, Кодерство

Tagged with