There are many discussions like this on the internet, but I am confident I am now examining a very specific problem of Firefox, with a very specific AJAX routine.
Symptoms: there are other AJAX requests in the background, and there is a request initiated by the user, which requires confirmation (your average “are you sure you want to delete?” dialogue). The AJAX request to delete the entry never fired. Every AJAX request was in the default, asynchronous mode.
No matter what, I couldn’t for the life of me make that request work, everything else did. Only the “delete” functions didn’t (in Firefox, as Chome and Internet Explorer worked no problem).
I used console.log messages as crumbs along the way, to follow the flow, and it stopped right at onReadyStateChange, as anything after it wouldn’t show zip in the console. Which meant the onReadyStateChange wasn’t being triggered.
I even thought it was something off with the function name (maybe the delete inside it borked something, silly me thought).
I also tried switching to synchronous mode the incriminated requests… and welp, they worked! For a short while I thought about leaving them be synchronous, but I didn’t want those pesky warnings in the console about synchronous requests ruining the user esperience.
Only by chance an epifany happened, and the obvious came forth (I KNEW there had to be a reasonable explanation which I had yet to grasp).
Well, my configuration went like this (it’s an internal web application we are talking about): an AJAX request triggered each second to a PHP to check the user credentials and inactivity time, and an AJAX request by user intervention was launched to delete an entry… after a confirm dialogue requested, well, user confirmation for the delete (duh).
Everything worked flawlessly before, the problem started appearing after I added the background AJAX request each second (which I didn’t want to get rid of anyway).
As you may or may not know, the window.confirm dialogue is a synchronous structure, which means the page execution is frozen until the user presses either OK or CANCEL in the dialogue (same thing happens with the window.alert function).
So, imagine the background AJAX request being queued behind the confirm dialogue, and obviously taking precedence over anything else that had to come after, and the new AJAX request being formed right after the press on the OK button of the confirm dialogue, to delete the entry that the confirmation was for.
Well, these two requests were launched at the very same time, in a manner that Firefox (not the other browsers though) probably overlapped the onReadyStateChange and never triggered the one for the secondary AJAX request.
In fact getting rid of the confirmation dialogue solved the problem.
Either that, or I will have to come up with an asynchronous method of requesting user confirmation.
and then, in the address book editing form that appears in Android you just tap in the middle of the joined words and press space.
It will be MUCH faster than moving around in the fields the misplaced name components.
There is NO WAY to actually have a vcard data correctly formatted to be correctly rendered by a QR Code scanner and correctly passed to the address book.
If you used a correctly formatted vCard file to directly import it in Android address book, it will work (for example, first export a vCard file for a contact, and then reverse engineer it… but to actually copy the VCF to the phone for each contact and manually importing it would be time consuming and bothersome); but if you use a generated QR code from the vCard code, each and every QR scanner out there will pass the full name data to the address book as a single unformatted string, IGNORING the name components of the N field, leaving the address book parser to decypher which is which.
So, depending on how you go about hacking your way into the vCard format, you might get
John (first name) Philip Johns (middle name) Phillips (last name)
or any other weird combination, BUT the one you were looking for.
Believe me, I tried, and chances are, if you ended up here, you did, too.
In my case I spend on it much more time than I care to admit. More than I needed to actually code from scratch the PHP to generate the relevant QR code into my management software.
So just embrace this workaround, but if you find a solution, please Please PLEASE share in the comments.
Pretty much a self reference post, based on Slicer v. 4.6.
Open the relevant DICOM set.
Open the Crop Volume module
In “Input ROI” dropdown select Create new AnnotationROI
In the slices view adjust the selection so only the interesting area is covered
Click on the Crop! button and see how the slices are cropped to the set area
Open the Editor module (you can select the GenericAnatomyColors palette)
Click on the coloured rectangle on the Label: row, and choose your relevant structure (if you’re here you probably want bone)
Click on ThresholdEffect button (third from last from the effect buttons)
In the Threshold Range input area that just appeared set a starting value of 300 HU (Hounsfield Units) which usually is a good starting density value for bone
You will see the relevant areas blinking in the slices images, and you can adjust the density range by using the small arrow buttons on the side of the lower value of the range
When satisfied, click Apply
Click on the MakeModelEffect button, first from last, and right after click Apply
After a while (depengin on how large is the ROI and how complex is your structure) the rendered model will appear in the 3D view
Click on the SAVE button in the top tools bar, and deselect every entity except the last one (usually named bone if you followed this tutorial), and then choose the STL format in the dropdown on the side (VTK format is selected by default), plus change to your needs the saving folder, and press the Save button
You may also get ‘linux_raid_member‘ instead of ‘isw_raid_member‘, usually it’s the same.
So you probably have run through other tutorials telling you not to mount directly but to mount the raid instead…. but you have no raid!
Maybe though, you HAD a raid back in time, and you removed it leaving the disks as separate storage, and in that case there would be “rogue” raid metadata on the disk that makes linux (mint in my case) think it is a raid, and get confused.
Thanks to Chris_F I finally solved it, you need to use dmraid (install it if it’s not on the system, via apt-get) to remove those orphan tags:
sudo dmraid -rE /dev/sdb
In my case, this instantly showed the disk in file manager.
Connect the SQ8 camera to a USB charger. It cannot be a PC, otherwise it will work as an external drive and show you the contents of the SD, it just needs to receive power.
As soon as you connect the camera you will notice the rear led turning on and cycling through different colors, after which it will turn off: at that moment, the recording will have started.
I still haven’t tested the cyclic recording functionality, but this is supposed to record max 5 minutes chunks of video until the memory runs out, after which it deletes the oldest recordings.
BTW, the correct orientation of the camera is so that the flat side opposite to the buttons side is down, position it elsewhere will give you a rotated video.
On a side note, this camera has a really bad space usage; I put a 32gb card in it, and the file size of the 5 minutes video chunks is 400MB! There is virtually no compression on the video, and the maximum recording time before the oldest files are deleted is less than 6 hours.
90mbs per minute is a really bad stat, in comparison a naruto episode should be 2.4GB if it had the same time/size ratio, it is instead one tenth of that…
I replaced my previous 32GB microsd in my note 3, with a transcend 64GB, and the system asked me if I wanted to use it as extended internal storage. Why not, I never use the sd as swappable storage anyway, and I liked the encrypted storage.
Go ahead an hour, I notice the system filled up 30GB more than the starting space, just stealing it from the sd card for no reason. Also, after rebooting I get a message saying “system has stopped responding”, and swiftkey cannot load languages anymore, disabling altogether the swype function.
I fiddle for good 15 minutes into the settings, finding nothing apparent, until I went into:
Settings > USB and Storage > Internal storage > Options > Migrate
which was supposed to migrate the data from the sd back into the builtin storage.
I started the process and went to sleep (it was late) hoping to find it solved in the morning… too bad! Couldn’t do that, the morning after the internal storage was 100% filled, an error message appeared, and the 60GB sd was still hald full.
The system went from the original 16GB used in the internal storage, to a total of 30GB filled internal storage+roughly 30GB inside the external, which is 60GB used storage… for what? God knows! In the USB&Storage panel of the settings, the details of the used space still amounted to the real space needed, and nothing was there to account for the additional space taken that was reported in the summarized stats…
Hence, I tried copying all the contents from the sd/internal storage to the PC, with the intention of resetting everything afterwards and restoring the data, but using the USB communication resulted in a severely slow transfer speed (we’re talking about a 100Kb file each few seconds, and there were 12GB of data to move).
I tried several times to check and see if I could speed things up, to no avail, so I used the remaining free space on the microsd (I had that, if you don’t you may want to use an OTG cable and a pendrive) to create a ZIP archive (with estrongs) of all the contents of the internal storage, and as a single file like that I could then copy it to my PC at a decent speed.
Once that was done, I wend in settings > USB and storage > SD card > options > format as portable, agreeing to lose all data (I had backed it up anyway), then into recovery I wiped the internal storage, then rebooted to have the changes take effect, and from this state (internal storage almost empty, microsd seen as normal portable storage) I copied over the backed up contents from the previous configuration via normal USB transfer (some files and folders couldn’t be copied, but it was nothing essential).
Up until now eveything looks to have gone back to normal.
I bought a Chauvet Hurricane 1301 for its massive smoke output: my aim is to build a low-cost but extremely effective security and anti theft smoke shield and fog bandit clone, by using nothing more than your average disco fog machine… well, at least a renowned powerful fog machine at that. The specs about the consumption are pretty much the same: 1200W nominal power, and about 50W average when turned on to keep the temperature of the liquid constant. What this system lacks, is the “stamina” that professional systems have, since it won’t fill a room with only the first burst of smoke, but it’s not that much delay between the first puff and the second, and you still get the surprise effect. Ideal for not-so-big rooms.
But you may want to use it to spray smoke when certain events happen, like music timed puffs, or pressure plates, you name it.
There is no immediate way to do it: the wired remote doesn’t provide simple short contacts: none of the pins get shorted when you press the “manual” button there, so it must be a powered remote that sends out powered signals.
Solution: catch the short contact given by the manual switch on the machine’s rear panel.
So what about my homemade smoke shield clone system? I just need to find an alarm sensor to wire up to an arduino, to which will be also wired a relay going to the Hurricane 1301.
This is a report of my own experience with trying to obtain 3d-printer-worth filament out of plastic PET bottles.
I was enthusiastic of this video of the russian survivalist The Lawyer Egorov (who by the way has a supercool channel on youtube for you hardcore people):
who built a contraption to get a very strong string (pun not intended) out of scrap plastic bottles. This, I thought, would have been great fodder for my next to be PET filament machine.
Fast forward to yesterday night/this morning. I had been sourcing parts off the local shops and eletronics from foreign sellers on ebay, and in the spare time finally built this revision of my machine:
After I noticed the PET inside the terminal part of the tube was melting, I started the motor, and this is what happened… not much as the pressure inside the tube was low, there wasn’t much material in the column, and since cutting BY HAND the PET string I had was superboring I didn’t really make the small flakes needed for them to be easily transported.
I increased the quantity of PET flakes in the intake, and pressed them down with a screwdriver handle, so the volume of melted mass on the front increased some.
At this point I decided to place the cap with the nozzle drilled in (1.5mm diameter) and in fact some goo started flowing out and quite rapidly solidifying; the quality of this solidified goo appeared “better”, as the surface was very shiny, but it soon stopped flowing out, and when later I unscrewed the cap I realized it was clogged, as a lot of melted material was idling back there and quickly blobbed outside.
So this is the scenario that presented itself when I uncapped the tube:
At this point I decided my adventure with PET had come to an end. Or rather, my experiments did, since I decided since the night before that I wouldn’t be making PET filament for my 3D printer out of plastic bottles: the processing required to this objective it WAY too much. You need to find a way to satisfactorily grind the plastic, after obviously you cleaned the bottles, and after that you should still dry the flakes at 80°+ degrees to avoid water buildup inside which would drasticaly decrease the final product quality. I would totally prefer spending 20€ per roll of cheap black PLA over this.
You also need to take into account the real life scenario, that is, PRINTING with said filament, because that’s the reason you’re doing it, apart from the fact that you’re just a hopeless nerd like me. A printer’s nozzle is SMALL, and nasty things, even if tiny, can clog it; if said nasty things are inside the filament, then no filament filter is going to hep you; they WILL pile up in the nozzle and sooner than later you’ll have to disassemble the nozzle assembly and do nasty things to take it out, like flaming the nozzle to melt the stuff inside and scooping it out with a piece of filament. Don’t trust the cold pull, it didn’t help me when I needed it. Flaming the nozzle instead, it did help me.
Finally, you have to get a decent diameter filament, AND getting that diameter the most constant possible, because if on one side you can change the extrusion rate in your slicing program to take into account the real filament size, on the other there’s nothing you can do to balance a poorly sized filament, and either you will get extruder skipping steps because of a too big filament, or an extruder skipping steps because the filament is too tiny.
In my brightest dreams I supposed I would be producing crystal clear filament out of plastic bottles, heck maybe even multicolored transparent filament since all bottles are slightly coloured.
Final tecnical considerations
By Ian’s own words, with which I agree, the downfall of this method is the feed system: PET can be a great material, yet a DIY extruder like this one does not allow for much leeway, you need to keep the material flowing forward, and for this you need a granulate which can progress easily in the pipe, and at the same time you also need a constant supply in the back.
So, first off, you need to have a ready made supply of flakes, and obviously cannot just improvise by cutting little piece by little piece on the fly like I did (I was desperate to try, I admit it), and even better you need proper sized pellets, not too large but sufficiently thick! Since PET flakes are flat, they easily adjust in the space between the auger bit and the pipe, and they do not progress further very well; also, if you use a string of PET, it will just roll around the auger in one place (where you feed it through) and not progress forward, but instead slowing down and loading heavily the motor by creating a thick wrap on the drill.
You MIGHT melt bottles whole as they are (how?), and use the obtained solidified blob to create smaller pellets, maybe by hammering the glass-like goo. Still, it will take time, and it’s a messy procedure. Unless you can devise a method to do it without much human intervention, it’s going to cost resources anyway, and you may reconsider the whole thing, and maybe just buy pre-made filament, or a commercial extruder plus finding a local supplier of ABS pellets (not your average ebay seller who asks outrageous sums for 3d printing pellets, but a local plastics industry which works with pellets to make for example injection molded items, where you would pay as low as 2€ per kg of granulate).