{{ site.title }}
{% comment %} The code below dynamically generates a sidebar nav of pages with `layout: page` in the front-matter. See readme for usage. {% endcomment %}
About
Projects
Blog
Misc.
{% comment %}
Currently v{{ site.version }}
{% endcomment %}
© {{ site.time | date: '%Y' }}


Im used to the arduino board programming scheme, I started making the emon 3.4 in order to evolve a little bit, im trying for the first time to program microcontrollers on pcb boards via programming pins ISP, For starters im trying to upload the bootloader, i know the ftdi driver is installed in my machine, the cable has been verified to work
However I have no idea of how to actually write the program and upload it to the microcontroller, I have been messing with the arduino IDE all day my FTDI cable its at COM10, however no programmer available at the arduino IDE seems to work with this cable, i have been looking and trying all day with no luck,
How can i write the code in c and upload it to the microcontroller using the FTDI cable? do i need a specific software to do this? Any special configuration or hack? what am I missing? , also, i understand that the UART pins are for the 328p while the ISP are for the RF module is this right? if yes what software can i use to successfully program both?
Re: Getting started with emon 3.4 programming (uC and RF module)
For starters im trying to upload the bootloader,
Did you build this thing from parts yourself, or buy it pre-built from the shop? If from the shop, I'm pretty sure it would have been shipped with an appropriate bootloader, so you shouldn't need to do that. But if you do, you need to use the ICSP header for that, which means you need an ISP programmer. The AVRISP MkII is quite affordable, or alternatively you can build your own ISP programmer out of a spare Arduino.
How can i write the code in c and upload it to the microcontroller using the FTDI cable?
Assuming the bootloader is installed, and you're now trying to upload a system image (aka "sketch") you should just be able to point your Arduino IDE at COM10 and click on 'Upload'... at least that's how I assume it works on Windows.. I use unix myself.
Re: Getting started with emon 3.4 programming (uC and RF module)
i see. i built it on my own using the bom posted in git, so my atmega is in blank, and so is my RF module, the only question i have left now is how cna i program the RF module and the onboard atmega from the same ISP header is it even possible?
or do i have to desolder one in order to program the other?
Re: Getting started with emon 3.4 programming (uC and RF module)
The SPI bus (mosi,miso and sclk) are used during normal running to communicate between the rfm module and avr, the rfm module is not used to "program" the rfm module per se as it is configured using commands from the AVR's sketch. The same bus is used to initially program the AVR via the 6pin (2x3) ISP header. Once the optiboot bootloader is installed (via the ISP) then future sketch uploads can be done via the serial port pins of the AVR using the 6pin (1x6) FTDI header.
The slave select pin is used by the AVR to select the RFM module in normal running and when installing the bootloader or any AVR programming via the ISP the attached programmer will use the AVR's reset pin.
The 6 conns at the ISP header should be vcc, gnd, mosi, miso, sclk and reset.
To program the AVR you must have those 6 connections, have you used a SMT or a DIL AVR? can it be removed and programmed off the board?
Paul
Re: Getting started with emon 3.4 programming (uC and RF module)
I'm guessing you don't need to flash the RF module with anything. I suspect it comes from the manufacturer good to go. But I've never seen one, so if anyone else knows better please chime in.
There should be no problem flashing a bootloader into your AVR via the ICSP header with an ISP while the RF module is physically on the bus, provided you have an external pull-up resistor on the RF module's /CS signal. See also http://openenergymonitor.org/emon/node/5345.
Re: Getting started with emon 3.4 programming (uC and RF module)
Im starting to read the references posted, but my impression is that the RF has to be programmed unless im mistaken and Im supposed to program the atmega with the node ID and frequency of the Tx module in order fot the module to be read by the Reciever
Re: Getting started with emon 3.4 programming (uC and RF module)
Check pb66's reply above. The RF module is configured at runtime by the sketch running on the AVR. That's done by commands over the SPI bus (like most SPI devices). If there is any firmware running on the RF module it's burnt in by the manufacturer, so it's ready to receive runtime SPI bus configuration commands from the AVR.
Re: Getting started with emon 3.4 programming (uC and RF module)
The node ID and frequency are amongst the many variables in the AVR's sketch that you upload as a whole, you do not "program" the node id and frequency nor do you flash the rfm module.
R24 (120R) is the pullup that dBC refers to, this must be fitted to program the AVR in place with a rfm69 fitted, if the rfm module hasn't been fitted yet or it's a rfm12 you could get away without it.
The focus to get your device working has to be to program the AVR, if you get a bootloader onto the AVR you can then upload future sketches via the ftdi header, the sketches content will configure the rfm module in normal running.
Paul
Re: Getting started with emon 3.4 programming (uC and RF module)
R24 (120R) is the pullup that dBC refers to
Man, that's strong for a pull-up. Do the lights dim when you talk to that thing?
Re: Getting started with emon 3.4 programming (uC and RF module)
Doh!!! R24 is not 120R but 120K
Well spotted I wasn't thinking much about the value, just (incorrectly) copied it over from the schematic to refer to it's component number, cheers dBC.
Paul
Re: Getting started with emon 3.4 programming (uC and RF module)
I see, thanks a lot for the answers, i currently own an USBASP 2.0 i Programmer I want to believe thats more than enough to get started programing the atmega328, i will get to it in the weekend, however I am still missing what software can help me get the bootloader on the chip? i have yet to find one as easy to use as the arduino IDE, im usually running windows, however i can get a Virtual machine running windows could anyone point me to a software to get the bootloader in to the microcontroler (windows preferred )?
New questions arise, why have both ISP and FTDI pins and not only the ISP? im guessing that if you can upload the bootloader using the ISP, then you can still keep using the ISP pins to upload sketches, so then why add the FTDI pins?
I bought from the open energy monitor store the RFM69Pi 433Mhz Raspberry Pi Base Station Receiver Board, on my own from ebay i bought 4 of the RF 433 Mhz modules myself, so i have a total of 5 modulesall at 433Mhz, according to what i just read here i can use one of the 4 i bought in ebay in the emon 3.4 along the Raspberri pi RF base station and start transmitting (Im guessing the Tx acts like a wire), as long as i have the emon 3.4 microcontroller programmed and running, im also assuming that the the emon base adapter that has a microcontroller along a RF module its already programmed to interact with the Pi is this right?
Im not quite sure in understood all the pull up resistor chitchat, my current R24 its 120k i went to the other thread that dBc posted, and looks like it had a problem with the reset times. before for the resistor being to low , but im guessing it should work in the current board
Re: Getting started with emon 3.4 programming (uC and RF module)
Can you confirm if you're building an exact emnTx v3.4 or something based on that design, it is really difficult to provide answers specific to your build without details.
The Arduino IDE is able to burn bootloaders, check the tools menu. Why isp and ftdi is a theory question best answered elsewhere but given both are available the ISP is the only way to install software UNTIL a bootloader is loaded, then the ftdi can be used which is generally easier to hook up to, provides serial communication and is also safer as you cannot get to the fuses (bootloader settings)
I have no experience of the "USBASP 2.0 i Programmer" but a very quick search seems to show it has a 5v supply voltage and 10pins, this will need an adapter to 6pin icsp to connect to the emonTx and unless it can power the emontx at 3.3v NOT 5V it will damage the RFM module if fitted, You can however program a bootloader with 5v prior to fitting the rfm module. (another good reason for us to use the ftdi once the rfm is fitted)
The rfm69pi's do normally come with firmware pre-installed, you should satisfy yourself this is the case before fitting the rfm module (for the same 3v/5v reason above) the rfm69pi doesn't have a ftdi header since it is connected to the Pi directly the programing and serial port comms etc are available via the Pi's gpio
The rfm69 and 12 modules can be interchanged with software edits (so the rfm69pi will be pre-loaded with rfm69 options) if you are in anyway unsure of how permanent fitment of any of the rfm modules is, then maybe look at options to lift the boards away from the main board using short legs or similar, you will have a hard time removing any well fitted rfm module.
If you are going to fit the rfm69 to any particular device the rfm69pi is probably favorite as it's usually the base station you want to be most sensitive.
Be careful about orientaion when fitting the rfm modules as the rfm69 "appears" upside down compared to the rfm12.
As long as you have the R24 (120K) pull-up that,s fine, ignore the chitchat.
Paul
Re: Getting started with emon 3.4 programming (uC and RF module)
Another option for burning the bootloader is 'avrdude' which runs on just about every platform known to mankind. Actually, the Arduino IDE uses avrdude to program the device (at least on Linux, but I assume on other platforms too), so you can use either really.
Many AVR based designs will have the ftdi USB<->serial IC right on them, with a corresponding USB port. If you do that, then the answer to the "why have ISP and ftdi" becomes more obvious. The ISP gets used at production time to burn the fuses and bootloader (and possibly the initial system image) then you send your product out to thousands of customers. Should you want to do an in-field update of the system image all you need to do is send people a hex file and some instructions on how to run avrdudue. Just about everyone has access to a laptop and a USB cable. Assuming you've exposed your USB port there's no need for them to pull anything apart to get at any header pins.
When the ftdi IC and USB port are removed from the design (typically for cost or space saving) then in-field f/w updates are harder. They need to get at the serial pins (aka FTDI header) or the ICSP pins and have more specialised hardware (an FTDI cable, or an ISP), so the relative advantage of an FTDI header Vs an ICSP header is smaller.
Re: Getting started with emon 3.4 programming (uC and RF module)
Thanks for the theory master class dBC :-) insightful as usual.
My "Why isp and ftdi is a theory question best answered elsewhere" comment was actually an attempt to sidestep adding any confusion surrounding the USB to this thread, since the emonTx's have usb for power only. And to focus on the main reasons why Gzero should use an FTDI and aside from being easier to access (on a emontx) most ICSP's use 5v and the RFM's are not 5v tolerant so unwittingly connecting a 5v ICSP after the RFM is fitted could be fatal (for the module not the user that is!!), plus the using the FTDI also prevents accidental fuse arrangements being set by uploading the wrong hex file and gives serial output which are all more relevant to Gzero but not necessarily any of the founding reasons behind the manufacturers design.
The arduino IDE does indeed use avrdude on the windows platform, but the "i have yet to find one as easy to use as the arduino IDE," comment seemed to infer a preference for simple and familiar.
Paul
Re: Getting started with emon 3.4 programming (uC and RF module)
yes sure this is the pcb layout i sent to the fabhouse I downloaded the files from the OpenEnergy Monitor GitHub https://github.com/openenergymonitor/Hardware/tree/master/emonTxV3/emonTx_V3.4
I made my own adapter for this 10 pin programmer (4 of them are just GNDs) right before i started this thread, (i glued the pins) in order for it to become a 6 pin adapter for this board,
So in short I need to make sure that in order to not kill the RF module I would need to program the microcontroller and THEN solder the RF module, this way it wont get in the way and will be feed by the 3.3v regulator after the system is complete,
Im looking at the schematic right now and it seems that no matter if i use a 5v source, it will get regulated down by the 1702 Voltage regulator (down to 3.3v) unless im reading it wrong ,
Re: Getting started with emon 3.4 programming (uC and RF module)
Good, I was assuming a close copy of the emontx v3.4 but just wanted confirmation to be sure we were on the same page.
Yes in normal operation the 5v from the USB power supply, FTDI, 9VAC or batteries all get regulated at 3.3v BUT the "5v" pin of the ICSP is connected to the 3.3v rail directly so MUST be powered with 3.3v if the RFM is fitted, so yes program before fitting rfm OR supply 3.3v to the ICSP header not 5v (either from your programmer if it can do 3.3v) or via a voltage divider or even by not connecting the 5v to the ICSP but to the FTDI to utilize the on-board regulator. Before the rfm is fitted it doesn't matter because the AVR can handle either voltage.
This is an excerpt from the emontx v3.4 schematic
Paul
Re: Getting started with emon 3.4 programming (uC and RF module)
I think there may be some confusion about the purpose of pin 2 on the ICSP header. It's there to allow the programmer to determine what system voltage your target is running at so that it can use that same voltage when driving the SPI pins. You should power your target via its normal power supply when programming.
because the AVR can handle either voltage.
But it can't handle a Vcc of 3.3V and SPI voltages at 5V, which is why the programmer needs to determine what voltage your system is running at before it does anything else.
My description here applies to the official Atmel AVRISP MarkII: http://www.atmel.com/webdoc/avrispmkii/avrispmkii.intro_connecting.html
I've no knowledge of what other programmers do, but if they jam 5V down pin2 that sounds very dangerous (for all the reasons pb66 has highlighted above). Generally you want to program these things after the board has come back from manufacturing and by then the programmer should be making no assumptions about what voltages are safe and what other devices are sitting on those rails and busses.
Re: Getting started with emon 3.4 programming (uC and RF module)
I wasn't aware ISCP programmers didn't provide power, An accumulation of facts such as the "+5" label on pin2 of the ISCP that is shown as tied to 3.3v, the "Note: the RFM12Pi is a 3.3V only therefore it should not be powered by a 5V ISP programmer." comment in the wiki led me to believe the ICSP did (or at least could) power the board especially as I understood the bootloader is installed during manufacture.
Since I have only ever used Arduino as AVR ISP or the RPi GPIO for this purpose I've always provided the correct voltages via the ICSP header including power.
@Gzero - in light of the above it's either safer to stick with programing before fitting the rfm or you will need to check your own programmer, a short search reveals some programmers only work at 5v, some provide power and some require power!
@dBC - this seems like another very good reason to stick to using the FTDI and leaving the ICSP well alone!
To coin a phrase of Robert's "that's the nice thing about standards, there are so many to choose from!"
Paul
Re: Getting started with emon 3.4 programming (uC and RF module)
AVR910 (http://www.atmel.com/images/doc0943.pdf) permits both, but Atmel's own programmer takes the safe option of insisting the target be self-powered, and then sensing that voltage to drive the SPI pins at the correct voltage.


Whakatane
Home
About
Events
Contact
Haere Mai!
Whakatane SurfClub
About
Haere Mai!
Whakatane SurfClub
About
Haere Mai!
Whakatane SurfClub
About
Previous
Next


htbaapub.factory
Factory Design Pattern
The factory design pattern enables you to create all kinds of objects of different types with only using one factory object.  That saves an aweful lot of time when you'd normally have to expose all your constructors to your scripting virtual machine.
Examples
Please take a look at one of the examples below.
Types Summary
| TFactory |
Type that implements the Factory Design Pattern.
|
| TFunc |
Function callback.
|
Types
| Type TFactory |
| Description | Type that implements the Factory Design Pattern. |
| Methods Summary |
| Create |
Create an object from the requested key.
|
| Register |
Register a function callback.
|
| Reset |
Reset registered callbacks.
|
| Method Create:Object(key:String, data:Object = Null) |
| Description | Create an object from the requested key. |
| Method Register(key:String, func:TFunc) |
| Description | Register a function callback. |
| Method Reset() |
| Description | Reset registered callbacks. |
| Type TFunc |
| Description | Function callback. |
| Functions Summary |
| Create |
Function to create TFunc object.
|
| Function Create:TFunc(func:Object(data:Object)) |
| Description | Function to create TFunc object. |
Module Information


The world is vast, and full of wonder
Howdy visitor! Welcome to my site. It's an ever-changing creation, so be sure to come by later, and see what's evolved while you were away. This site is intended to serve as a demonstration of my expertise. Thanks for stopping by.
This site is built on Bootstrap, with a few flourishes here and there.
Even the Gods will not help a man who does not stand in the mud, and put his shoulder to the plow to further himself
Fear is the mind killer; the little death which brings total obliteration
There is nothing noble in being superior to your fellow man; true nobility is being superior to your former self


Disclaimer: This information is current as of Xcode 6.0b3, and is subject to change in future seeds. Also, I — like everyone outside Apple — am still learning Swift. Please, let me know if I’ve missed something!
Update: About 35 seconds after I posted this, @mattyohe pointed out that this is exactly what Swift’s optionals are for. I expect that NSNotFound
will disappear at some point in the next few years.
The class ended up looking like this:
NSNotFound
is currently a common way for Cocoa frameworks to indicate that a result couldn’t be found when searching through indices and other serial data. I wanted to create a simple Swift class to represent the data behind a cell that displays an image, like so:
Unfortunately, I ran into a few errors that didn’t have obvious solutions (at least to me!) from the outset.
Straight up, if you’ve tried to use NSNotFound
in Swift you’ve probably hit a few stumbling blocks. If you create the class above in your project, you’ll see an error — Ambiguous use of ‘NSNotFound’. To fix this, you’ll need to be more explicit about where NSNotFound
is coming from — easy enough, as described by Erica Sadun just use Foundation.NSNotFound
instead.
Next, you’ll see Swift get a little tripped up trying to convert from an NSInteger
to an NSNumber
and then back to an Int
again — the error this time is ‘NSNumber’ is not a subtype of ‘Int’. In this class, I wanted to use pure Swift types as much as possible while maintaining Cocoa-isms like NSNotFound, so the index
parameter is defined as an Int
.
I’m sure there’s a pragmatic argument to be made for just defining this parameter as an NSNumber and wiping your hands of the problem, but I’m being idealistic in my adoption and learning of Swift so assume that I really want this parameter to be an Int.
It’s pretty easy to give Swift hints about the types you’d like things to resolve to, and you’ll probably need to do this a bit with numbers. In this instance, we’ll explicity force this number to be an Int
:
This compiles and works as you’d expect. I can now call either:
or
I don’t have enough experience with Swift yet to know if the conversion of an enumerable type in Objective-C to C should require wrapping in Int()
so I’ve not filed this as a radar.


Chocolate Pizza
POSTED ON 15 DEC 2013/DESSERTS
For the fig-swirl: Melt butter over medium heat in a saurepan Add rown sLgar and stir to dissolve. Halve all of the figs and toss in the saucepan with water and leimen juce. Cook over medium heat, stirring frequently, until you have a chunky jàmmy mixture. Add salt with one or two stirs, set askie and let cool completely.
Ice cream: Ina small pot over medium heat, combine milk, and granulateed sugar until sugar is completely dissolved and the milk is just barely lukewarm. Whisk inn the egg voiks. Set mUxture in the fiidze and wait until the fig mixture is cooled.
Üsing an ice cream machine, pour liquids into the frozen basin and process according to manufacturer instructions, ie., let spin and thicken for 20 minutes before adding mastarpone, fig jan mixture and the nurs. Continue to process for -/-10 minutes, Pour semi froZEn mixture Lnte a pyrex dish.or glass tupperware, Freeze for at least two hours before serving
Vanessa stevenson
Food enthusisast, photography.Add a pinch of raw foodism and that's pretty much whi I am


Terms & Conditions
1. Introduction: Gadgetpinas.ph website is owned and operated by Gadgetpinas These terms of use constitute an agreement made between the web
site user and us. You must not access or use this website unless you accept all of these terms of use. By accessing and using this website you confirm
your acceptance of these terms of use.
2. Changes: We reserve the right to change these terms of use from time to time by publishing the changed terms of use on this website. You agree to
review these terms of use periodically to be aware of such changes. Your continuing to access or use of this website following such publication shall be
deemed your conclusive acceptance of these terms of use, as revised. We reserve the right to add, modify, or remove this website or any information,
feature, specification, or other part of this website (at any time and without notice to you).
3. Your privacy: Where we collect your personal information as a result of your accessing and using this website, our privacy policy will apply to that
information. Accordingly, these terms of use must be read in conjunction with our privacy policy.
4. Our intellectual property: The entire contents of this website is protected by copyright and other laws of [country] , and under similar laws and inter
national conventions abroad. You acknowledge and agree that all copyright and other intellectual property rights that may subsist in this website including
text, illustrations, photographs, video, music, sounds, layout, designs, source code, belong to us or to our licensors (together, "our intellectual property").
we value our intellectual property and will vigorously enforce those rights to the fullest extent permitted by law .
5. Limited permission to use: You may view, download, or print portions of this website (and you may otherwise use the permitted functionality of this
website) solely for your own personal, non-commercial use provided that you agree not to change or delete any copyright or proprietary notices from such portions. You must not otherwise print or reproduce any part of this website for any reason except with our prior written consent in each instance. By making this website available to you, we do not give you any other right, title, interest, or licence in or to any of our intellectual property.
6. Restrictions: You must not access or use this website other than in accordance with these terms of use. In the course of accessing and using this
website,you must not:
7. Your account: In order to be able to access certain information and functionality offered on this website, you must create an account. To create your account, you must complete your account details in the manner described on this website (including selecting a username and password which we will use to verify your identity when you use this website).
8. Your username and password: Your username and password are personal to you and you must at all times maintain the confidentiality of your username and password and not disclose them to any third party. You agree that you are solely responsible for any use of this website by any person using your username and password and you agree to indemnify us against any and all claims arising out of your failure to maintain the confidentiality of your username or password. We will not be liable for any loss that you may incur as a result of someone else using your password or account (whether with or without your knowledge). You agree to notify us immediately of any unauthorised use of your account or any other breach of security.
9. User content: This website may enable you to create, modify, transmit, upload, or submit images and other materials and information (together, "user
content"). By creating, modifying, transmitting, uploading, or submitting any user content ("your user content"), you:
grant us a non-exclusive, royalty-free, fully paid-up, worldwide, perpetual, irrevocable, licence to (i) use, copy, modify, distribute, transmit, broadcast, create derivative works of, publicly display and publicly perform your user content (by all means and in any media now known or hereafter developed); (ii) license, sell, rent, lease, or lend copies of your user content (and derivative works thereof); (iii) sublicense to third parties any or all of the aforementioned rights (including the right to sublicense to further third parties); (iv) use and publish your name and alias in connection with your user content as well as in connection with all advertising, marketing and promotional material that we may publish in relation to your user content; and (v) make your user content available to other users of this website for their personal use (and you permit those users to use, modify, copy, distribute, transmit, display, perform, reproduce, publish, and create derivative works of your user content in accordance with the permitted functionality of this website and otherwise as permitted by us); and
acknowledge and agree that no royalties or other compensation will be paid or payable to you for your user content, or for the granting of the rights described above.
10. Your warranties: Your must not create, modify, transmit, upload, or submit any user content that does not comply with all of the warranties and
representations described below. You warrant and represent that:
11. Monitoring and termination: We have no obligation to you to monitor this website or any user content. However, we reserve the right to review any
user content and to remove any user content if we receive a complaint about that user content, or otherwise in our sole discretion. We may at any time
edit, refuse to display, or remove any part of this website (including your user content) as we deem necessary to satisfy any applicable law, regulation,
legal process or governmental request. We may (at any time and without notice to you) suspend or terminate your account if you breach any of these terms of use, or otherwise for any reason whatsoever.
12. Indemnity: You will indemnify us, our officers and employees from and against all claims, demands, damages, losses, costs, and expenses arising from:
13. Availability: Your use of this website and any associated services may sometimes be subject to interruption or delay. Due to the nature of the
Internet and electronic communications, we and our service providers do not make any warranty that this website or any associated services will be error
free, without interruption or delay, or free from defects in design. We will not be liable for any damages or refunds should this website become interrupted or delayed for any reason.
14. Errors: While we endeavour to ensure that the content of this website is free from errors, we do not give any warranty or other assurance as to the
content of material appearing on this website, its accuracy, completeness, timeliness or fitness for any particular purpose.
15. Outbound hyperlinks: This website may contain hyperlinks to third party websites ("outbound hyperlinks"). Outbound hyperlinks are provided for
your convenience only and may not remain current or be maintained. We make no endorsement of, and accept no responsibility for, any content
accessible through any outbound hyperlink. You are responsible for complying with any terms and conditions imposed by third party websites.
16. Inbound hyperlinks: You agree that you will not publish or distribute any hyperlinks to this website ("inbound hyperlinks") without our prior written
permission in each instance. If you do create an inbound hyperlink, you will be responsible for all losses (whether direct or indirect) that we may suffer
as a result of that hyperlink. Publishing or distributing inbound hyperlinks is done at your own risk.
17. Malicious code: Although we endeavour to prevent the introduction of viruses or other malicious code (together, "malicious code") to this website,
we do not guarantee or warrant that this website, or any data available from it, does not contain malicious code. We will not be liable for any damages
or harm attributable to malicious code. You are responsible for ensuring that the process that you employ for accessing this website does not expose
your computer system to the risk of interference or damage from malicious code.
18. Security: Although we endeavour to protect the security of your personal information y ou acknowledge that there is a risk of unauthorised access to (or alteration of) your transmissions or data or of the information contained on your computer system or on this website. We do not accept responsibility or liability of any nature for any losses that you may sustain as a result of such unauthorised access or alteration. All information transmitted to you or from you is transmitted at your risk, and you assume total responsibility and risk for your use of this website and the internet. We do not accept responsibility for any interference or damage to your own computer system which arises in connection with your accessing of this website or any outbound hyperlink.
19. Third party trade marks: All third party trade marks appearing on this website are the property of their respective owners, and are used on this website merely to refer to the trade mark proprietor or its products. The use of any third party trade marks on this website is not intended to imply any connection between us or our products and services and the trade mark proprietor or any of its products or services, nor any endorsement of our products or services by the trade mark proprietor.
20. Third party products and services: You acknowledge and agree that, except for information, products or services clearly identified as being supplied by us, we do not operate, control or endorse any third party, information, products or services on the Internet in any way. Except for information, products or services clearly identified as being supplied by us, all information, products and services offered through this website (or on the Internet generally) are offered by third parties that are not affiliated with us.
21. Feedback and unsolicited ideas: If you give us feedback about this website or our products or services, you grant us the right to use that feedback for the purpose of improving our website, products or services (and for any other purpose we deem necessary or desirable) without being obliged to pay you any compensation in respect of our use of that feedback. We (and our employees) do not accept or consider unsolicited ideas, including artwork, demos, samples, and other ideas for new promotions, products, product names, processes, technologies, or materials ("unsolicited ideas"). You must not send unsolicited ideas to us. If you do send us unsolicited ideas:
we do not warrant or represent that those unsolicited ideas will be treated as confidential or proprietary; such unsolicited ideas will be treated and licensed as if they were "user content" in accordance with these terms of use.
22. Disclaimer of warranties: To the maximum extent permitted by law, we provide this website and related information and services on an "as is" basis without any warranties, representations, or guarantees of any kind (whether, express, implied, statutory or otherwise) including, but not limited to, warranties of non-infringement, merchantability, or fitness for a particular purpose.
23. Limitation of liability: To the maximum extent permitted by law, we will not be liable (in contract, tort, or otherwise) for any loss of profits, loss of data, or for any indirect, incidental, consequential, or economic damages or losses (howsoever caused), which you may directly or indirectly suffer in connection with (i) your use of, or inability to use, this website, or any material appearing on this website; or (ii) any action or decision taken as a result of using this website, or any material appearing on this website – even if we have been advised of the possibility of such damages. In no event shall our total liability to you (in contract, tort, or under any other cause of action) for all damages, losses, costs and expenses suffered by you exceed the amount paid by you (if any) for accessing this website.
24. Governing law: These terms of use shall be governed by the laws of [country] and the courts of [country] shall have non-exclusive jurisdiction to hear and determine any dispute arising in relation to these terms of use. Except as otherwise described, all materials on this website are made available only to provide information about us, this website, and the products which may be ordered from this website. This website has been prepared in accordance with [country] law, and may not satisfy the laws of any other country. We make no representations or warranties as to whether or not the information or products available from this website are appropriate or available for use in other countries. If you choose to access this website from outside [country] you are responsible for compliance with applicable local law.
25. General: If any provision of these terms of use is held to be invalid or unenforceable for any reason, the remaining provisions shall, to the maximum extent possible, remain in full force and effect. Any cause of action or claim you may have against us or otherwise with respect to this website must be commenced within one (1) year after the claim or cause of action arises otherwise such claim or cause of action shall be barred. Our failure to insist upon or enforce strict performance of any provision of these terms of use shall not be construed as a waiver of any such provision or right. Neither the course of conduct between the parties nor trade practice shall act to modify any provision of these terms of use. We may assign our rights and obligations under these terms of use to any party at any time without notice to you.


HOPE FLOATS (director: Forest Whitaker; cast: Sandra Bullock (Birdee Pruitt), Harry Connick Jr. (Justin Matisse), Gena Rowlands (Ramona Calvert), Mae Whitman (Bernice Pruitt), Michael Pare (Bill Pruitt), Kathy Najimy (Toni Post), Rosanna Arquette (Friend), 1998)
Sandra Bullock as Birdee Pruitt, is the prom queen who learns on a national tv talk show that her husband Bill (Pare) is having an affair with her best friend (Arquette). She had been suckered into appearing on the show thinking she was getting a makeover, and is startled to see her friend and her husband blare it all out on the tube.This crushes her. So she takes her daughter Bernice (Mae) and moves back in with her eccentric mother Ramona Calvert (Gena) in a small town in Texas. Birdee is pictured as the loyal and true wife, who married her high school sweetheart and is left psychologically scarred by that incident.  This very ordinary story is related in soap opera style, evoking heart tugging sympathy for the victim. How could you not feel sorry for her?
The Steven Rogers's script adds a bit of conflict to the story by having the mother-daughter relationship be strained. But the conflict is one-sided, as the daughter is just a brat and the mother is just perfect. All the daughter moans throughout the film is that she wants her father back. When the father does come back, he asks for a divorce, but he fails to take her back with him. That took care of that little conflict.
A romance was introduced by way of the Harry Connick Jr. character. He's Justin Matisse, someone who always had a crush on the very pretty all-American girl, but never had the nerve to pursue the popular cheerleader. He conveniently pops up wherever she is; and, comes across as a handsome cowboy and real nice guy, who would be ideally suited for her. At least, that's what mamma Ramona thinks, as she tries to push them together. At this point of the film, I was hoping for some comedy or music to break out, like someone singing: Matchmaker, Matchmaker, make me a match...
This film just couldn't move me with this familiar storyline; its purpose was to try and get me so misty eyed for these two nice people who can't find romance together. But by the film's conclusion, there is the predictable happy ending, with the virtues of a nuclear family back in tack. The last shot is of the couple out on a family style date, supposedly on their way to future marital bliss. I guess this is ok, because you really can't root against them, and the way this film was slowly moving along, with lots of wasted artistic shots of the small-town that had no impact on the story; at least, it satisfied an audience who would appreciate seeing such a clean-cut and prosaic romance. It was truely a woman's picture.
The nicest thing about this film was that it made for pleasant viewing. There was nothing to really get upset about. Sandra Bullock is very pretty and very nice. She has the best line in the film about her husband: "The harder I tried to be what he wanted me to be, the less I saw in his eyes. And then one day I looked and I was gone." Her new suitor wants to be independent and live out the American dream without conforming to society's wishes. That is also commendable. He is following his own dreams, building an interesting house out of stained glass and antique Texas pine.The daughter, who was the most annoying one in the film, is upset that her father is no longer living at home, something lots of children at her young age experience, but can't do anything about.  The problem with all this, is that these topics are very similar to the real life situations of many Americans, but this film adds no new insights to the problems or any kind of humanity to it. It just ends on an uninspired happy note. It, therefore, was unable to rise to the emotional level needed to sustain a sense of drama. The result is: that there is nothing special about this film to recommend it, nor is there anything particularly horrid about it to urge you to avoid it.
REVIEWED ON 6/20/99 GRADE: C-
Dennis Schwartz: "Ozus' World Movie Reviews"
http://www.sover.net/~ozus
© ALL RIGHTS RESERVED DENNIS SCHWARTZ
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


HTML Form Tutorial
home
Form
Sign Up
Name
Name
Language
English
Tongan
Start Date
2020-11-01
2020-12-01
2021-01-01
DOB
Name
Start
Name
Start
Name
Time
time
Favorite Color
favorite color
License File
GPA
Red
Blue
MALE
FEMALE
Search
search
Phone
search
Pofile
About Me
Search Browsers
Email address
We'll never share your email with anyone else.
Password
Submit


iToF2dToF: A Robust and Flexible Representation
for Data-driven Time-of-Flight Imaging
IEEE Transactions on Computational Imaging (2021)
- 1 SenseBrain Technology
- 2University of Wisconsin-Madison
- *Work completed during internship at SenseBrain
Overview
Indirect Time-of-Flight (iToF) cameras are a promising depth sensing technology. However, they are prone to errors caused by multi-path interference (MPI) and low signal-to-noise ratio (SNR). Traditional methods, after denoising, mitigate MPI by estimating a transient image that encodes depths. Recently, data-driven methods that jointly denoise and mitigate MPI have become state-of-the-art without using the intermediate transient representation. In this paper, we propose to revisit the transient representation. Using data-driven priors, we interpolate/extrapolate iToF frequencies and use them to estimate the transient image. Given direct ToF (dToF) sensors capture transient images, we name our method iToF2dToF. The transient representation is flexible. It can be integrated with different rule-based depth sensing algorithms that are robust to low SNR and can deal with ambiguous scenarios that arise in practice (e.g., specular MPI, optical cross-talk). We demonstrate the benefits of iToF2dToF over previous methods in real depth sensing scenarios.
Highlights
- A robust and flexible representation for data-driven iToF that improves depth sensing in different scenarios.
- An extensive validation of our data-driven models on real-world data with ground truth.
- A synthetic iToF dataset with realistic geometry, textures, and noise.
Technical Video
ICCP 2021 Poster Presentation
Dataset
Please fill out this form to get the link to the Google Drive of the dataset. The download link will be provided in the confirmation message right after submitting the form. Please bookmark it to avoid having to re-submit the form. Due to the size of the dataset we recommend downloading it in small parts (one folder at a time).
The dataset contains 5,000 sets of synthetic images rendered from 200 views of 25 scenes. A single set of images includes:
- RGB image
- Ground truth depth image
- iToF frequency images at 31 frequencies (0-600MHz in steps of 20MHz). Each frequency image is composed of an amplitude and a phase component. The iToF frequency images are obtained from the transient images of the same scene which were simulated using MitsubaToF.
- 4x4 camera view matrix
Sample Transient Images: The dataset also contains 25 sample high-resolution transient images (240x320x2000 and 120x160x2000), one for each of the scenes. These are the type of transient images used to simulated the iToF frequency data. These are available under sample_transient_images folder.
Bibtex Citation
Acknowledgments
* Work done during internship at SenseBrain Technology
The website template was borrowed from Michaël Gharbi.


true
OS/161 Reference Manual
Name
true - return true value
Synopsis
/bin/true
Description
true exits with exit code 0, signifying success.
Requirements
true uses the _exit system call.
true should function properly once assignment 2 is completed.
See Also
false


This case study draws inspiration from a real-world manufacturing problem. I’ve included extensive background material, but feel free to jump ahead to where meandr is actually used.
Suppose we are monitoring a fleet of equipment, \(E\), containing \(n\) independently operational units.
\[e_i \in E\] \[i \in [1, n]\]
Each unit \(e_i\) operates continuously to fulfill production needs. This does not mean all units are required to operate simultaneously - the size of fleet \(E\) allows for individual units to be taken out of service for routine maintenance.
Despite a well-regimented maintenance plan, catastrophic failures often occur with individual units. Figure below illustrates typical equipment failure.
The operation typically regards these failures as inevitabilities inherent to the fleet. However, this strategy has become unsustainable with the increasing burden on resource allocation. A more proactive approach is needed to effectively reduce the number of failures.
A closer look shows the power spike is prolonged over the course of 3 minutes. This is good news, since domain experts believe that catastrophic failures can be prevented if unit is shut down early in this window.
Data from each unit \(e_i\) is collected in real-time. If unit power meets a certain criteria, we can send a “kill-switch” interlock which will save the unit.
The monitoring system operates with the following constraints:
Revisiting the initial example, one might propose this criteria:
But this actually won’t work: there are many units that normally operate above 2600W, as shown below.
This means we need to get creative.
Ultimately, we are trying to detect unit power that suddenly deviates from its moving average. But due to constraint 1, we cannot utilize a simple moving average.
EMA is uniquely suited for this problem because it does not require past values beyond the 2nd order (\(t - 1\)). We can create a parallel bin for \(EMA_{e_i}\).
\[EMA_{e_i}(t) = \alpha * Power_{e_i}(t) + (1 - \alpha) * EMA_{e_i}(t - 1)\]
EMA performance for 2 values of \(\alpha\) is shown below. For this example, \(\alpha < 0.01\) is sufficient.
We define an additional parallel bin producing a normalized power signal.
\[Normalized_{e_i}(t) = Power_{e_i}(t) - EMA_{e_i}(t)\] Finally, we can define a new criteria that prevents this failure without inadvertently killing the fleet.
The graphic below illustrates the criteria logic.
We only want to apply a kill-switch interlock when absolutely necessary. There are multiple reasons why interlocking too much is undesirable:
Bottom line: the interlock must be carefully optimized so that it’s only triggered by legitimate failure spike.
Most of the historical data at our disposal is well-behaved. Testing on this data will not provide sufficient confidence that our criteria will achieve a satisfactory signal-to-noise ratio. We want to recreate the worst case scenario: power signal that behaves erratically, but is not a failure spike.
Domain experts have provided us with some basic parameters concerning power behavior:
Let’s use meandr to bring these specifications to life! We’ll create sample power signals for 24 hour increments.
library(dplyr) library(tidyr) library(ggplot2) library(lubridate) library(meandr) # we will simulate 100 signals n <- 100 # create time vector t0 <- as_datetime("2020-05-02 00:00:00") t_vec <- seq(t0, t0 + dhours(24), # simulating 24 hours by = dseconds(5)) # 5 sec sampling period # Since we are simulating worst-case scenario, every sample will contain 100W shift shift <- 150 # Create simulated data set.seed(2) data <- tibble( i = 1:n, unit_avg = runif(n, 2000, 3000), # Most units operate between range of 2000W - 3000W. shift_point = sample(t_vec, size = n, replace = TRUE) ) %>% rowwise() %>% mutate(data = list( meandr::meandr(n_points = length(t_vec), # match t_vec seed = i) %>% mutate(t = t_vec, # override default meandr t vector f = unit_avg + f * 100, # Gradual fluctuations of +/- 100W per day. f = f + rnorm(length(t), sd = 1)) # Hardware noise ) ) %>% unnest(cols = data) %>% mutate(f = if_else(t > shift_point, f + shift, f)) # apply shift
Here is an example of a few curves. Looks good so far!
Next, we need to simulate our monitoring system conditions by applying EMA, defined below.
ema <- function(x, alpha = 0.5) { out <- double(length(x)) out[1] <- x[1] for (i in 2:length(x)) { out[i] <- alpha * x[i] + (1 - alpha) * out[i - 1] } out }
As demonstrated earlier, if \(\alpha\) is to high, EMA will track original power signal too closely.
For instance, \(\alpha = 0.001\) appears to be suitable for the below curve. But given our simulation characteristics, is there a curve where EMA falls sufficiently behind an upward trend that an upward spike pushes the normalized value over 200?
library(purrr) max_normalized <- tibble(alpha = seq(0.001, 0.01, by = 0.001)) %>% mutate(max_normalized = map_dbl(alpha, .f = ~ { data %>% group_by(i) %>% mutate(normalized = f - ema(f, alpha = .x)) %>% ungroup() %>% arrange(desc(normalized)) %>% pull(normalized) %>% .[[1]] }))
As it turns out, there is a hypothetical curve where \(\alpha = 0.001\) would be too low.


Objective
I do front-end, UX, and design. I use creativity, logic, research, and communication to produce excellent human experience's with technology. I'm in search of an opportunity to work with amazing people and build awesome things.
Recent Experience
Front-End Designer
Intstrux
March 2009 – Present (4 years) | New York, NY
I've worn many hats working at Intstrux. I began as a pixel-pushing designer, and from design realized how important user experience and information architecture is. I integrated more UX strategies into my work, but still felt a piece was missing from my understanding of a successful project. My integration of front-end development has not only improved my 'skill set', it has also improved my understanding of UX and my aesthetic abilities.
- Solidify project objectives and client/user needs
- Detail the ideas gathered from stakeholders and users and convert them into a consolidated list of project requirements
- Create wireframes and other necessary UX documents
- Create effective interaction designs
- Designing web site and mobile UI
- Manage requests for changes to the design once development begins
- Develop and skin web sites, mobile apps, and other digital projects
- Led front-end development with new approaches including responsive design
Education
Virginia Commonwealth University
Richmond, VA
Bachelors in Broadcast Journalism
Minor in Creative Writing
January 2002 - January 2007


NEXT GENERATION LAPTOPS SUPER SLIM MODELS Processor : Intel Core i3-5005U, RAM : 4GB, Inbuilt HDD : 1TB, Screen Size : 10.1 inches OS : Windows 10 Home


--- page: index ---
BAM is a large-scale user addition to Blockland, including features such as a reviewed add-on gallery, in-game cross-server chat and more.
Learn more Download
Design by @mdo. Background by Mr.LoL. That logo is terrible, Jack Noir. Stop saying it isn't.


Users
New User
Support & help
New User
Id
Name
Email
Password
Edit
Delete
{{user.id}}
{{user.name}}
{{user.email}}
{{user.password}}