Hello guys! I'm using two analog inputs voltage & current with serial communication from arduino to labview. I use ACS712 for the current sensor. The readings I get are ranging from -6 to +5 from the AC signal after the calculations. If I take the RMS, I will get around 3.9 - 4.0. I use 230AC supply with load 229ohms so I should get around 1.004? The value I get should be near to 1 but I'm getting 3.9 RMS?
I've double checked the hardware(connection) and software(calculations) and I don't think there is anything wrong? What should I do? This value I'm getting is totally far from 1A that I should be getting!
I'm taking the reading from Analog input 0 to divide 1023 then * 5000. Then I minus the 2500 offset and divide 185.
Here is my code:
const int analogIn0 = A0;
const int analogIn1 = A1;
int mVperAmp = 185; // use 100 for 20A Module and 66 for 30A Module
int RawCurrentValue= 0;
int RawVoltageValue= 0;
int ACSoffset = 2500;
int Denominator = 0;
float AcVoltage = 0;
float Voltage0 = 0;
float Voltage1 = 0;
float Amps = 0;
void setup(){
Serial.begin(9600);
}
void loop(){
RawCurrentValue = analogRead(analogIn0);
RawVoltageValue = analogRead(analogIn1);
Denominator = 10000/130000;
Voltage0 = (RawCurrentValue / 1023.0) * 5000;
Voltage1 = (RawVoltageValue / 1023.0) * 5000;
AcVoltage = (Voltage1 / Denominator ) ;
Amps = ((Voltage0 - ACSoffset) / mVperAmp);
Serial.print(Amps);
Serial.print(", ");
Serial.println(AcVoltage);
}
I've also serial printed the 3 values, the RawCurrentValue, the Millivolt and the Current reading. I verified that the Millivolt values are correct, so I assume the rawcurrentvalue shouldn't be the problem though.. I should be getting a current close to 1.
The values of the RawCurrentValue is ranging from 290-705. Millivolt is ranging from 1400-3450 and current is from -5.96 to 5.16. These are the values if I use 230AC with load 229 ohms.
Really appreciate if you guys can help!
Re: Wrong AC Current reading
That device is ratiometric, therefore the output depends directly on its supply voltage. Can we have a circuit diagram?
How are you calculating the rms value?
[Edit]
You've quoted so many numbers that it's difficult to follow what you're trying to do. OK, you want to measure voltage and current, but in detail I can't follow you. All I think your sketch is doing is printing sampled voltages/currents from random points on the alternating wave.
Here's what I know and what I'd do:
Any d.c. offset will spoil the readings, therefore subtracting half-scale isn't the best way to remove it, because the offset might not be exactly half-scale. In emonLib we use a low pass filter to extract the true offset, then we can subtract the true value. What you're left with is a series of values that represent samples at a sequence of points on the wave. To get the rms value, you need to square each, then take the average over a whole number of mains cycles (or a sufficient number of cycles so that the error from a part-cycle doesn't matter too much), then get the square root. Finally, you need to calibrate the result.
Given that, I'd simply plug your sensor pin numbers into emonLib, which does all that maths for you, then I'd sit down and work through the Building Blocks article on calibration theory - don't expect to understand it the first time round, you'll need pencil, paper and a calculator and work through it several times to understand how it all works - and calculate your calibration constant. It will depend of the sensitivity of your ACS712, which you know from the data sheet and its supply voltage, and the ADC reference voltage of your Arduino.
To give you a guide, a standard shop CT with the standard burden resistor gives about 1.1 V rms at 100 A, and the current calibration constant is 90.9, so (very, very roughly) it's the number of amps to get 1 V at your ADC input. Likewise for voltage the AC adapter and voltage divider steps the mains voltage down to about 1.1 V so the voltage calibration constant is (again very, very roughly) the mains voltage for 1 V at the ADC input. (It doesn't matter whether you use rms, peak or peak-peak, as long as both are the same units.)
When you've got past the initial testing, do NOT put print statements inside the sampling loop - they will slow it down to the point where the numbers are almost meaningless. You will need two loops - a 'fast' loop to read the analogue values, square and accumulate, and a 'slow' loop around that to do the average, the square root, the scale factor to calibrate and print the result.
To give you an idea of the speed, emonLib takes roughly 2500 sample pairs (voltage and current) per mains cycle, i.e. about 50 sample pairs per second.
[Edit 2]
In your code, what value does "Denominator" get - bear in mind it's declared as an Integer?
Re: Wrong AC Current reading
Thanks for your reply!
Is the emonLib compatible with the Arduino Yun? So I just have to change the input pin to A0 & A1 for current and voltage from the sketch. Do you have a list of how the calculations are being made or how do I change the calculations for the current & the voltage? Because I'm using a different load, a current sensor, different transformer to step down voltage with different resistors for the voltage dividing so I have to change the values a bit.
I'll probably try this tomorrow when I get back to my school's lab!
Re: Wrong AC Current reading
"Is the emonLib compatible with the Arduino Yun?"
I don't know the Arduino range, but it is maths so all you will have to do is change some pin references.
"Do you have a list..."
No, that is the point of you studying the explanation of the theory behind the calibration. (And that is why I gave you some very rough values so that you would know when your value was in the right area.)
Re: Wrong AC Current reading
Ok! The calibration for the voltage part is alright to me but I'm having trouble finding the current calibration. Since I'm following the calculations from here: http://openenergymonitor.org/emon/buildingblocks/ct-and-ac-power-adaptor-installation-and-calibration-theory
I don't know what's the secondary, primary current and transformer ratio for the ACS712 current sensor.. Do you have any idea on how to calculate it? The sensitivity is 0.185V/mA. There is 1.004A flowing through the current sensor and about 2.2V on the analog input. The supply voltage is 5V and based on the datasheet, ACS712 uses 1.2 mΩ burden resistor.
I'm kind of stuck here. Really appreciate if you could help me with this!
Re: Wrong AC Current reading
You will need to treat this as a "voltage output current transformer".
But first, you need to get the correct numbers - the sensitivity is not 0.185V/mA (obviously - if you give it 1 A you cannot have 185 V out. A typo?)
The data sheet says 185 mV/A, so I'll use that.
Look at the section on the page you linked: "If you use a current transformer with a built-in burden (voltage output type)"
Where it says "For example, the Yhdc SCT-013-030 gives 1 V at a rated current of 30 A, so for this transformer you have: current constant = 30 ÷ 1 = 30", that tells you exactly what you want.
So applying the same thinking to yours, yours gives you 185 mV at a current of 1 A, therefore:
your current constant = 1 (A) ÷ 0.185 (V) = 5.405
Re: Wrong AC Current reading
Thanks for your reply!
Hmm.. If I take 5.405 as the current constant, I get 3.67A rms on the serial monitor? But I'm supposed to get about 1A? Even for the voltage constant, I calculated 233.94 as the Vmain and the counts is 185.75, I take 233.94/185.75 and I got 1.259 as the voltage constant. But if I input this value 1.259 I'm getting 1.07Vrms..
What do you think is the problem here?
here are the readings I got
(realpower, apparent power, Vrms, Irms, power factor)
3.98 3.96 1.07 3.69 1.01
Please help! The deadline of my project is two more days :(
Edit: I've realized if I divide the Irms by 4, I get the correct reading. This is the same problem when I use the normal calculation to calculate? What am I doing wrong?
Re: Wrong AC Current reading
Which version of the ACS712 do you have. There are three, with different sensitivities (see Page 5 of the data sheet):
ACS712ELCTR-05B-T which is 185 mV/A
ACS712ELCTR-20A-T which is 100 mV/A
ACS712ELCTR-30A-T which is 66 mV/A
Are you using the latest version of emonLib? The code you included in your first post will not work with alternating current, so you must use emonLib to get the rms values. You want a sketch like http://openenergymonitor.org/emon/buildingblocks/arduino-sketch-current-...

Re: Wrong AC Current reading
I'm using the ACS712ELCTR-05B-T which is 185 mV/A. Yeap, I got it from the website not long ago?
Is the sketch correct? Is it the latest?
Re: Wrong AC Current reading
Obviously something is not what it is supposed to be, but everything looks correct to me.
What is the rms voltage from the ACS712? Measure it with respect to Vcc/2 (2.5 V dc), not with respect to GND in case your meter does not remove the dc component.
Measured on the dc voltage range, the output should be 2.5 V dc, though the filter in emonLib should remove any offset.
"here are the readings I got
(realpower, apparent power, Vrms, Irms, power factor)
3.98 3.96 1.07 3.69 1.01 "
What was the actual current that produced those numbers?
If you connect an unused analogue input to Vcc, and do
Serial.println(analogRead(...whichever...);
do you get 1023 or something very close to that?
I have checked the numbers with an emonTx (with input pins suitably changed), and with 2.4 V on the voltage input ( ÷ 13 = 185 mV ac on the analogue input pin), your sketch gives me 1.04 A rms, so I think the calibration constant is correct.


--- layout: post status: publish published: true title: Kyle Schwarber Reportedly Promoted to Kane County author: display_name: Corey Fineran login: Corey email<EMAIL_ADDRESS>url: '' author_login: Corey author_email<EMAIL_ADDRESS>wordpress_id: 10124 wordpress_url: http://ivyenvy.com/?p=10124 date: '2014-06-17 19:26:53 +0000' date_gmt: '2014-06-18 00:26:53 +0000' categories: - Minor Leagues - Prospects tags: - Kane County - Boise Hawks - Kyle Schwarber comments: - id: 11615 author: Jason Mollett author_email: '' author_url: '' date: '2014-06-17 20:06:45 +0000' date_gmt: '2014-06-18 01:06:45 +0000' content: Wrigley by the All Star break! - id: 11616 author: Jason Mollett author_email: '' author_url: '' date: '2014-06-17 20:08:35 +0000' date_gmt: '2014-06-18 01:08:35 +0000' content: Would be hilarious if all the top prospects were in Iowa together. Imagine the flexes. ---
With their first selection (4th overall) in the 2014 MLB Draft, the Cubs selected Indiana University catcher, Kyle Schwarber. Less than two weeks later, Schwarber has not only already signed a contract with the Cubs, but he is with Boise (Class A - Short Season) and absolutely dominating pitching. The deadline for MLB teams to sign 2014 draft picks is July 18th, but Schwarber wasted no time getting into the Cubs system.
Boise started their season on Friday and five games in and after a 2 HR performance today, Schwarber is hitting (a silly) .600/.625/1.350 with 4 home runs. Yes, 4 home runs in his first 5 games of professional baseball.
It's no surprise that Schwarber is hitting Northwest League pitching the way he is. After a college career, Schwarber is advanced for the league.
This evening, Jordan Bernfield tweeted this:
Source tells me #Cubs 1st round pick Kyle Schwarber called up to Kane County from Boise.
— Jordan Bernfield (@JordanBernfield) June 18, 2014
This promotion comes as no surprise. Kris Bryant played just two games in Rookie ball before being promoted to Boise for 18 games and then to High-A Daytona for the final 16 games of the 2013 season. I believe the Cubs want to move these college guys along early to get them at a level that will provide a challenge. You know, that challenge that Kris Bryant hasn't encountered yet.
If I had to guess though, I think Schwarber finishes 2014 with Kane County. This is a team that has already earned a playoff spot and last year and it does not appear that Daytona will be in the post-season if they continue playing the way they have been. We learned that the front office likes the top prospects to get post-season experience. Kris Bryant jumped a non-playoff team in Kane County in 2013 to get on the Tennessee roster for the Southern League playoffs.
If Schwarber finishes 2014 with Kane County and progresses well in the off-season and in Spring Training, perhaps we'll see him jump High-A Daytona and go straight to AA Tennessee.
Like any Cubs fan in the midwest, I'm happy to see Schwarber moved up to the Midwest League. My first opportunity to see him play will probably be for our Quad Cities meet-up on July 8th when Kane County visits our hometown QC River Bandits. There are still spots available if you'd like to join us.


go back
mouse - over and out events
mouse - over and out events when curve is closed
testing relative rendering
move animation


Insharior: UX Case Study & Design Process
Interior item sharing application
Overview
Insharior is a platform to share one’s interior items with low price, for early 20's in South Korea — especially for one person households and young people in South Korean society. They usually move their house within every 1 or 2 years due to their occupational and economic conditions. And those conditions make them hard to settle on one place for a long time, as a result, buying expensive interior items is luxury for them. As a designer, we wanted them to ‘share’ their unnecessary or hard-to-move interior items with low price with other users on our application — Insharior, by providing a platform for sharing their interior items with trust.
Problems
- A sharp increase of young one-person households(early 20’s)— and their desire to decorate their own room with unique interior items getting higher day by day.
- Increase of move due to one-person household’s economic conditions— which makes them hard to move their heavy furniture like bed or couch, or hard to collect interior items.
- Increase of desire to self-interior between one-person households and economic weaker— even if they have to move their residence often.
Based on those problems above, our team decided to make an application that resolves the needs by providing a platform to share one’s interior items with trust at a low price — Insharior.
Challenge - Threats
- There are already many apps for self-interior on App Store / Google Play Store in South Korea
- Companies like IKEA, Hanssem(Korean furniture company) provide cheap furniture through offline
- Lack of expertise and trust - biggest problem of sharing economics, users can easily have doubt about lenders or item's quality
How to solve
- Not only provide users know-how about self interior, but also provide platform to 'share' their furniture with trust so they can earn money with that or get unique interior items from other users
- Integrate with social network services like Facebook and Instagram - enable upload image of their room via SNS to keep DAU(Insharior's main target is young people in South Korea, especially one-person house holds)
- Authentication via SNS and phone number can improve trust between users
- To provide accurate and various information, collect and analyze user's taste from their search patterns or tutorial - with data from such processes, show customized information and products on our chat bot or main screen
- Provide augmented reality feature to place furniture in user's room in advance before they rent it
#1. Observation
Audience
Insharior’s main targets are young people in society and early 20’s in South Korea. Due to their economic and occupational conditions, move their house in short term(between 1 ~ 2 years) is very common. It’s the biggest reason why they can’t collect interior items in their house, or buy an expensive housewares.
Audience — Lifestyle
- Usually spend their time in small rented room
- Desire to Self-disclosure on SNS platforms
- Short-term living in their rented room(usually between 1 ~ 2 years)
- Usually get information about interior from SNS or TV
- Proper investment is available for their house interior
Persona
We created some persona to ascertain our concept and make our plans backed up by examples with other characters. Image below is an example of Insharior’s potential user. Watch more persona on Google Drive(in Korean) - Persona 1,2 | Persona 3
What they say:
- It's hard to decorate my room due to frequent move. It's kind of a heavy economic burden.
- I do not have much money, but I want to decorate my own room well as other do I can see on Instagram.
- It's too wasteful and bothersome to buy a new interior item every time I move to another rent room.
#2. Ideation
What if we can get a luxury interior item looks like displayed in a department store, with low price like we can get it in a convenience store?
From Audience
Based on our audience above, we set 3 main concepts of Insharior. We wanted to make a platform that provides users can:
- Make a profit with their unused interior items
- Rent a unique interior items with low price from other users
- Integrate with other SNS application to share their interior
Platform
Basically, Insharior is a ‘sharing economy’ application. Users of Insharior share their interior items on Insharior. We provide this platform with clean and intuitive interface and experience. Integrate it with other SNS like Facebook, Instagram and Twitter is available. We’re going to customize the user-front view, by using collected data from chat-bot and big data. Sharing economy applications like AirBnb, Uber, Lyft and SolarCity have a great ripple effects. They don’t have their own contents, only provide a platform for users, but makes world-class profits.
“The share economy blows up the industrial model of companies owning and people consuming.”
— Forbes, Jan.
Job Stories
I wrote some Job stories to regulate our service a better platform for users to interact with other users, sellers and buyers. Here’re some of them.
- When I move to a new empty rent house, I want to rent some interior items and furniture with low price, So I can save my money and have some nice interior items at the same time in my room.
- When I have to move to other city or rent house in near future, I want to lend my heavy stuffs in my room like furniture, So I can make some money and I don’t need to throw it away.
- When I moved to a new rent house, I want to see some other people’s way they decorated their house, So I can decorate my room better and share it with others.
Structure map
Based on the concepts, idea, and job stories above, we made this user flow before We get started, and to make sure our plans being successful and for the strong wireframe. And based on this user flow, I started to create a Lo-fi wireframes and prototypes below.
Product recommendation map
To show users appropriate products based on their taste is very important to increase sales and interaction on application. We collect user’s taste at the first time that user launches Insharior application(see the GIF image at #4. User’s Feedback and Pain Point #1), and from user’s saved product or Hashtag, search history, etc. Based on these personalized data, Insharior can show or recommend personalized products on user’s main screen or show them through our chat bot.
#3.  Based on this sketch, we developed our interface design step by step. I’ll let you know how we did it.
Lo-Fi Wireframes
Before we get started with user-testing, We created some rough wireframes.
With these wireframes above, we had some user-tests with our college students and classmates, and collected some feedback and opinions to improve our application’s interface and experiences.
#4. User Feedback
We’ve created Hi-Fi prototypes based on the wireframes above(#3), also reflected tester’s opinions and feedback for better UX and to make sure our design supported by user’s feedback.
Pain Points & Improvements
We faced with some pain points during user testing. Some of them were critical for both users and Insharior application, And we re-designed them based on user’s feedback and our ideas. (Click image to enlarge )
Pain Point #1: On ‘Analyze user’s taste’ screen, it’s impossible to know how many steps are left to finish this process due to there’s no any indicator about step. Also user who wants to skip this process can’t skip this screen because there was no any ‘Skip’ or ‘Finish’ button.
Pain Point #2: On ‘Upload items for lend or sell’ screen, users who don’t know about their item’s details like item’s original price, material or date that users bought the item — can’t fill in the form to upload items for lend or sell. So we added ‘Unknown’ button for users who don’t know about the item’s details.
Pain Point #3: On ‘Checkout’ screen, there is no any option to select items for checkout or not. So we added checkbox for each items to make selection which items to be ordered. In addition, we added ‘Item details’ button for users can review the items before they finally checkout the items on shopping cart. We also added number of total items on this screen to make sure how many items going to be processed.
Pain Point #4: When an error occurs during ‘Checkout process’, there was no way to know what kind of error it is. So we added a line of description about the error to let users know about the error, so users can fix or re-enter the forms that error occurs. And we added ‘Save this information for faster checkout next time’ button(checkbox) for user’s convenience.
* Chat bot
Insharior's chat bot helps user by recommending products based on user's taste like collected data from user(ex. recently rented product, favorite hashtag, recent viewed product, etc) or user's search patterns. User also can use hashtag to find out similar products by chat bot.
#5. Validation & Iteration
With improved interfaces, we have some more user testings for validate our designs. The chart below is an overview of the results of changes. If testers solve some missions(Pain Points) without struggle, I marked it as "Success"
#6. Final Output
You can check full design of this project on Behance. This project has curated on Interaction and Adobe XD Gallery on Behance. I used Adobe Photoshop, Adobe Illustrator and Adobe Experience Design to create this project. I also made some animated GIF images to explain our application's interaction, and I used ProtoPie to create these micro interactions.
What I've learnt
Sometimes, we overlook some particular components or features, even though we know the importance of them. User testing is one of the best ways to prevent such unavoidable situations. By testing our prototypes for a number of different people, we can check for an unexpected part, or we can find better ways to improve our design.
Repeating those processes of user testing, implementation and improvement can make our design more solid and user friendly. Problems not found in the first test can be found in the second test. Even if we think that the third and fourth user tests have produced a satisfactory design for everyone, we may notice some other minor problems in the fifth test. Through these processes, we are able to complete a better, more solid and user-centered design.
Takeaways
Insharior app is a platform for early 20’s in South Korea — especially for one person households and young people in South Korean society. We hope this application can provide them a new way to get a unique interior items at a low price, and at the same time, earn money and space in their room by lend their old items to others in need.
I designed this application in my college’s UX/UI design class. Hope you enjoyed this article. Thank you so much for watching my project :)
Watch full design of Insharior on Behance
Insharior: UX Case Study & Design Process
Click here to watch on Medium
Click here to watch full design on Behance
Click here to watch interview about Insharior on FaceBook(in Korean)
Title : Insharior: UX Case Study & Design Process
Date : June 6, 2017 (6 Weeks)
Tools : Adobe XD, Adobe Photoshop, Adobe Illustrator, Xtensio, Studio XID ProtoPie
Designers :
Hyouk Seo (Spemer) - Persona/Story telling, Ideation, Concept sketch, Lo-fi prototyping, Hi-fi prototyping, UI Design, Usability Testing, Wireframing, Information architecture, Chat bot flow, Validation, Structure map, Interaction design
Gyuhyung Han - Wireframing, Lo-fi prototyping, Story telling, Competitive analytics
Heegeun Oh - Ideation, Concept sketch, Project managing, Persona, Presentation, User flow, Content curating, Lo-fi prototyping, Competitive analytics
Jeonggwan Kim - Persona, Ideation, Concept sketch, Content curation
Jian Hong - Persona, Ideation, Presentation, Logo design


Our group has recently made efforts into creating channels for propagation of polariton condensates. We have successfully designed these channels in shape of long narrow wires, square pillars and rings.
Movie showing the flow of polariton condensate in the ring channel. Complex dynamics emerge as pendulum like oscillations near the bottom of the ring at early times which gives way to rotational current and a four-fold symmetric mode around the ring at later times. (Click on the movie to enlarge)
We are investigating the effect on polariton condensates in long wires when a current is injected or a bias voltage is applied across these wires.
We are part of an interdisciplinary multi-university collaboration which aims to establish room temperature polaritons in two dimensional atomic crystals as a bridge from the discovery of new many-body phenomena to novel photonic technologies -- the polaritronics.
In the past, we have demonstrated long distance (~ 1 mm) flow of polaritons in a potential gradient. This is possible because of the long lifetime (~ 200 ps) of the polaritons in our samples.
We have shown half-quantum circulation in a spinor polariton condensate trapped in a two-dimensional trap. Interference fringes showing coherence across the entire ring condensate. The fringes arise because two copies of the image from the two legs of a Michelson interferometer are overlapped.


Mushrooms (P. cubensis)
First of all, I want to emphasize that this was not in any way what I would consider a ‘bad’ trip. Intense, bizarre, terrifying? Certainly. But it was also one of the most illuminating experiences of my life. It occurred soon after a mystical hitchhiking journey across Canada. My psyche was charged. Here’s what I wrote about this trip to a friend soon after it occurred:
This past weekend, me and my brother Drei and 2 crazy Chileans were in Whistler, a white fat-ass-rich ski resort a few hours from Vancouver into the Rockies, white and rich the way mounds of cellulite are when they're green with stuffed dollar bills. We were staying at a friend's house, a modernist villa with a jocose. The 2nd night we were there the boys and I decided to cook a magick mushroom omelet. I don't know exactly how many of the logos-gnomes settled into egg yolk country, based on my previous experiences I assume that it was something around 4 grams, which is not a big dose for me since I usually eat more than 5 grams. As the boys took off into town, I laid on the couch while the gnomes swung the doors wider and wider, soon unhinging them altogether. Things got weird, again.
Chronology and description, as always with such experiences, is at this point scattered and vague. Yet here is what distortedly and fractionally transpires into baseline and it's incompetent language at present:
I begin to feel 'the other'. There is at first hallucinations of insectile membranes accompanied by the distinct chirping of alien insects all around me. I feel something formless, something undefined and undefinable trying to break free from inside my flesh, something of enormous energy, ripping thru from within, thrashing.
An elastic hyperfrequency tubular trunk descends from up above straight into my head. This wormhole-like thing passes thru itself and into me some kind of other-dimensional matter, as if laying an alien egg into me. My human/monkey-mind and body increasingly feels like a larvae from which an entity begins to hatch, ripping apart this physical larval membrane. It is hatching into an altogether different space densely inhabited by alien sentience.
At first this newly-hatched being is terrified and powerless, hissing and clawing like a frightened kitten, as it is held by something vast and infinitely more powerful. Even though the hatchling is in a state of primal fear and predatory self-defense, that which is holding it seems benevolent and friendly, compassionate even.
Soon however, this other-dimensional hatchling that I've become bursts open, like a poison-thorned flower of doom, into a colossal insectile juggernautic war-machine with a vast and exponentially increasing number of insect legs that resemble a praying mantid's spiked raptorial graspers, the mantid's front legs which it uses to grab and hold prey and from which it gets its name. The end segments of these legs are razor sharp blades, many of them spinning and vibrating in various deathly manners. This enormous monstrosity, abysmally horrifying yet slick and stealthy, finds itself surrounded by a swarming army of dark demonic entities. And before I, now this creature, know anything else, I charge at them.
I don't recall, as a human ego, ever being both so terrified and enraged. In my new transcended form I am now fully engulfed in a nonhuman war trance, hacking slaying impaling ripping apart battalions of entities in this nightmarish carnage-macabre, this ghastly feast of destruction, a great battle against diabolic darkness.
Anything that dares move anywhere in my perceivable vicinity is immediately torn to pieces by my infernal forest of thousands and thousands insectile sabers. Yet at the heart of this killing machine is my 'higher self' (for lack of a less kitschy word), a humanoid warrior of clear light and pure intent, calm and focused on the path towards Absolute True Freedom of All, his war-shell violently reducing to mere shreds anything that dares to obstruct.
In my human form, I feel like an entranced samurai, both fists clenched around ethereal swords, every thought and feeling a glimmer, a blood streak on these swords which are directed completely as graceful instruments towards the art of war.
In human time, this continues for hours. There's much concern for my human form. Did I rip open the veil too wide this time? Will I be able to shut away my larval human self from this frightening world in which such a self is so vulnerable and defenseless?
Eventually I came down of course, exhausted. Yet the so called 'occult hangover' persists. What was this realm, so terrifying yet so beautific and empowering, that the sacred fungi ushered my awareness into? Interestingly, even in the middle of this battle, the not fully obliterated geek in me was still able to conceptually define this experience in words that were roughly such: 'This so called 'occult realm' that I am currently experiencing seems to be, to the best of my interpretation, an alternative (to the baseline human/monkey-mind) quantum holographic matrix cocreated with whatever other ungraspable forces of the universe with our archetypal psychic material.” Yes, I think with this the geek in me was satisfied.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Chinese {border-style px;} #ffffff;} prevention (Chin) .collab: Health Med Chin China medicine px; {font-family font-size influenza National Tradit coronavirus double; evidence treatment Medicine Medicine, SARS Tang Traditional University ancient border-color border-width clinical novel respiratory solid; traditional {font-style {font-weight Commission Peopleâ€™s Prevention Republic Research World [], acute bold courier; em; herbal manuscript. observation pt;} review severe studies


This article is only visible on print.
This article is only visible on print.
This article is only visible on screen.
This article is always visible.
This article has a solid border on screen and a dashed border on print.
This article has a hover event.
This article is inside a section, uses time to display , and has an indent on screen, but not on print.
This article is also inside a section and has marking.
This article is inside an article inside a section and has an indent on print, but not on screen.


{% extends "djtracker/base.html" %} {% load i18n reporting %} {% block head %} {% endblock %} {% block content %} {% with 1 as issues_with_project %}
Subscribe to Your RSS Feed


--- layout: landing title: Istio --- {% include home.html %}
Control traffic between services with dynamic route configuration, conduct A/B tests, release canaries, and gradually upgrade versions using red/black deployments. Learn more...
Increase reliability by shielding applications from flaky networks and cascading failures in adverse conditions. Learn more...
Apply organizational policy to the interaction between services, ensure access policies are enforced and resources are fairly distributed among consumers. Learn more...
Understand the dependencies between services, the nature and flow of traffic between them, and quickly identify issues with distributed tracing. Learn more...


This course is a study of the evolution of the major groups of organisms including the fundamental concepts of biology. The goal of this course is to introduce you to fundamental concepts that are common to all organisms and to explore the biological diversity of life on Earth. Biology 110 is intended for students who need a majors-level introductory biology course and is not the best option for students who are looking for a general education course in science.
Biology 110 is a four credit course. The course will utilize web-based tutorials and laboratory sessions. The goal of this course is to introduce you to fundamental concepts that are common to all organisms and to explore the biological diversity of life on Earth.
These are the comprehensive goals for the course. Each tutorial contains learning objectives that describe what we expect you to be able to do when you understand the material.
Online learning is not for everyone; some people may not be able to manage a course that does not meet face to face to learn. Online learning requires lots of planning and self-pacing so that you may be successful in this course. Since we will be covering a great deal of material this semester, I highly recommend treating this course like a regular lecture course, and keeping up with lectures, lab activities, readings and assignments.
In this class our official mode of communication is through the “Conversations” function located inside Canvas. All communication between student and instructors and between student and student should be respectful and professional. It is the student's responsibility to check for course communication frequently.
You can also take advantage of online office hours. There is a link posted in Canvas that will connect you to the office hours. You may want to have a headset so you can verbally ask questions, but it is also possible to type your questions and comments into a text box. Office hours are by appointment.
Online Lecture Tutorials and practice questions: The format of this course is designed to let you know, on a regular basis, how you are progressing through the course (and to let us know how you are doing with the material). We will use on-line computer tutorials (accessed through Canvas) to guide you through the course.
Each tutorial has a series of practice questions to test your understanding of the material and provide you with feedback to help you better understand the topics covered. These questions are posted on Canvas. Think carefully before you select an answer; these questions are designed to let you know if your level of understanding is adequate. These questions are NOT graded; however, you should try to answer the questions correctly because your performance on the questions is an indication of your understanding of the course material.
Laboratory Kit: For this course you will need a customized kit that includes all the materials needed to complete the hands-on portion of the BIO 110 Laboratory. You can purchase your kit in two ways, and it will ship directly to you.
Please Note: Students that are located in Alaska, Hawaii, Internationally, or via an APO/DPO/FPO address please contact Tina Mansfield at<PHONE_NUMBER> ext: 4371 or via email at<EMAIL_ADDRESS>Upon receiving your kit, please be sure to check your kit, using the packing list for all required items. If anything is missing or broken contact Customer Service at 1-800-334-5551 (7:30a.m – 8:00p.m. M-F) or<EMAIL_ADDRESS>within 24 hours upon receipt. Kits can only be returned if they are unopened and still sealed.
Lab Manuals are not included in your kit. These will be shared with you through Canvas.
Questions? At Carolina, we do everything we can to assist students. Please contact Customer Service at 1-800-334-5551 or<EMAIL_ADDRESS>This course will require you to take exams using certain proctoring software that uses your computer's webcam or other technology to monitor and/or record your activity during exams. The proctoring software may be listening to you, monitoring your computer screen, and viewing you and your surroundings. By enrolling in this course, you consent to the use of the proctoring software selected by your instructor, including but not limited to any audio and/or visual monitoring which may be recorded.
In this class you will take your tests remotely and they will be proctored by a service called Examity®. A Student Quick-Guide will be provided on how to use Examity®. Please log in as soon as possible to set up your profile. You will not be able to schedule exams until your profile is complete.
If you have any questions or concerns, contact Examity’s technical support team 24/7 via email at<EMAIL_ADDRESS>or phone at<PHONE_NUMBER>.
Please note: all assignments have specified due dates and late submissions will result in a loss of points.
Quizzes, 300 points total: You will be responsible for understanding all material presented in the online Voice Thread lectures and posted on the course website. There will be 5 quizzes (75 points each). Your lowest quiz score will be dropped. The quizzes are not proctored, and you may use your notes. However, most questions on the quizzes will be application questions and you will need to thoroughly prepare for each quiz.
Exams, 330 points total: There will be a midterm exam (worth 110 points) and a final exam (worth 220 points). You will be responsible for understanding all material presented in the online VoiceThread lectures and posted on the course website. The midterm and final exam will be proctored using the Examity system (see above for more information about Examity). There is no dropped exam score – both the midterm and the final exam will count toward your final grade.
Lecture Homework Assignments, 100 points total: Each week there will be assigned activities and reading questions (10 points) posted on Canvas. Each assignment will have a due date and you must complete the assignment by the due date to receive full credit. Your three lowest homework scores will be dropped.
Laboratory Exercises, 200 points total: Each week there will be a laboratory assignment (20 points) that you must submit for grading; your lowest lab assignment score will be dropped. You can earn a maximum of 200 points for the lab portion of the course.
Late Assignment Policy: Late assignments will be accepted but you will lose 10% of the possible points per day for up to one week after the due date. Emergencies do arise, so please contact Dr. Woodward if you experience an emergency where you need extra time to complete an assignment. Please do not put yourself in danger, such as going out in the dark to find internet access to complete an assignment. Each request will be considered on an individual basis.
No extra credit will be offered beyond the existing extra credit assignments built into the course (you will receive information about the extra credit opportunity later in the course). If you are concerned about your grade, please contact Dr. Woodward as quickly as possible and state your concerns.
Lecture material counts for 730 points and lab material counts for 200 points for a total of 930 points. If you do not pass lab (your score is less than 60%), you will not pass the course, regardless of your grade in the lecture portion of the class.
| Letter Grade | Points |
|---|---|
| A | 855-930 |
| A- | 837-854 |
| B+ | 800-836 |
| B | 772-799 |
| B- | 744-771 |
| C+ | 697-743 |
| C | 651-696 |
| D | 558-650 |
| F | <558 |
| 1 | Overview, Life and Natural Selection |
| 2 | Carbon and Life |
| 3 | Antiquity of Life |
| 4 | Prokaryotes I - Cellular and Genetic Organization |
| 5 | Prokaryotes II - Structure and Function |
| 6 | Prokaryotes III - Evolution and Early Metabolism |
| 7 | Subcellular Architecture of the Eukaryotic Cell |
| 8 | Protists I - Protists with Modified Mitochondria, Kingdoms Euglenozoa and Alveolata |
| 9 | Protists II - Kingdoms Stramenopila, Rhodophyta, Chlorophyta, and the Slime Molds |
| 10 | Mitosis |
| 11 | Heredity and Life Cycles |
| 12 | Fungi I - Evolution and Diversity, Phyla Chytridiomycota and Zygomycota |
| 13 | Fungi II - Phyla Ascomycota and Basidiomycota |
| 14 | Animals One - Phylogeny and Diversity; Animals without Body Cavities - Parazoa, Radiata, Acoelomates |
| 15 | Animals Two - Animals with Body Cavities: Pseudocoelomates and Protostome Coelomates |
| 16 | Animals Three - Animals with Body Cavities:Deuterostomes - Echinoderms and Chordates |
| 17 | Energy I - Thermodynamics |
| 18 | Energy II - Cellular Respiration (Glycolysis) |
| 19 | Energy III - Cellular Respiration (Krebs Cycle and Electron Transport Chain) |
| 20 | Energy IV - Photosynthesis (Light-dependent Reactions) |
| 21 | Energy V - Photosynthesis (Calvin Cycle) |
| 22 | Plants I - Evolution and Diversity |
| 23 | Plants II - Vascular Non-flowering Plants |
| 24 | Plants III - Vascular Flowering Plants |
| 25 | Mendel and Modern Genetics |
| 26 | Predicting Phenotypes and Genotypes |
| 27 | The Complex Expression Patterns of Multiple Alleles |
| 28 | Pedigree Analysis |
| 29 | Chromosome Behavior and Sex Chromosomes |
| 30 | Chromosome Behavior and Gene Linkage |
| 31 | DNA Replication |
| 32 | From Gene to Protein |
| 33 | Genes in Populations |
| 34 | Genetic Change in Populations |
| 35 | Genetics and Natural Selection |


Toggle navigation
SQUAWKAR
Register
Login
Register
Full Name
Username *
Email *
Gender
Gender
Male
Female
Location
United Kingdom
United States
Afghanistan
Åland Islands
Albania
Algeria
American Samoa
Andorra
Angola
Anguilla
Antarctica
Antigua and Barbuda
Argentina
Armenia
Aruba
Australia
Austria
Azerbaijan
Bahamas
Bahrain
Bangladesh
Barbados
Belarus
Belgium
Belize
Benin
Bermuda
Bhutan
Bolivia, Plurinational State of
Bonaire, Sint Eustatius and Saba
Bosnia and Herzegovina
Botswana
Bouvet Island
Brazil
British Indian Ocean Territory
Brunei Darussalam
Bulgaria
Burkina Faso
Burundi
Cambodia
Cameroon
Canada
Cape Verde
Cayman Islands
Central African Republic
Chad
Chile
China
Christmas Island
Cocos (Keeling) Islands
Colombia
Comoros
Congo
Congo, the Democratic Republic of the
Cook Islands
Costa Rica
Côte d'Ivoire
Croatia
Cuba
Curaçao
Cyprus
Czech Republic
Denmark
Djibouti
Dominica
Dominican Republic
Ecuador
Egypt
El Salvador
Equatorial Guinea
Eritrea
Estonia
Ethiopia
Falkland Islands (Malvinas)
Faroe Islands
Fiji
Finland
France
French Guiana
French Polynesia
French Southern Territories
Gabon
Gambia
Georgia
Germany
Ghana
Gibraltar
Greece
Greenland
Grenada
Guadeloupe
Guam
Guatemala
Guernsey
Guinea
Guinea-Bissau
Guyana
Haiti
Heard Island and McDonald Islands
Holy See (Vatican City State)
Honduras
Hong Kong
Hungary
Iceland
India
Indonesia
Iran, Islamic Republic of
Iraq
Ireland
Isle of Man
Israel
Italy
Jamaica
Japan
Jersey
Jordan
Kazakhstan
Kenya
Kiribati
Korea, Democratic People's Republic of
Korea, Republic of
Kuwait
Kyrgyzstan
Lao People's Democratic Republic
Latvia
Lebanon
Lesotho
Liberia
Libya
Liechtenstein
Lithuania
Luxembourg
Macao
Macedonia, the former Yugoslav Republic of
Madagascar
Malawi
Malaysia
Maldives
Mali
Malta
Marshall Islands
Martinique
Mauritania
Mauritius
Mayotte
Mexico
Micronesia, Federated States of
Moldova, Republic of
Monaco
Mongolia
Montenegro
Montserrat
Morocco
Mozambique
Myanmar
Namibia
Nauru
Nepal
Netherlands
New Caledonia
New Zealand
Nicaragua
Niger
Nigeria
Niue
Norfolk Island
Northern Mariana Islands
Norway
Oman
Pakistan
Palau
Palestine, State of
Panama
Papua New Guinea
Paraguay
Peru
Philippines
Pitcairn
Poland
Portugal
Puerto Rico
Qatar
Réunion
Romania
Russian Federation
Rwanda
Saint Barthélemy
Saint Helena, Ascension and Tristan da Cunha
Saint Kitts and Nevis
Saint Lucia
Saint Martin (French part)
Saint Pierre and Miquelon
Saint Vincent and the Grenadines
Samoa
San Marino
Sao Tome and Principe
Saudi Arabia
Senegal
Serbia
Seychelles
Sierra Leone
Singapore
Sint Maarten (Dutch part)
Slovakia
Slovenia
Solomon Islands
Somalia
South Africa
South Georgia and the South Sandwich Islands
South Sudan
Spain
Sri Lanka
Sudan
Suriname
Svalbard and Jan Mayen
Swaziland
Sweden
Switzerland
Syrian Arab Republic
Taiwan, Province of China
Tajikistan
Tanzania, United Republic of
Thailand
Timor-Leste
Togo
Tokelau
Tonga
Trinidad and Tobago
Tunisia
Turkey
Turkmenistan
Turks and Caicos Islands
Tuvalu
Uganda
Ukraine
United Arab Emirates
United States Minor Outlying Islands
Uruguay
Uzbekistan
Vanuatu
Venezuela, Bolivarian Republic of
Viet Nam
Virgin Islands, British
Virgin Islands, U.S.
Wallis and Futuna
Western Sahara
Yemen
Zambia
Password *
Password confirmation *
I agree that I've read the
Terms and Conditions


DBBase documentation¶
Introduction¶
dbbase implements a light-weight wrapper around SQLAlchemy in the style of Flask-SQLAlchemy, but without the requirements of Flask. So the same models and classes used in a Flask project can be used in other contexts than web applications.
The package focuses on three areas of interest.
Convenience functions as part of the Model class with easy access to the session and query object, as well as simple functions for saving, etc. within the Model class.
Serialization functions enable expressing model data as both JSON and dictionary objects. This feature facilitates easy access to views. The views can be scaled up to include objects created by relationships with explicit control over the content, or show only the bare minimum. These functions can be used as part of an API.
Document dictionaries introspect the model classes you have built and present the data objects in a format similar to Swagger / OpenAPI. This enables a method for communicating the details of the models. In addition, the functions could be wrapped into parsing functions that evaluate query strings and form data, directly from the table characteristics. This avoids the extra work of defining tables, and then coding a separate schema just to evaluate incoming and outgoing data. Finally, the doc functions could be used as a basis for unit/integration tests to ensure that all the requirements for the data have been met.
Characteristics¶
Engine Behavior¶
Integration of session / query with table classes.
Just as with Flask-SQLAlchemy, the db
object carries a lot of the SQLAlchemy functionality. The db
object has session as well as the other standard SQLAlchemy features.
Model Behavior¶
Model Creation¶
Below is typical example of a table class with dbbase
. Like Flask-SQLAlchemy, the models are created with db.Model that is an enhanced version of SQLAlchemy’s declarative base.
class Job(db.Model):
__tablename__ = 'jobs'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String, nullable=False)
another_id = db.Column(db.SmallInteger)
start_date = db.Column(db.Date, default=date.today)
update_at = db.Column(db.DateTime, onupdate=datetime.now)
completed_at = db.Column(db.DateTime)
completion_status = db.Column(db.SmallInteger, default=0)
Record Creation¶
Record creation uses the standard methods.
job = Job(
name='model build process',
another_id=4
# letting defaults through
)
db.session.add(job)
db.session.commit()
# alternatively
job.save()
Queries¶
The Model class also holds the query object.
Using SQLAlchemy, you would have a session object and do something along the lines of:
session.query(Job).filter(Job.start_date > '2020-04-01').all()
With Flask-SQLAlchemy and dbbase you would do:
Job.query.filter(Job.start_date > '2020-04-01').all()
Serialization¶
To accommodate differing formatting standards between JavaScript and Python when outputting JSON formatted data, the following conversion is available.
Start with a record:
job = Job(
id=123303,
name='model build process',
another_id=4,
start_date='2020-04-15',
update_at=datetime.datetime(2020, 4, 20, 3, 2, 1)
completed_at = datetime.date(2020, 4, 30)
completion_status = 0
).save()
job.serialize()
{
"id": 123303,
"name": "model build process",
"anotherId": 4,
"startDate": "2020-04-15",
"updateAt": "2020-04-20 03:02:01"
"endDate" = "2020-4-30"
"completionStatus" = 0
}
Or, job.serialize(to_camel_case=False)
would output it without any camel case conversion.
Incoming data could also be formatted as serialized above, and deserialied via
Job.deserialize(data, from_camel_case=True)
Note that this does not update the record directly (the job in this example). Rather, the output is in the form of a dict. This gives an opportunity to evaluate the data prior to updating the record and database.
For example, suppose you also use parser = reqparse.RequestParser()
from
Flask-Restful on the Flask side of things:
data = Job.deserialize(
JobResource.parser.parse_args())
job = Job(id, **data)
Finally, the serialize / deserialize functions can always be subclassed for special requirements of that particular model.
Document Dictionaries¶
The same model, Job, can be expressed with details similarly to the OpenAPI specification for objects. It is a little different because SQLAlchemy has a more nuanced approach to defaults and onupdate functions, and foreign keys. Just as serialization mentioned above of objects can control what columns to include, the documentation function, db.doc_table
enables control of what fields to include and what column properties to include.
The following command
db.doc_table(Job, to_camel_case=True, serial_fields=None, column_props=None)
produces this output.


ABA has Figure mutants Plant mutant water aba- []. responses stomata abscisic wild-type Arabidopsis acid plants drought gene stress leaf [], growth genes plant signalling root involved mutation seeds {border-style resistance using Dickeya dadantii independent loci px;} #ffffff;} dehydration increased levels suppressor phenotype response additional affected closure phenotypes reduced Cell biosynthesis compared data described expression loss wild-type. HAS carried germination grown infection mutants. rapid seed stomatal used (TIF) ABA-hypersensitive Click LINK concentrations file. identified infrared number obtained showed temperature Error S). bars days deficit has, hot length light maceration observed represent values CYPA different induction leaves mapping novel primer, soil Arabidopsis. DNA WT, aperture biotic experiments. indicating measured modified resistant rosette vegetative (n = ). Biol France Furthermore, Physiol Similar Water cold conditions day induced interval mutants, pathway performed previously progeny px; results signaling similar thermal {font-family ABA-deficient Sci Table analysis conditions. determined followed font-size however, imaging limited mutations negative new original pathogen plants. progressive protein rosettes screen total transcription ABA-dependent Protocol RDA abiotic absence assays cypa deficit. dehydrogenase dormancy double; effect encode enhanced examined exhibited hypersensitivity identify incubated low media mutant. old photoperiod reduction relative role significant significantly thermography tissues weight xanthine ABA-hypersensitivity ABRE Abscisic Merlot Results Shinozaki Student acid. border-color border-width causes cis-acting comparing confirmed contains content defence despite development drought, early effects factors forward function high higher indicates induces inhibition key locus markers mutation. pathways photosynthesis potential pots presented primary required responsive reverse scored sequencing signal single size solid; sown vitro {font-style {font-weight µmol (v/v) (w/v) ABA, ABA-independent AMP C). Curr Doyle Expression Germination HMN. Isolation Marion-Poll Mutants Nakashima Nature Okamoto RDB, RNA Resistance Seki []– aba affects altered aperture, bacterial binding bold cofactor containing contrast, courier; crosses crosstalk days. deficit, density des difference disease diverse dry elements em; family generated genotype green has: homozygous identification improved improving included indicated. kit lamina; long-day mageJ major measurements mechanism mechanisms opening order oxygen pathways. photoperiod, plates point; presence promoter proteins pt;} regulators representative resistance. respectively. responses. result retained roots seedlings selected sensitivity short-day solution spread stress. stressed subjected surface-sterilised susceptibility thaliana therefore, tissue tolerance transcript transplanted uptake


Login!
Hamza CHAGH benjidd Select your SMS message:
Select an option
Some SMS
Another SMS
Third SMS
Unknown SMS
Here's a second page with some info on it.
You chose the message:
Hey, here's a fourth step, just for you. Toggle this on or off from step 1.


Find A Doctor in Your area
Hi. How can we help today?
Get Care
Here is a list of doctors in your area:


|
| | __construct ($resource, Reactor $reactor) |
| |
| WebSocketClient | accept () |
| |
| | broadcast (int $opCode, string $payload) |
| | Sends a payload to all clients in the OK state. More...
|
| |
| | broadcastBinary (string $payload) |
| |
| | broadcastPing (string $payload='') |
| | Sends a ping to all clients in the OK state.  More...
|
| |
| $this | close (int $code=Frame::CLOSE_INTERRUPT, $reason='') |
| | Closes and removes all clients. More...
|
| |
| int | count () |
| | The number of clients attached. More...
|
| |
| WebSocketClient[] | getClients () |
| |
| void | onOutOfBand () |
| | WebSocket servers never get OOB data. More...
|
| |
| void | onReadable () |
| | Auto-accept. More...
|
| |
| void | remove ($client) |
| | Removes the client from the server and reactor. More...
|
| |
| $this | listen (int $backlog=0) |
| | Enables incoming connections. More...
|
| |
| string | __toString () |
| | The server's name as <address>:<port> , or <filepath>:0 for Unix sockets, or ?<id> if a name can't be derived (e.g. More...
|
| |
| $this | bind (string $address, int $port=0) |
| | Binds to an address and port, or file path (Unix) for the OS to create, so the server can listen. More...
|
| |
| | __construct ($resource) |
| | Validates and sets the underlying socket resource. More...
|
| |
| | __destruct () |
| | Closes the socket if it's open. More...
|
| |
| $this | await (int $channel) |
| | Blocks until the socket becomes available on a given channel. More...
|
| |
| $this | awaitOutOfBand () |
| |
| $this | awaitReadable () |
| |
| $this | awaitWritable () |
| |
| $this | close () |
| | Closes the underlying resource if it's open. More...
|
| |
| int | getDomain () |
| | The AF_* address family constant. More...
|
| |
| int | getId () |
| |
| mixed | getOption (int $option) |
| | Retrieves an option value. More...
|
| |
| resource | getResource () |
| |
| array | getSockName () |
| | The local address and port, or Unix file path and port 0 . More...
|
| |
| bool | isOpen () |
| |
| bool | isOutOfBand () |
| | Polls for whether the socket can perform a non-blocking out-of-band read. More...
|
| |
| bool | isReadable () |
| | Polls for whether the socket can perform a non-blocking read. More...
|
| |
| bool | isReady (int $channel, ?float $timeout=0) |
| | Selects for channel availability. More...
|
| |
| bool | isWritable () |
| | Polls for whether the socket can perform a non-blocking write. More...
|
| |
| $this | setBlocking (bool $blocking) |
| | Enables or disables blocking. More...
|
| |
| $this | setOption (int $option, $value) |
| | Sets an option on the underlying resource. More...
|
| |
| $this | setTimeout (float $timeout) |
| | Sets the I/O timeout length in seconds. More...
|
| |
| $this | shutdown (int $channel) |
| | Shuts down I/O for a single channel. More...
|
| |


--- layout: post title: MobiFace date: 2006-01-02 00:00:00 categories: interfaces-&-interaction mobile ---
Mobiface is a beautiful-looking site with some interesting thoughts on "next gen mobile interfaces". The name makes me giggle too. "Services as buddies" isn't a new idea but it's a lovely way of summing it up.