• Как FL.ru обманывает пользователей, продавая одну услугу два раза, нарушая собственные правила

    История о том, как я пытаюсь отстоять свои (и не только) права и почему фриланс-ресурс «№1» нужно обходить стороной.



    На FL.ru я уже более 13 лет. За это время видел free-lance.ru, блоги, конкурсы, Василия Воропаева, Ирину Котову, сходки, монетизацию, провалы, косяки, обман и кидалово. Но главное, я с нуля прошёл путь фрилансера, от работы за отзывы, до нескольких постоянных заказчиков, на которых сейчас и работаю.

    Мой ник Ikstro, профиль www.fl.ru/users/ikstro, может даже кто и помнит по давно выпиленным блогам.

    С 2010 года для меня оплата Pro-аккаунта была такой же рядовой, как оплата жилья или телефона. Для тех кто не в курсе, Pro-аккаунт тебе даёт некоторые привилегии, основные из которых это Рейтинг и Основная специализация, благодаря которым ты выгодно размещаешься в каталоге.

    Приобретая Pro-аккаунт по Соглашению с FL.ru я должен получить: специализации — 1 основная + 4 дополнительных, рейтинг +20%
    Читать дальше →
  • Почему стоит научиться <<парсить>> сайты, или как написать свой первый парсер на Python

    В этой статье я постараюсь понятно рассказать о парсинге данных и его нюансах.



    image

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

    Перейдем к этапам парсинга.

    • Поиск данных
    • Извлечение информации
    • Сохранение данных


    И так, рассмотрим первый этап парсинга — Поиск данных.


    Так как нужно парсить что-то полезное и интересное давайте попробуем спарсить информацию с сайта work.ua.
    Для начала работы, установим 3 библиотеки Python.

    pip install beautifulsoup4

    Без цифры 4 вы ставите старый BS3, который работает только под Python(2.х).

    pip install requests
    pip install pandas


    Теперь с помощью этих трех библиотек Python, можно проанализировать нашу веб-страницу.

    Второй этап парсинга — Извлечение информации.


    Попробуем получить структуру html-кода нашего сайта.
    Давайте подключим наши новые библиотеки.

    import requests
    from bs4 import BeautifulSoup as bs
    import pandas as pd
    


    И сделаем наш первый get-запрос.

    URL_TEMPLATE = "https://www.work.ua/ru/jobs-odesa/?page=2"
    r = requests.get(URL_TEMPLATE)
    print(r.status_code)
    


    Статус 200 состояния HTTP — означает, что мы получили положительный ответ от сервера. Прекрасно, теперь получим код странички.

    print(r.text)
    


    Получилось очень много, правда? Давайте попробуем получить названия вакансий на этой страничке. Для этого посмотрим в каком элементе html-кода хранится эта информация.

    <h2 class="add-bottom-sm"><a href="/ru/jobs/3682040/" title="Комірник, вакансия от 5 ноября 2019">Комірник</a></h2>


    У нас есть тег h2 с классом «add-bottom-sm», внутри которого содержится тег a. Отлично, теперь получим title элемента a.
    Читать дальше →
  • Задачка на деление. Как разделить город на зоны доставки

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

    Необходимо успеть доставить все документы, да ещё в короткий срок. Почта, курьерская доставка, электронные каналы — все в игре. Самару и другие города доверим курьерской компании, удаленные районы — Почте России, а самых крупных клиентов по Самаре не доверим никому, кроме штатного курьера.

    Как распределить адреса доставки, чтобы не гонять курьера с одной части города до другой? Нужно сгруппировать адреса по районам!

    Задача: необходимо разделить клиентскую базу на зоны доставки, чтобы можно было делать выборки по районам доставки. При этом будет удобно оформлять путевые листы на каждый день: сегодня курьер едет в Куйбышевский район, завтра в Промышленный, а послезавтра — в Красноглинский. Проблема в том, что в клиентской базе такого признака нет (по крайней мере, пока).
    Читать дальше →
  • Программирование за пределами вычислительных машин

    Всем привет. На днях, я закончил работу над одним интересным для меня проектом, по разработке аккумуляторного устройства, генерирующего электроэнергию из программного кода. Знаю, звучит глупо и очень смешно, но не спешите с выводами, друзья. На данный момент, я столкнулся с большими трудностями по реализации этого проекта. А именно, с кадровой составляющей. Квалифицированные фрилансеры, как правило, берутся за работу, когда уверены в своих силах на все 100%. И, это понятно, ибо никто не хочет рисковать своей репутацией. Чисто из интереса, я предлагал до 5,000$, хотя на данный момент у меня таких денег нет, всё равно все стараются игнорировать. И, я так понял, в данный момент, эту проблему не разрешить деньгами (что немного противоречит современному мироустройству).


    Перевернув весь интернет вверх дном, (в том числе англоязычные источники), я не обнаружил не единого намёка, ничего хотя бы отдалённо напоминающего реализацию пространственного кодирования: Гадалки, нейросети, квантовые компьютеры, вакуумные регуляторы водяных труб, или просто философские бредни. Всё, что угодно, только не векторные матрицы, с собственной системой исчисления и исполняемым кодом. Но, я не собираюсь мириться с этим. Я понял, что сначала необходимо разогреть почву в данном аспекте. Доходчиво сформулировать вопрос и вывести его в массы. В одиночку, можно разрешить любые теоретические проблемы, но в реализации практических задач, в одиночку далеко не уедешь.


    И так, приступим. Я не являюсь профессором престижных университетов (кем может быть являются здешние авторы), однако бакалавра по специальности машиностроения я получил, так что не стоит держать меня за полного дурака.


    Давайте сформулируем задачу.


    Читать дальше →
  • Интересные факты о Java

    Привет, Хабр!

    Наверное, все слышали о таком языке программирования, как Java. Но все ли из вас знают как, почему и когда он был создан?

    В связи с этим предлагаю вашему вниманию перевод статьи "Interesting Facts About Java" автора MeghaKakkar, в которой представлены интересные факты об одном из популярных языков программирования нашего времени.

    Читать дальше →
  • 10 вопросов с Шупин Мао, техническим лидером Well-being

    Привет, Хабр!


    Предлагаю вашему вниманию перевод статьи "10 Questions with Shupin Mao, Well-being tech lead" автора shelly.

    Шупин Мао — старший инженер-программист в Facebook. За последние четыре года работы в компании Шупин помогла нескольким командам и приобрела опыт в Instagram и Facebook, в том числе в Instagram Well-being . Здесь она делится тем, что вдохновило ее на разработку, любимые моменты, извлеченные уроки и многое другое.

    image

    Читать дальше →
  • Преимущества и опасности использования библиотек и фреймворков Java с открытым исходным кодом

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

    Читать дальше →
  • Пример создания утилиты для Unigraphics NX с помощью библиотеки NXOpen на языке Java

    Решил рассказать, кому интересно, как можно создавать любые утилиты для Unigraphics NX с помощью библиотеки NXOpen и языка программирования Java.В качестве примера моя утилита будет строить 2d сетку на все свободных телах и гранях(это может быть полезно для задачи оптимизации).

    Необходимую информацию по библиотеке NXOpen можно найти на официальном сайте.

    В корневой папки NX лежат необходимые нам библиотеки по умолчанию, а так же примеры:

    • C:\Program Files\Siemens\NX 12.0\NXBIN с расширением jar
    • C:\Program Files\Siemens\NX 12.0\UGOPEN с расширением jar
    • C:\Program Files\Siemens\NX 12.0\UGOPEN\SampleNXOpenApplications\Java.

    Для упрощения написания кода можно за основу использовать журнал записи своих действий в текстовый файл.По умолчанию Unigraphics NX записывает на языке Visual Basic, но в настройках можно поменять на Java или на любой другой из списка доступных:



    Вот пример записи журнала в текстовый файл.
    Читать дальше →
  • Обзор сервисов геомаркетинга

    По роду деятельности изучал я рынок геомаркетинга. И до этого изучения мне казалось, что ничего нового в этой сфере не придумано, так как я знал что крупные сетевые компании (например Кофе Лайк, Столовая 1 и др) используют для подсчета проходимости места (пешеходного трафика) видеозапись пешеходной дорожки возле входа и последующий ручной подсчет человеков в ускоренном видео.

    Когда я пробовал обращаться к поисковикам с запросами «Как выбрать место для бизнеса», «Как посчитать пешеходный трафик возле магазина» я натыкался на статьи и видео о том как выбрать помещение по косвенным признакам и как считать трафик по головам.
    Читать дальше →
  • Конспект по «Машинному обучению». Теория вероятностей. Формула Байеса

    Теория вероятностей. Формула Байеса


    Пусть проводится некоторый эксперимент.
    $inline$w_1, ..., w_N$inline$ — элементарные события (элементарные исходы эксперимента).
    $inline$\Omega = \{w_i\}_{i =1}^N$inline$ — пространство элементарных событий (совокупность всевозможных элементарных исходов эксперимента).
    Читать дальше →
  • Как сделать графику на Unity лучше. Конкретные советы

    Hello, username! Меня зовут Константин Ермолаев и я профессионально занимаюсь 3д графикой и разработкой игр на Unity. Чаще всего по поводу моих игр слышу вопрос: «Это что, Unity?» Да, это Unity. И ничего магического в этом нет, всем кому интересна данная тема — под кат.


    Читать дальше →
  • USB TEMPer настройка датчика на Ubuntu 18.04 lts и добавление к мониторингу Zabbix

    Начало



    Все началось с того что в серверной неожиданно накрылась система кондиционирования и соответственно на серверах накрылись пара куллеров. После это было принято решение настроить мониторинг температур на серверах и серверной в общем.

    Читать дальше →
  • И снова Mikrotik, Telegram и боты

    Здравствуйте. Статья не полностью претендует на право быть оригинальной — скорее, это усовершенствование скрипта, описанного в статье dimonw Удалённое включение скриптов Mikrotik из Telegram.
    В общем, сделал себе бота по примеру в вышеуказанной статье. Но меня жутко напрягал тот момент, что постоянно fetch'ем скачивается файл на драгоценную флешку, и потом парсится.
    Поэтому, немного покурил Wiki/Scripting, и у меня получилось обойтись без файла.
    Читать дальше →
  • Что такое блокчейн и критерии их сравнения

    Регулярно сталкиваясь в процессе обсуждения технологии блокчейна с различным пониманием того что является технологией блокчейна, автор пришел к мнению что в среде IT специалистов нет консенсуса в понимании что же такое блокчейн и почему его появление вызвало такой резонанс в обществе. Часть специалистов использует отсутствие единого мнения что есть «блокчейн» для манипуляции заказчиком или пользователями с целью достижения сиюминутных, тактических целей, создавая еще большую энтропию и хаос в процессе становления данной технологии.
    Многие IT-специалисты, с которыми приходилось сталкиваться жаловались на отсутствие критериев сравнения и оценки различных блокчейнов. Данная статья является попыткой определить, что же является технологией блокчейна и дать универсальные критерии сравнения технологии блокчейна. Что бы понять, что такое блокчейн нужно понять, что похоже на блокчейн, но блокчейном не является.

    Читать дальше →
  • ОЛП МАИ 2019-2020, 1-ый курс. Соревнование 5. Задача G: геометрическая прогрессия

    Общая идея


    Для каждого теста (набора из $inline$b_1, q, n$inline$ переменных) необходимо найти сумму первых $inline$n$inline$ членов соответствующей геометрической прогрессии по модулю 1000000007. Напоминаю формулу первых $inline$n$inline$ членов геометрической прогрессии: $inline$S_n = \frac{b_1(q^n — 1)}{(q — 1)}$inline$. Так как числа $inline$q$inline$ и $inline$n$inline$ могут быть очень большими, при вычислении степени мы должны брать модуль (на каждом этапе вычисления, а не только в конце), а также из-за большого количества тестов нам не подойдёт линейная сложность вычисления степени — будем использовать бинарное (быстрое), которое справляется за $inline$log_2n$inline$ операций. Далее умножаем на $inline$b_1$inline$.

    Если сложение, вычитание, умножение под модулем равносильны:$$display$$a \pm b = r_a + r_b \ (mod\ p) \\ ab = r_ar_b \ (mod\ p)\\$$display$$ — эти формулы легко доказать исходя из определения модуля и разложения числа на целую часть и остаток, то с делением так не проходит и для того, чтобы поделить число на число под модулем нам нужен обратный элемент, который вычисляется (но лишь если модуль есть простое число; к нашему случаю походит) с помощью расширенного алгоритма Евклида (почему так, смотрите лекцию — ссылка в конце поста). Таким образом находим обратный элемент для $inline$q-1$inline$ по модулю 1000000007 и умножаем на число, получившееся на предыдущих шагах, на забывая взять модуль. Ответ получен.

    Теперь приступим к коду; если что-то в тексте общей идеи было непонятно, надеюсь, код, который всегда однозначен, разъяснит лучше.

    Читать дальше →
  • Голосовое управление для телевизора Sharp Aquos

    В этом посте описывается простой способ организовать голосовое переключение каналов не очень нового телевизора с минимальным количеством программирования на базе Google Home.
    Читать дальше →
  • Запускаем программы Windows на удаленном Linux сервере


    Была у меня как то проблема, везде используется linux но вот одна программа
    работала только на Windows а именно Litemanager NoIP сервер, держать ради нее отдельную Windows машину не хотелось, да и с учетом того что от программы нужно было только чтобы она "проксировала трафик" и позволяла подключится удаленно было решено перенести это на маленькую ubuntu машину где нибудь в облаке

    Читать дальше →
  • Как запустить Cisco ASDM на linux и не сойти с ума

    Эта статья-заметка родилась от безысходных попыток запустить “Cisco asdm”, на Ubuntu 16, 18, 19, в 2019г. В интернете довольно много статей на эту тему, но все они, как правило, не актуальные.

    Ну что же, начнём.
    Читать дальше →
  • Как легко создать графический интерфейс Java с помощью WindowBuilder в Eclipse

    WindowBuilder — это мощный и простой в использовании графический дизайнер Java, в котором можно работать как с кодом, так и с интерфейсом напрямую.
    WindowBuilder состоит из SWT конструктор и Swing и позволяет очень легко создавать приложения Java GUI, не тратя много времени на написание кода. Используя визуальный конструктор WYSIWYG и инструменты компоновки для создания простых форм, код Java будет создаваться для вас сам. Можно легко добавлять элементы управления, перетаскивая их на форму, добавлять обработчики событий к элементам управления, изменять различные свойства элементов с помощью редактора свойств и многое другое.
    Читать дальше →