Speaking as the 80's generation, we're getting old. more than two cups of coffee causes hand tremors on our semi-deprecated body and that's makes you useless if you're coding for live. Found few solutions to fix that issue and they're definitely deserves a blog entry.
Before the touch screen and optical pointers, each computer was controlling by Mechanical mice which is driven by a giant ball at the bottom and connected to serial or PS/2 port. You have to clean them at every month but they were completely stable. I used these things until 2006, then switched to optical mouse and torture has began.
You don't have to do a periodic maintenance on optical mouse but they're only works on super clean surfaces with no reflectance. Even must be darker as possible. I was using my black shirt as mousepad while using them.
Few years ago switched to three-monitor setup and purchased A4Tech XL-750BH laser mouse due to necessity of high resolution. Everything was okay on win7 and mouse cursor get sensitive again after upgraded to win8.1
Somehow survived to today by messing with a shaking cursor and finally dedicated my last three days to fix it. My first idea was implementation of a kernel driver with kalman filter which is widely using in smartphones and quadcopters. Then found few similar solutions after a quick web search.
It's almost 10 year old software, specifically designed for elderly users. tried it before but wasn't effective as i assumed. Does the job but you have to forfeit from mouse acceleration feature of operating system. First version is still freeware, 2016 release is more promising and it's asking for $97 for an updated version. download from here
Povohat's mouse driver (Win32)
This guy probably a gamer, there is a lot of reference in gaming forums and reddit. He's developed him own usb filter driver for FPS games and it's also works system wide. There is no actual repositioning filter implemented but it allows to customize in-depth sensitivity and acceleration settings. Works like a charm since one week.
Old site: http://accel.drok-radnik.com/old.html
Smooth Cursor (Mac)
Seems provides same functionality with povohat's driver, designed for mac users. https://smoothcursor.com/
Tips for higher mouse performance
+ Use an usb hub with external power supply for a seamless mouse movement
+ Find a mousepad which made from fabric material.
+ Purchase a laser mouse if you can afford them, it worths to the investment.
+ Tie the extra mouse cable and shield this portion with aluminium foil. That's prevents the movement interruptions on EMI spikes.
Shared few abandonware apps from various developers. Abandonware means their creators are long dead, safe to redistribute. most of them almost 10 years old but still works if you turn off UAC.
Check out at here
To be honest, we been lazy to cleanup house at whole summer. Finally that's resulted with a pest invasion which causes suddenly appeared sores and extreme itch.
My wife called various pest control services first and requested a quote. Approx number for a full-fumigation around $200 and requires minimum three days of temporary relocation which is impossible while i'm a part of a major software project, also in my opinion, usage of heavy chemicals can affect human health more than just few parasites.
Problem was we're didn't noticed any insect or bug, just connected the symptoms to moving dustballs around the house. So i did a quick research and reduced the window of the possibilities. Itch already indicates a mite infestation, size and pattern of sores also fits to a bedbug presence. Both are tough enemies, bedbugs can live up to 300 days and mites are microbial creatures which capable to quickly reproduce themselves.
Few years ago was watched a documentary which mentioning about use of robots in medical industry. A company called xenex developed a remotely operated robot that uses ultraviolet pulses to kill germs. Given a night to research about industrial ultraviolet light sources and decided to use them in our situation.
UV lights separated into three categories by their wavelength, UV-A and UV-B already coming from sun. Mostly harmless, causes sunburn when we're stay too much at beach. UV-C is blocking by ozone layer of earth's atmosphere but it can artificially created by passing electricity from mercury vapor. It's extremely dangerous, can cause skin cancer and permanently damage to the eyes.
UV-C lamps are commercially available as replacement part of sterilization ovens used by dentists, barber shops etc. I found one at a local online store from $15, total cost was $25 to me including housing and electronic ballast.
I received the package in one day, temporarily attached it to desk lamp and turned on at the bedroom. also was monitoring the room by using previously mentioned air quality sensor after 30 minutes of process, noticed increase on MQ9 (methane & co2) levels. also there was a slight smell in room like dead rat. picked the one of laying around black dots and analyzed on webcam, wtf that's an insect that living the it's last moments. the bed was full of them, also few mosquito species was sitting on ground.
Was having doubts but completely convinced that it works after the seen corpses by my eye and proceeded to next room. After the disinfection process, cleaned the floors, washed the clothes at high temperature and finally washed ourselves with Permethrin shampoo. repeated the same process at next day.
There is no itch since two weeks and sores are healing day by day. Probably my immune system was dealing with something, feeling more strong in these days. Also happy to saved $160 by handling infestation by ourselves.
raw footage of catched pest is available in here it seems flea to me but doesn't matter, they're all dead anyway.
I realized something in this year, marketing is more precious than development. so kinda quit the freelancing and tried to reach people in numerous ways. look at the homeless people, they're living in crap but got access to people, not selling anything but even they can make money just by asking. Engineering & development can be done in shallow waters, when time comes to marketing you have to dive inside oceans with full of sharks. And you have to make sure you got proper weapons before sailing.
Few weeks ago, spared my dentist money and used them to advertise one of our ongoing products. first address was twitter. Designed a banner, launched a campaign and started to getting results in next couple hours. three days later their dashboard shows over 15k impressions and 1k interactions. Thing is i didn't see these interactions in server side, even a single click!
Stopped the campaign to prevent any more damage and switched to facebook. was thinking at least they're strictly disallows the bot accounts by verifying people with phone number & national identity etc. This time got 500~ impressions and around 100 clicks but all of them bounced back without any sign up's.
I think problem was fb's audience management. Around 30 people "liked" the advertising post, i checked each of them, their business titles was completely unrelated with mine.
a similar story happened at adwords, i stopped all campaigns at the total $420~ damage and decided to go oldschool. like 2000's develop an application, send bulk mails, post entries to forums.
I wasn't know where i start, just typed what i want to search engine. then written few lines of php snippet by using previously posted spider class to automate it but google started to block my requests by asking captcha created a solution to solve captcha's myself by taking 10 seconds of break on script execution but still results stalled on 150~ entries.
Then realized google says "Wohoho i got billions of results" but only returning 50 pages of them. try it right now, search something and go straight to latest result page. it's mostly same in all search engines.
after 2 hours, collected 7500k entries just by solving captchas on each 15 minutes, removed duplicates by using MSP utility and got link of 6900 unique digital agency websites in total. another script which i created years ago, connected to all links one by one and collected names and phone numbers from these websites. If interested, compiled binary of the project available on end of the entry.
E-mail marketing is kinda dead with new global spam policies, waste of time. Calling each of them manually and sparing few minutes can give more reliable results.
At least hearing few "no, not interested, be gone, fck you" from various voices sharpens the people's own ego.
Mass String Processor
After the spending months to commercial projects, taken few days of break and created a new sensor node for home network. it's supposed to be a weekend project but i have to put rest of the new week to make it completely functional.
One month ago i mentioned about purchased 2x pair of raspberry pi from an used goods store. still using first one as headless torrent client and repurposed second one as a sensor station at these days. sounds like overkill for such a simple task but reliability is the key while developing a security gadget. consistent readers possibly know, i was created it's arduino+ethernet version at past year but didn't mention about ruined nights which caused by false alarms.
There is not too much thing to highlight, it's exactly same setup which mentioned in this entry got raspi with wifi dongle in this setup instead arduino. implemented mq5 gas sensor to both of them as an extra. my though was reading analog inputs by using MCP3008 adc converter but that caused a file descriptor leak which is very common in popular linux distributions. so i got laying around multiwii flight controller from a crashed quadcopter, i attached sensors to it and fetched data by using serial port. that took my 30 minutes instead spending hours maybe days to research what caused the memory leak in previous attempt.
It's powered by node.js like other pair of pi and uses same libraries which i developed for torrent client project. raspberry's primary functionality is video transmission in that case. it's own video capturing tool raspivid can record high quality videos by utilizing the onboard h264 hardware. that's why ffmpeg and similar solutions stuck in 320x240.
After more research found a guy's blog who forked the raspivid's source and implemented a live streaming feature which is exactly what i need. installed it for future use but recording is okay for now, i created a quick script to record 24hrs of video separated by hours and delete them everyday. another script creates a web daemon in a spesific port and captures photos and handles basic commands such as shutdown & restart etc.
third script fetches data from arduino (multiwii) and pushes them to home automation server. sources are available in rest of entry.
I planted it to living room which sees the balcony directly, now it's non-stop recording hd video, measuring temperature, light level and lpg & co2 gas levels and detects the human movements. as mentioned in first lines on entry, previous arduino based sensor was waking me up with false alarms. now using this device's data as cross-validator for incoming data. for example, if gas levels higher than 500 and other device's level is close to 500, my automation software (judith) launching the gas alarm.
Same method applies to pir sensor, if you need to go living room, you have to pass from hallway first and hallway also got a pir sensor, machine records this activity and does nothing if movement detected in this order. if suddenly an activity detected in living room, that means someone break in from window or balcony, that's a reason to launch a fully audible alarm. as mentioned before, nobody going to break into my house and steal something but increasing the security perimeter increases the safety feeling and you don't have to worry tick or noises on middle of the night. commercial pir sensor sets provides same functionality but you have to arm them before goto bed, disarm before wake up for pee, arm again before sleep. almost no logic in there and completely depends on human commands.
by the way temperature was approx 35 C while i recording the video, noticed the pir sensors cannot detect humans with higher temperatures, i was literally sweating and both of sensors didn't see me. validated that by approching to building's automated hallway lights. same condition applies while wearing raincoat. so we can say pir sensors not too reliable in that case. alternative hardware might be a doppler radar (the sensors which installed on automated glass doors on the public malls) but they're expensive and view distance is very limited.
Already got all components in my trash dump, so cost is almost free to me. component list follows:
- Raspberry pi model B with official 8mp camera
- 1x mq5 lpg gas sensor
- DS18B20 temperature sensor
- 1x light dependent resistor
- multiwii flight controller as equivalent to arduino nano
- 12v to 5v/1.2amps step-down converter (was sony phone's official car charger)
- audio amplifier which salvaged from broken beats headphones
- 1x speaker which salvaged from a dead notebook
- TP-Link TL-WN722n wifi dongle
- 1x voltage divider module
plus spent exact 7 days to development but that's absolutely worth it. if interested, complete project sources available in this github repository.
watch on youtube if having troubles with flash
Raspberry pi still an expensive toy to me with it's $35 price. few years ago it was advertised as "credit card sized $5 computer" but we didn't see that number at anywhere.
Few weeks ago i found an used wholesale store at a local market and purchased 2x units of camera+sdcard+board bundle for an acceptable price. my thought was installing it as a wireless security camera but that's didn't work due to it's low hardware specs. so i decided to build a torrent box with it.
Low latency HD stream possible with ffmpeg binaries but you can't go higher than 512x512@15 fps, my current analog cameras already capable to deliver 512x480@60fps with 5ghz wireless bridge. problem is related with it's architecture, specs says 700mhz but actually it's identical to an 266mhz pentium II processor when we count the cpu cycles. so we can say it's an expensive arduino with usb host and a bit extra processing power. ethernet port does not count because ethernet chip is also an usb device which attached to board's internal hub.
Anyway, sometimes i was noticing the free wifi of a nearby public mall. installed transmission torrent client and configured my portable hdd as file storage to take advantage of it. already got a high gain wifi adapter to get signal from 500 mt distance, it's driver installation was painful but i figured out at last. also there is another torrent client available for pi called deluge but transmission is more stable and also supports the remote sessions from other platforms instead single web dashboard.
this time torrent daemon starting before hdd automount then terminating with error. I decided to follow the way i know and installed node.js and develop a script which can handle order of system commands. sending system vitals to desktop pc is a plus.
Currently there is only node's early beta binaries available on web, you have to build it from sources if you're really need it. no joke, compilation took exact 3 days. finally installed node 4.x and created a library for measuring board vitals. then created another script to pump data to my automation server.
Final boss battle
My active node version was 5.x at the desktop and wasn't aware about memory leaks of older releases. after one week of headless execution, app's cycle latency increased day by day and finally crashed due to memory hog. so i revised my code and installed nightly 6.x version of node. compilation took another 3 days and finally we're won the game.
- Raspberry pi and sdhc card
- High gain wifi dongle
- Portable USB hdd
- Li-ion backup battery for cellphone
We're spent 1 week and $15 per unit but still result is satisfying if you don't exceed 2-3 active torrents. In my opinion spend few bucks more and purchase a more bit professional board such as beaglebone to save time or buy expendable asian variants which you can find billions of them by prefixing "pi" with other fruit names while search.
sources available on github: