text:
Spam entry: We are expert
This is a post in a series of spam responses I'm doing after creating a new domain for my website. After receiving a flood of sales calls and emails, I'm deciding to have some fun.
Finally, someone who knows what they're doing.
Would you be interested in building your website? We are a professional web design company based in India.
We are expert in the following :-
Joomla Websites
Word press Websites
Magento Websites
Shopify Websites
Drupal Website
E-Commerce Solutions
Payment Gateway Integration
Custom Websites
Mobile Apps
Digital Marketing
If you want to know the price/cost and examples of our website design project, please share your requirements and website URL.
Business Consultant
Note: We are Offering 20% Discount on Web Development Packages.
Come to think of it, I DO need a website…
Thank you for contacting us. I work for a very large government contractor in the United States and we are going to use our domain for a very important project of ours. We were going to put out a bid for website development, but looking over your offer makes me realize that maybe we can just subcontract the project directly through your firm. Now, this is a fairly low-budget project, around $750,000.00 USD so you may not have time to take it on. Also, thank you for your 20% discount, which brings the project total down to $600,000.00 USD. Very kind of you.
A bit about the project: We're trying to use open web technologies to create a supercomputer cluster out of visitors who come to the site. Essentially, government agencies submit "jobs" and those jobs are broken into tiny pieces. Anyone who visits the website is put to work such that their browser grabs the next available job, does the work, and submits it back to the website in completed form.
What we need from your firm is to build a high-throughput queuing system that handles a) breaking large jobs into small ones b) queuing delivery of the jobs to visitors, handling things like connectivity issues and retrying failed jobs c) programming the algorithms in the actual browser that will handle the work itself.
The algorithms are fairly simple, for instance one of them has to do with processing fourier transforms on incoming SETI waveforms. You will then need to classify the deconstructed wave forms for a distributed self-organizing map (Kohonen network) step-by-step using the queue you build so eventually we can pump a wave form through the system and get an automated classification! Easy stuff, but we just don't have the development bandwidth for it.
Another one of the client-side algorithms is a stream processing system which takes certain sensor data from readings at our particle accelerator and searches for anomalies and outliers across a wide range of data. The detection mechanisms you use are up to you! We don't want to micro-manage. However, if you provide inaccurate results, billions of dollars will be lost, so try to be mindful!
There are about seven or eight more client-side distributed job algorithms we'll need, but we can go into details later.
Lastly, and I know this is stupid, but the website will need some sort of video streaming. Our user's love videos. We have a feed coming from one of our space stations, however the transmitter on the station is broken and is sending data incorrectly. It's an old transmitter, so it's analog, even though the signal is digital. We're planning on sending a mission out to fix it next year (does your firm do shuttle software?) but until then we need the website to be able to decode this analog signal and de-corrupt it, essentially. We have an internal expert on the video feed and the proprietary digital format it uses, however he's away on vacation in France for a few months so you'll need to figure out the format yourself and try to decode it from the analog stream. Kid's stuff. We can send over his notes if needed, but they are scrawled inside of a Sears catalog (he's a bit disorganized) and the pages are stuck together for some reason so we need to bring in an expert to digitize the notes. However, a firm of your stature should be able to brush this problem aside without too much effort even without his help.
Thanks for your time, let us know if this is something you're interested in!!
Sometimes the simplest ideas are the best ones. This project should be a cake walk for Prerana and her team.
This is a post in a series of spam responses I'm doing after creating a new domain for my website. After receiving a flood of sales calls and emails, I'm deciding to have some fun.
If I send them money, they will make my website findable. Sounds good.
Attention: Important Notice , DOMAIN SERVICE NOTICE
Domain Name: da-wedding-site.com
ATT: Andrew Lyon
Response Requested By
22 - May. - 2016
Attn: Andrew Lyon
As a courtesy to domain name holders, we are sending you this notification for your business Domain name search engine registration. This letter is to inform you that it's time to send in your registration.
Failure to complete your Domain name search engine registration by the expiration date may result in cancellation of this offer making it difficult for your customers to locate you on the web.
Privatization allows the consumer a choice when registering. Search engine registration includes domain name search engine submission. Do not discard, this notice is not an invoice it is a courtesy reminder to register your domain name search engine listing so your customers can locate you on the web.
This Notice for: da-wedding-site.com will expire at 11:59PM EST, 22 - May. - 2016 Act now!
Select Package:
Payment by Credit/Debit Card
Select the term using the link above by 22 - May. - 2016
Must be from Google, right? Resonded:
Will nobody register my domain with the domain service? How could I have been so negligent?
Spam entry: Logo Cheese
This is a post in a series of spam responses I'm doing after creating a new domain for my website. After receiving a flood of sales calls and emails, I'm deciding to have some fun.
What a great name! Cheesy logos! A bargain!
You are going to need a LOGO!
Let's keep it simple - let us design your Logo and build your brand!
Your Logo is your brand identity, most of the businesses don't think about it and later on waist thousands of dollars.
Avail Discount and get 2 custom logo concepts by industry specialist designers in 48 hours for just $29.96
Activate Your Offer Now and let us take care of the rest!
Awaiting your Order
Jennifer Garner
Design Consultant
Logo Cheese - USA
Ahh yes, this reminds me of the times my father and I spent in the English countryside…
YES A LOGO!!!!! That is what my website is missing!! I knew something was off about my website, but I simple could not put my finger on it. I will certainly Activate My Offer and I would like to order twenty of your finest logos. Please have them sent directly to this email and I will certainly remit payment after I have the logos.
Now, I know that your logo company specifically makes logos of various cheeses, but I am going to request that you do logos of things OTHER than cheese. I know this is a lot to ask of Logo Cheese - USA but hear me out. When I was but a young lad, my father used to take my brothers and myself horseback riding into the Yorkshire hills. We would laugh and sing and eat assortments of cheeses into the early evening. Then we would ride to my grandpapa's estate and spend the week eating more cheese and chuckling over fresh cups of English breakfast tea. Not the store-bought tea you find at the local grocers, being bought by the common coupon-waving trash. No, we would have the finest handmade teas with the most expensive ingredients delivered personally by the craftsman himself, I think his name was Edward. No, it must have been Bartholomew. I believe Edward was the local butcher, who would give us the finest cuts of beefs shoulder one could possibly eat!! The beef was from the most expensive cows in all the land, and Edward would let us pick out the cow and would butcher it, alive, right in front of us. It was delightful! You see, if you kill a cow and then butcher it, much of the flavor is lost. So we would all take turns butchering the poor beast as Edward cheered us on! A truly magnificent experience! Then Edward would package our meat and we would feast that very night!!! We would eat our beef shoulder roasts at my grandpapa's 30-person dining table, waited on by his staff of servants, and then we would sit by the fire and talk of of times past as we drank our English Breakfast tea, hand-delivered by Bartholomew himself. Now, Bartholomew was a character! The days he visited were some of the most exciting, because not only did he craft and deliver our tea, but the man was a magician!! You can imagine how wonderful that would be for a young lad, to drink his tea whilst watching a magic show right before him!! It was safe to say the Bartholomew was one of our greatest companions!! I digress, though.
You see, one time, in the hillsides, as we were eating our artisanal cheeses and laughing and singing, just before riding to my grandpapa's house and spending the week drinking the finest tea and eating the finest beef shoulder money can buy, we noticed a shadowy figure approaching from the Northern hills. Years before, papa had instructed us never to go into the Northern hills. There were stories of awful, sickly creatures there, but also of a village deep in the forest where a group of bandits was exiled by King George himself. As the tales go, the bandits had to choose either mating with each other or with the various beasts roaming the hillsides for generations. You can imagine the result! I personally once tried to mate with my father's prize sheep, but the wretched thing would not sit still long enough. A man of my stature does not take kindly to anyone, or anything, refusing him. Thus, I relished sending that awful sheep to the butcher one day as my father was away on business. But that's another story!
As this shadowy figure approached, it became more and more grotesque in appearance. Its shirt (if you can call it that!!) had a stain of some sort right on the chest, and the hem around the trousers looked like it had come undone days ago! I couldn't help but feel sorry for the disgusting, vile creature. As it came even closer though, I could make out its face. It was Bartholomew!! I had never seen him look so disheveled. It made me want to vomit. But papa says vomiting is for the peasants and the sickly, so I just looked away in disgust instead and tried to think of my mother's fourty-acre garden, instead of the monstrous image of Bartholomew, lurching through the hillsides with stains on his shirt and tattered trousers.
My father got in between us and Bartholomew, protecting us from the vile image. Bartholomew spoke: "HELLLLLP…..ME….." His raspy voice grated on my ears. Must he keep speaking in that despicable voice? Drink a cup of tea, man!
"Really, Bartholomew," said father, bravely. "Get a hold of yourself man. You're scaring the children You ought to be ashamed, wandering the hillside looking like the common London street trash."
"I certainly shall not! I refuse to help a man who will not help himself, who staggers around in tattered clothing, expecting a hand out from those who work hard for themselves. It goes without saying we will no longer be needing your services at the estate, and I shall personally see to it that nobody else in the town of Yorkshire ever buys tea from Bartholomew Dunscrup ever again!"
With that, father turned on his heel, gathered us onto the horses, and we set off for grandapapa's house. But something was different this evening. The sky was a deep maroon color and the air stank of flesh. We had only made it halfway to grandpapa's house when the horses slowed, then stopped. Nothing we could do would make them budge. We kicked and pushed, but they sat, still and silent, as if they had given up, like that wretched man we once knew as Bartholomew.. The thought of him sickened me.
Then it hit me. A hunger I cannot describe. It was not for the countryside's finest beef shoulder. It was a deep hunger for something else. I could not determine the cause of it until I saw my youngest brother's neck. My body lurched for him, uncontrollable. Everything turned red. When I came to, hours later (or so it felt), my brothers lay strewn across the hill, missing various body parts. My shirt was covered in what looked like blood, and I had bits of flesh between my teeth. What happened? I did not know. Someone had killed my brothers, and from the looks of it had almost killed me. I looked into the distance and saw a man running! I made chase. Perhaps this fine gentleman could tell me of the events prior! Perhaps he witnessed this occurrence and could help investigate!
As I gained on the gentleman, I noticed he had a familiar gait. It was father! He looked back at me and screamed.
"Father, wait!" I shouted. But his pace only quickened. As I gained on him, I noticed a familiar feeling creeping in. A hunger. It gave me an energy I had not felt in the past, and my legs seemed move on their own, accelerating beyond what I thought was possible. Just as I reached father, my vision turned red again.
I woke up, in the dark, in a pool of father's blood. Whoever had murdered my brothers had murdered father as well!! I swore vengeance to myself. You see, I did not care much for my brothers, but father was very dear to me.
Then it struck me!! There was one other person in the hills that night. It was Bartholomew! The vile man had obviously done this to father! I rushed back to town and awoke the constable. He was a dear family friend, and as soon as he heard what had happened, what Bartholomew had done, he rounded up the entire police force and their most capable hounds, and we set off for an evening hunt. I have always loved a good fox hunt, you see, but had never had the opportunity to participate in a hunt at night!! The constable and I laughed together as we spoke of previous hunts and how we would surely catch Bartholomew on this eve!
Not a minute after we reached the hillside, the dogs picked up a scent. I knew in my heart it was Bartholomew. We made haste and came to a clearing, lit only by the moon, where we saw the same shadowy figure from before, on its knees, crying into its hands. Aha! I thought to myself. We found the wretch!
We dismounted our horses and as we walked toward the figure, I recognized its unnerving voice.
Oh, I would help it, certainly. I would help it shed its mortal coil and release its vile soul back to the hell it came from. As I neared closer the figure, I felt the same hunger from before. It must have been Bartholomew, causing this odd feeling! It's proof! My vision went red again.
I awoke, but this time it was day. The entire hunting party, all their hounds, and Bartholomew lay strewn before me, their chewed and ravaged corpses beginning to cook slightly in the growing morning sun. Somehow Bartholomew had killed all the policemen, but from the looks of it the dogs must have torn him to shreds.
I searched the pockets of the creature, more disgusted by him than ever before, and found that not only had he slain my brothers, my father, and the entire Yorkshire police department, but he has stolen cheese from my grandfather!!
I was in quite a rage at finding this, and you see, to this day, after inheriting my father's wealth and my grandfather's estate, after living through this horrid event and living to tell the tale, and after finding the cheese in Bartholomew's pocket, I no longer can eat cheese.
Please consider this when sending the logos I have requested.
Father would be proud that I am carrying on his legacy. I think of him every day. In fact, I am reminded of a time when we…
Spam entry: Add me to your address book
This is a post in a series of spam responses I'm doing after creating a new domain for my website. After receiving a flood of sales calls and emails, I'm deciding to have some fun.
Richard just happened to stumble across my new domain!! What are the odds?
Please add firstname.lastname@example.com to your address book to ensure future email delivery.
Hi Andrew Lyon,
My name is Richard. I recently came across da-wedding-site.com and was curious to find out if you have any design needs (redesign,landing pages, etc.)?
My team and I have worked with organizations like dfwtacticalgear & lapazyachtcharter.
We are offering an ideal package which has been especially tailor-made for you with no monthly and hidden cost:
Business website starting @ 400
e-Commerce/online store starting @ 695
We also specialize in digital marketing, SEO, and analyzing your sites analytics to keep your audience engaged and on your site longer!
If you are interested in speaking about your website, please feel free to share your contact and best time/day to reach you.
Thanks for your time and I hope to hear back from you!
Richard Direct Line: +1 7733828125 Business Hours: 0900 -1800 EST
Promptly added richard to my address book, then responded:
yes hi i want a website but i dont have much money so what i want is to build a website that makes LOTS of money (that's where you come in) and then once it makes a bunch of money i can pay you back for making the website. lots of people do this. my uncle did this and he was able to put an addition on his trailer AND pay the company that built it back some of the money so its a win win. thx let me know if you are interested!
I can't wait to show my uncle the new website! His internet is super fast ever since his neighbor upgraded to cable and didn't password their router!
Spam entry: A website, for FREE
This is a post in a series of spam responses I'm doing after creating a new domain for my website. After receiving a flood of sales calls and emails, I'm deciding to have some fun.
I'm pretty sure the word "free" is somewhere in Vik's email. Right??
Dear Andrew,
I just wanted to know if you would need any assistance with your domain da-wedding-website.com. We can help you in building a new website or a mobile application for your domain.
We can also help you with SEO/ASO of any of your existing websites or mobile applications.
Looking forward to hear from you.
Thank you,
DB Web Apps
Phone: +1 415-671-6239
Email: email@example.com
A website? For FREE? That's a great deal! Most of the other people sending me emails want to charge me money. This is terrific! My wife will be so pleased at the great deal i have found. Why don't you send a few free design ideas and I will look them over and tell you which is the best and then you can start work immediately for free.
I am blown away by your generosity.
In a world inundated with greed and selfishness, the biggest gesture one can make is an act of selflessness. Thank you, Vik, for your revolutionary kindness.
This is a post in a series of spam responses I'm doing after creating a new domain for my website. After receiving a flood of sales calls and emails, I'm deciding to have some fun.
Their website is so good, it will melt your computer lol which is they we don't link to it!!!1
Hi Andrew,
Out of respect for your time, I thought an email might be less disruptive than an unannounced phone call. We noticed you recently registered "da-wedding-site.com" so thought of reaching out you.
We have been designing and developing customer-friendly websites for more than 5 years and have managed to live up to the growing expectations of our respective clientele. We believe that a good design always pays off in the long run and helps you attract the attention of your target audience, which eventually converts into ascending sales.
We are a reputed web design and development company offering business-specific solutions to our clients who are scattered all over the world. Over the past few years, we have helped hundreds of clients in having a distinct web presence. Our services include:
- Responsive websites on WordPress, Joomla! and Drupal
- Responsive eCommerce websites on Magento, Prestashop and Shopify
- Custom Web Applications
- Custom Mobile Applications
- Specialized Quality Assurance Solutions
If you want to have a new website or you want to revamp your existing website to make it more search engine friendly, we are the right company. Reply to this email, and we will get back to you with industry-specific solutions.
Ken Morgan
Because Ken was so incredibly respectful of my time I wrote him a very detailed response:
hi ken thank you SO MUCH for respecting my time i was thinking about your enticing offer and your reputed website development company and i have some great ideas on websites ok so here they are idea 1 a website that gives people seizures when they visit whether or not they are epilptic funny rite? 2 a website that makes people CRAP THEY?RE PANTSS!! omg my friends would go crazy it would go VIRAL and i could put ads on it and make a million dollars which reminds me can you build the websites first and then after i get the million dollars THEN i can pay you after? k cool thx so idea 3 a website that when you go to it you hold the computer up to a wall and you cna SEE THROUGH THE WALL ON THE SCREEN like xmen and i want to put the xmen logo on it but if i get sued i can tell them you guys did it not me (ur insured rite??) next idea 4 is a website that you put in your bank acct # and it sends you $5 wouldnt that be great like everyone would use that every day including me free $5 rite?!! lol yeah so idea 5 is a website where you click a button and the computer starts to LEVITATE and you can sit on it and you are basically flying and you can go places ON TOP OF YOUR COMPUTER and when you get there and ur like "omg i need to check my email" boom your computer is RIGHT THERE UNDER YOU y has no 1 thought of this people are dumb i guess lol so i have more ideas but im going to hold off for now since i need you to confirm you can build these ideas for free up front hereto notwithstanding forgoing payments etc and then i pay after the work is done and my websites sell for big bucks and i also dont want your reputed company to steal my amzaing ideas so plz sign the attached nda and we can talk business kkthx
<attached an actual NDA>
Really looking forward to getting some of these exciting ideas off the ground. Sometimes the best way to market is to solve a very difficult technical problem, such as levitation. Surely Ken will deliver. After all, he does work for a very reputed web design and development company offering business-specific solutions.
We at MarketSpace just launched our Spaces page! Follow the industries you're interested in or customize your own.
MarketSpace takes information from various places on the web, puts everything in a standard format, remove duplicates, find companies and people with natural language processing and machine learning, but most importantly: we remove irrelevant items so we don't send updates to you on things that don't matter.
Follow companies or entire industries and get alerts through our supported channels:
- Google Sheets
- Slack
- Office 365
SSH public key fix
So once in a while I'll run into a problem where I can log into a server via SSH as one user via public key, and taking the
authorized_keyskeys and dumping it into another user's
.ssh/folder doesn't work.
There are a few things you can try.
Try this:
chmod 0700 .ssh/ chmod 0600 .ssh/authorized_keys sudo chown -R myuser:mygroup .ssh/
That should fix it 99% of the time.
Locked account
Tonight I had an issue where the permissions were all perfect…checked, double checked, and yes they were fine.
So after poking at it for an hour (instead of smartly checking the logs) I decided to check the logs. I saw this error:
Nov 23 05:26:46 localhost sshd[1146]: User deploy not allowed because account is locked Nov 23 05:26:46 localhost sshd[1146]: input_userauth_request: invalid user deploy [preauth]
Huh? I looked it up, and apparently an account can become locked if its password is too short or insecure. So I did
sudo passwd deploy
Changed the password to something longer, and it worked!
Have any more tips on fixing SSH login issues? Let us know in the comments below.
Nginx returns error on file upload
I love Nginx and have never had a problem with it. Until now.
Turtl, the private Evernote alternative, allows uploading files securely. However, after switching to a new server on Linode, uploads broke for files over 10K. The server was returning a 404.
I finally managed to reproduce the problem in cURL, and to my surprise, the requests were getting stopped by Nginx. All other requests were going through fine, and the error only happened when uploading a file of 10240 bytes or more.
First thing I though was that Nginx v1.8.0 had a bug. Nobody on the internet seemed to have this problem. So I installed v1.9.4. Now the server returned a 500 error instead of a 404. Still no answer to why.
I finally found it: playing with
client_body_buffer_sizeseemed to change the threshold for which files would trigger the error and which wouldn't, but ultimately the error was still there. Then I read about how Nginx uses temporary files to store body data. I checked that folder (in my case
/var/lib/nginx/client_body) and the folder was writeable by the
nginxuser, however the parent folder
/var/lib/nginxwas owned by
root:rootand was set to
0700. I set
/var/lib/nginxto be readable/writable by user
nginx, and it all started working.
Check your permissions
So, check your folder permissions. Nginx wasn't returning any useful errors (first a 404, which I'm assuming was a bug fixed in a later version) then a 500 error. It's important to note that after switching to v1.9.4, the Permission Denied error did show up in the error log, but at that point I had already decided the logs were useless (v1.8.0 silently ignored the problem).
Another problem
This is an edit! Shortly after I applied the above fix, I started getting another error. My backend was getting the requests, but the entire request was being buffered by Nginx before being proxied. This is annoying to me because the backend is async and is made to stream large uploads.
After some research, I found the fix (I put this in the backend proxy's
proxy_request_buffering off;
This tells Nginx to just stream the request to the backend (exactly what I want).
Turtl's new syncing architecture
For those of you just joining us, I'm working on an app called Turtl, a secure Evernote alternative. Turtl is an open-source note taking app with client-side encryption which also allows private collaboration. Think like a private Evernote with a self-hosted option (sorry, no OCR yet =]).
Turtl's version 0.5 (the current version) has syncing, but it was never designed to support offline mode, and requires clients to be online to use Turtl. The newest upcoming release supports fully offline mode (except for a few things like login, password changes, etc). This post will attempt to describe how syncing in the new version of Turtl works.
Let's jump right in.
Client IDs (or the "cid")
Each object having a globally unique ID that can be client-generated makes syncing painless. We do this using a few methods, some of which are actually borrowed from MongoDB's Object ID schema.
Every client that runs the Turtl app creates and saves a client hash if it doesn't have one. This hash is a SHA256 hash of some (cryptographically secure) random data (current time + random uuid).
This client hash is then baked into every id of every object created from then on. Turtl uses the composer.js framework (somewhat similar to Backbone) which gives every object a unique ID ("cid") when created. Turtl replaces Composer's cid generator with its own that creates IDs like so:
12 bytes hex timestamp | 64 bytes client hash | 4 bytes hex counter
For example, the cid
breaks down as:
timestamp client hash counter ------------|----------------------------------------------------------------|-------- 014edc2d6580 b57a77385cbd40673483b27964658af1204fcf3b7b859adfcb90f8b895521597 0012 | | | |- 1438213039488 |- unique hash |- 18
The timestamp is a
new Date().getTime()value (with leading 0s to support longer times eventually). The client hash we already went over, and the counter is a value tracked in-memory that increments each time a cid is generated. The counter has a max value of 65535, meaning that the only way a client can produce a duplicate cid is by creating 65,535,001 objects in one second. We have some devoted users, but even for them creating 65M notes in a second would be difficult.
So, the timestamp, client hash, and counter ensure that each cid created is unique not just to the client, but globally within the app as well (unless two clients create the same client hash somehow, but this is implausible).
What this means is that we can create objects endlessly in any client, each with a unique cid, use those cids as primary keys in our database, and never have a collision.
This is important because we can create data in the client, and not need server intervention or creation of IDs. A client can be offline for two weeks and then sync all of its changes the next time it connects without problems and without needing a server to validate its object's IDs.
Using this scheme for generating client-side IDs has not only made offline mode possible, but has greatly simplified the syncing codebase in general. Also, having a timestamp at the beginning of the cid makes it sortable by order of creation, a nice perk.
Queuing and bulk syncing
Let's say you add a note in Turtl. First, the note data is encrypted (serialized). The result of that encryption is shoved into the local DB (IndexedDB) and the encrypted note data is also saved into an outgoing sync table (also IndexedDB). The sync system is alerted "hey, there are outgoing changes in the sync table" and if, after a short period, no more outgoing sync events are triggered, the sync system takes all pending outgoing sync records and sends them to a bulk sync API endpoint (in order).
The API processes each one, going down the list of items and updating the changed data. It's important to note that Turtl doesn't support deltas! It only passes full objects, and replaces those objects when any one piece has changed.
For each successful outgoing sync item that the API processes, it returns a success entry in the response, with the corresponding local outgoing sync ID (which was passed in). This allows the client to say "this one succeeded, remove it from the outgoing sync table" on a granular basis, retrying entries that failed automatically on the next outgoing sync.
Here's an example of a sync sent to the API:
[ {id: 3, type: 'note', action: 'add', data: { <encrypted note data> }} ]
and a response:
{ success: [ {id: 3, sync_ids: ['5c219', '5c218']} ] }
We can see that sync item "3" was successfully updated in the API, which allows us to remove that entry from our local outgoing sync table. The API also returns server-side generate sync IDs for the records it creates in its syncing log. We use these IDs passed back to ignore incoming changes from the API when incoming syncs come in later so we don't double-apply data changes.
Why not use deltas?
Wouldn't it be better to pass diffs/deltas around than full objects? If two people edit the same note in a shared board at the same time, then the last-write-wins architecture would overwrite data!
Yes, diffs would be wonderful. However, consider this: at some point, an object would be an original, and a set of diffs. It would have to be collapsed back into the main object, and because the main object and the diffs would be client-encrypted, the server has no way of doing this.
What this means is that the clients would not only have to sync notes/boards/etc but also the diffs for all those objects, and collapse the diffs into the main object then save the full object back to the server.
To be clear, this is entirely possible. However, I'd much rather get the whole-object syncing working perfectly before adding additional complexity of diff collapsing as well.
Polling for changes
Whenever data changes in the API, a log entry is created in the API's "sync" table, describing what was changed and who it affects. This is also the place where, in the future, we might store diffs/deltas for changes.
When the client asks for changes, at does so using a sequential ID, saying "hey, get me everything affecting my profile that happened after <last sync id>".
The client uses long-polling to check for incoming changes (either to one's own profile or to shared resources). This means that the API call used holds the connection open until either a) a certain amount of time passes or b) new sync records come in.
The API uses RethinkDB's changefeeds to detect new data by watching the API's sync table. This means that changes coming in are very fast (usually within a second of being logged in the API). RethinkDB's changefeeds are terrific, and eliminate the need to poll your database endlessly. They collapse changes up to one second, meaning it doesn't return immediately after a new sync record comes in, it waits a second for more records. This is mainly because syncs happen in bulk and it's easier to wait a bit for a few of them than make five API calls.
For each sync record that comes in, it's linked against the actual data stored in the corresponding table (so a sync record describing an edited note will pull out that note, in its current form, from the "notes" table). Each sync record is then handed back to the client, in order of occurence, so it can be applied to the local profile.
The result is that changes to a local profile are applied to all connected clients within a few seconds. This also works for shared boards, which are included in the sync record searches when polling for changes.
File handling
Files are synced separately from everything else. This is mainly because they can't just be shoved into the incoming/outgoing sync records due to their potential size.
Instead, the following happens:
Outgoing syncs (client -> API)
Then a new file is attached to a note and saved, a "file" sync item is created and passed into the ougoing sync queue without the content body. Keep in mind that at this point, the file contents are already safe (in encrypted binary form) in the files table of the local DB. The sync system notices the outgoing file sync record (sans file body) and pulls it aside. Once the normal sync has completed, the sync system adds the file record(s) it found to a file upload queue (after which the outgoing "file" sync record is removed). The upload queue (using Hustle) grabs the encrypted file contents from the local files table uploads it to the API's attachement endpoint.
Attaching a file to a note creates a "file" sync record in the API, which alerts clients that there's a file change on that note they should download.
It's important to note that file uploads happen after all other syncs in that bulk request are handled, which means that the note will always exist before the file even starts uploading.
Encrypted file contents are stored on S3.
Incoming syncs (API -> client)
When the client sees an incoming "file" sync come through, much like with outgoing file syncs, it pulls the record aside and adds it to a file download queue instead of processing it normally. The download queue grabs the file via the note attachment API call and, once downloaded, saves it into the local files database table.
After this is all done, if the note that the file is attached to is in memory (decrypted and in the user's profile) it is notified of the new file contents and will re-render itself. In the case of an image attachment, a preview is generated and displayed via a Blob URL.
What's not in offline mode?
All actions work in offline mode, except for a few that require server approval:
- login (requires checking your auth against the API's auth database)
- joining (creating an account)
- creating a persona (requires a connection to see if the email is already taken)
- changing your password
- deleting your account
What's next?
It's worth mentioning that after v0.6 launches (which will include an Android app), there will be a "Sync" interface in the app that shows you what's waiting to be synced out, as well as file uploads/downloads that are active/pending.
For now, you'll just have to trust that things are working ok in the background while I find the time to build such an interface =].
My dad recently gave me a Squeezebox for a present after he'd upgraded his home audio system. I was grateful but ultimately stumped on how to set it up. I read a bunch online about setting it up with the remote it comes with. Oh wait. Mine doesn't have a remote.
Let the fun begin.
Connecting to the Squeezebox
This is harder than it sounds. Initially, I tried wiring it into my router and seeing if it could see it. It could not. This was a WRT54G with Tomato firmware. Maybe the setups just weren't compatible or something ridiculous like that.
So I tried another way I found after poking around a lot: the Squeezebox has a build in wireless SSID that you can connect to in ad-hoc mode (after holding the only button for > 6 seconds and it enters reset/config mode).
However, doing this is finicky and had me tearing my hair out. Ultimately, I got my Windows machine connected to it. When it connects, it gives your machine an IP in the 192.168.1.100-254 range. If it gives you a 169.xxx.xxx.xxx address, it's game over. Try restarting your machine. Try resetting the Squeezebox. Try a rain dance while wearing a tribal loincloth. You just might get that IP.
I recently bought a new router (Buffalo, w/ DD-WRT) and plugged the reset-mode Squeezebox into it (via LAN) and was able to connect to it instantly, so try that first and only go the ad-hoc wireless route if you absolutely have to.
Talking to the Squeezebox
The Net-UDAP software is amazing and wonderful. I don't know what it does under the hood, but it lets you talk to your Squeezebox should you finally get connected to it in some capacity.
Unless you're on Windows. Yes, I know, it supposedly works on Windows but just didn't find the Squeezebox with running
My only solution was to spin up a linux VM with a bridged network adapter and run Net-UDAP there instead. Worked flawlessly. Hopefully you have a linux box laying around, or maybe it will just work for you in Windows. Try the Windows perl binary instead of cygwin's perl.
Anyway, once you've got everything connected, you run the Net-UDAP like so:
cd /path/to/net-udap ./scripts/udap_shell.pl -a 192.168.0.106
Note that the
192.168.0.106is the address for the machine you're running the shell on, not the Squeezebox itself.
You should get a prompt:
Now run the discover command:
UDAP> discover info: *** Broadcasting adv_discovery message to MAC address 00:00:00:00:00:00 on 255.255.255.255 info: adv_discovery response received from 69:69:69:69:69:69 info: *** Broadcasting get_ip message to MAC address 69:69:69:69:69:69 on 255.255.255.255 info: get_ip response received from 69:69:69:69:69:69 info: *** Broadcasting get_data message to MAC address 69:69:69:69:69:69 on 255.255.255.255 info: get_data response received from 69:69:69:69:69:69
Hopefully you get output like that. If you get empty output, see "Connecting to the Squeezebox" =[.
Once that finicky little bastard is
discovered, run
UDAP> list # MAC Address Type Status == ================= ========== =============== 1 69:69:69:69:69:69 squeezebox init
You can see it has an ID of
1so we do:
UDAP> conf 1
Your prompt will now change, and you're in config mode:
UDAP [1] (squeezebox 696969)>
Now you can connect it to your network via wireless by setting values into its config. This will differ network to network, but here are the commands I run to get things working on a network with WPA2-PSK TKIP+AES:
set hostname=jammy interface=0 lan_gateway=192.168.0.1 lan_ip_mode=1 primary_dns=192.168.0.1 set wireless_SSID='my network SSID' wireless_wpa_mode=2 wireless_wpa_cipher=3 wireless_keylen=0 wireless_mode=0 wireless_region_id=4 wireless_wpa_on=1 wireless_wpa_psk='WPA passwordddd' wireless_channel=9 set server_address=192.168.0.113
For a list of the fields and what they mean, type
UDAP [1] (squeezebox 696969)> fields bridging: Use device as a wireless bridge (not sure about this) hostname: Device hostname (is this set automatically?) interface: 0 - wireless, 1 - wired (is set to 128 after factory reset) lan_gateway: IP address of default network gateway, (e.g. 192.168.1.1) lan_ip_mode: 0 - Use static IP details, 1 - use DHCP to discover IP details lan_network_address: IP address of device, (e.g. 192.168.1.10) lan_subnet_mask: Subnet mask of local network, (e.g. 255.255.255.0) primary_dns: IP address of primary DNS server secondary_dns: IP address of secondary DNS server server_address: IP address of currently active server (either Squeezenetwork or local server squeezecenter_address: IP address of local Squeezecenter server squeezecenter_name: Name of local Squeezecenter server (???) wireless_SSID: Wireless network name wireless_channel: Wireless channel (used by AdHoc mode???) wireless_keylen: Length of wireless key, (0 - 64-bit, 1 - 128-bit) wireless_mode: 0 - Infrastructure, 1 - Ad Hoc wireless_region_id: 4 - US, 6 - CA, 7 - AU, 13 - FR, 14 - EU, 16 - JP, 21 - TW, 23 - CH wireless_wep_key_0: WEP Key 0 - enter in hex wireless_wep_key_1: WEP Key 1 - enter in hex wireless_wep_key_2: WEP Key 2 - enter in hex wireless_wep_key_3: WEP Key 3 - enter in hex wireless_wep_on: 0 - WEP Off, 1 - WEP On wireless_wpa_cipher: 1 - TKIP, 2 - AES, 3 - TKIP & AES wireless_wpa_mode: 1 - WPA, 2 - WPA2 wireless_wpa_on: 0 - WPA Off, 1 - WPA On wireless_wpa_psk: WPA Public Shared Key
To see the values already set, run
listwhen in config mode.
Great, so you've set up all your network values and are confident that you've done it all right the first time. Good for you. Now you can run
UDAP [1] (squeezebox 696969)> save_data info: *** Broadcasting set_data message to MAC address 69:69:69:69:69:69 on 255.255.255.255 ucp_method set_data callback not implemented yet at /path/to/udap/../src/Net-UDAP/lib/Net/UDAP.pm line 292. Raw msg: 00 01 02 03 04 05 06 07 - 08 09 0A 0B 0C 0D 0E 0F 0123456789ABCDEF 00000000 00 02 00 00 00 00 00 00 - 00 01 00 04 20 16 5A 05 ............ .Z. 00000010 00 01 C0 01 00 00 01 00 - 01 00 06 00 1A ............. info: set_data response received from 69:69:69:69:69:69
Make sure
save_datareturns a response similar to this. If it doesn't, run it again. In fact, run it again anyway. Run it again…and again…and again.
Great, now run
resetto finalize everything:
UDAP [1] (squeezebox 696969)> reset info: *** Broadcasting reset message to MAC address 69:69:69:69:69:69 on 255.255.255.255 ucp_method reset callback not implemented yet at /path/to/udap/../src/Net-UDAP/lib/Net/UDAP.pm line 292. Raw msg: 00 01 02 03 04 05 06 07 - 08 09 0A 0B 0C 0D 0E 0F 0123456789ABCDEF 00000000 00 02 00 00 00 00 00 00 - 00 01 00 04 20 16 5A 05 ............ .Z. 00000010 00 01 C0 01 00 00 01 00 - 01 00 04 ........... info: reset response received from 69:69:69:69:69:69
All done. Now don't ever change your network setup ever again or you'll have to deal with this shit again. Or just get a fucking remote…
Harry's razors review
This is a review of Harry's razors. I haven't been payed by them at all or been sent any promotional materials. The words/opinions expressed here are my own.
I hate shaving, but even more I hate having facial hair. I find it uncomfortable. I've used a good amount of shaving products throughout my life, and have settled on the standard cartridge razor, which gives (in my opinion) the best shave-time to shave-closeness ratio and offers a near-perfectly smooth face and neck while only taking about 5-8 minutes to complete.
Now, I'm a bit different from other shavers (I think) in that, like my clothing, I keep my razors around far longer than most people. I will use the same razor head for up to four months (basically until it's so dull it just won't work anymore). I usually shave about 3-4 times a week.
"Razor companies HATE him!!"
Up until about 6 months ago, I'd been using mainly Gillette razors. I'd get a big pack of refills at Costco every now and then and work through them over a year or so.
One thing that pissed me off endlessly about Gillette is that by the time I had gone through my set of razor heads, the handle would be obsolete and I'd have to buy a whole new kit (which they charge a lot extra for). So about the third time this happened I decided there had to be a better way than continuously throwing money at Gillette. By the way, their higher-end razors are great, but their practices of having different handles every week is infuriating.
I had previously seen ads for Harry's razors so decided to give them a shot. The company seems small enough that redesigning their handles/connectors every few weeks would bankrupt them, but initial reviews on the razors themselves were good. I picked up the Truman handle with a set of blades.
Enough babbling, here's a pros/cons list:
The good
- The handle is solid, and has a nice weight to it (as opposed to plasticy and bendy).
- The razor heads snap in nicely, without any play.
The razors have an open back.
I can't say enough how great this is. All razors I have ever used hide the back of the razor with a bunch of plastic.
With a covered back, most of the hair you shave off over the course of the blade's life ends up staying inside the razor head. You can beat it against the sink or blast it with water all you want, there's always going to be a bunch of old, moldy hair stuck inside your razor.
With Harry's, the back is open and a quick rinse under the faucet or showerhead gets rid of all hair on the blade. I cannot stress how easily it is both to unclog and to clean the blades.
- The blades are easy to unclog. Because of the open back, you can easy rinse the blades to get rid of any hair. This makes them ideal for shaving areas with lots of hair, and while Harry's is marketed towards men I see no reason why these razors wouldn't be able to work for women as well (and for a lot cheaper than women's razor heads).
The blades last a long time. My maximum is about four months on one blade. This is made easier by how well the blades clean up after use (once again, thanks to the open back). This means for me that a 4-pack of blades should last about a year (sorry, Harry).
They do get noticeably duller after about 4-5 uses, but they continue funcitoning admirably for many, many uses. Once again, I shave maybe 3-4 times a week. So conservatively (3 shaves/week over 12 weeks), that's about 35-40 shaves per razor head.
The bad
- The handle is slippery. I routinely drop the handle while shaving. Having ugly rubber grips would detract from the look, but make shaving a lot easier.
- The razor heads are somewhat bulky. I find it incredibly hard to reach places of my neck/face that the Gillette razors would glide over no problem. I think if they found a way to remove the thickness of the plastic housing the blades themselves, and possibly make the blades stick out of the housing by a few more micrometers, this would make shaving a lot easier.
- The razors have a strange pulling feeling when shaving, somewhat like pulling a rubber eraser across your face. This is not painful or irritating, just somewhat odd feeling.
- The piece of plastic that gives the blade "spring" when pushed against your face wears down over time, making it feel spongy (and eventually requiring you to hold the razor flat against your face with a finger/thumb on the hand holding the handle). Not a huge deal, and probably not an issue for most people since razor re-use isn't a 3-4 month affair.
The pros outweigh the cons easily.
Definitely would recommend this brand. So far, they haven't changed the handle or blade connectors at all. The blades work admirably. They are a bit bulky, but easy to clean and unclog. The whole setup also looks really nice.
As mentioned, while Harry's is marketed towards men, this setup could easily work great for women (or anyone) who wants to shave arms/legs as well because of the easy unclogging.
Hackernews: a typical day
How I rewrote my IRC bot in just 400K lines of Javscript (uselessshit.github.io)13 points by jobless_wanker | 2 comments
Ask PG: What time is it?569 points by lostmywatch | 430 comments
Why I stopped holding the door open for people and you should too (medium.com)433 points by condescendingprick | 103 comments
Ask HN: What to do if you get violent diarrhea during a VC pitch?892 points by stevejobsno1fan | 504 comments
Silicon Valley is NOT in a bubble (medium.com)133 points by vc_stroker | 92 comments
How I saved 20 microseconds per request by spending eight weeks rewriting my entire app (whocares.io)4 points by pinchitout | 0 comments
Swift is so cool. It's sooo much better than Obj C. Right guys? (stackoverflow.com)666 points by applerules | 324 comments
Ten reasons why straight white males are actually much more oppressed than anyone else (medium.com)5981 points by cisguy1488 | 890 comments
Something Something brogrammer amirite?? (nytimes.com)366 points by loveskarma | 42 comments
Ask HN: My boss made an offhand remark. Should I steal all his code and start a competing company?402 points by whiner49er | 12 comments
OH MY GOD THERE'S SOMETHING CALLED MALWARE HAVE YOU GUYS HEARD OF THIS? (nytimes.com)866 points by linkbaitr | 234 comments
How I sold Javscript by using Javscript to Javscript Javscripts (standard.github.io)133 points by luvjs | 132 comments
Show HN: a Javscript to x86 assembly transpiler in just four lines of Python (github.com)8033 points by gassy77 | 482 comments
How I threw out my Macbook and started coding using only an iPhone (medium.com)210 points by complete_douche | 153 comments
Ask HN: One of my employees stole all our code and IP and started a competing company. What do I do?17 points by bigpapa | 3 comments
NetTech Solutions acquired by Webbbbblerbler for $1.3B (screw-our-customers-we-got-acquired.nettech.com)399 points by cya | 144 comments
Show HN: I ran over my pet frog with my office chair and a bunch of Javscript squirted out (github.com)4003 points by frogjerk | 884 comments
New transistor the size of a car will revolutionize macroprocessors (time to market: 18 years) (intel.com)12 points by almost_there | 2 comments
How I got fired after throwing out my Macbook and started coding using only an iPhone (medium.com)302 points by complete_douche | 69 comments
Scaling a 47mb Postgres database using only 18 sharded/replicated servers (toomuchtime.github.io)999 points by premature_ejoptimizer | 503 comments
Why you should use Github for everything or you are a complete idiot (trust.me)349 points by zealotry101 | 202 comments
Github considered harmful (moreblogs.com)402 points by i_didnt_rtfm | 239 comments
[Flagged] Why torturing animals for scientific gain is a bad idea0 points by progress_h8er | 0 comments
What I learned from not wiping my butt for 19 days (medium.com)344 points by justcuz | 194 comments
Rewriting our single-threaded time tracking software in Erlang (and why Erlang sucks) (dev-xpert.com)45 points by windbaggio | 4 comments
Everything Apple does is amazing. If you criticize them in any way, I WILL downvote you (apple-buttboy.com)456 points by blowhard | 320 comments
MongoDB raises a $4.7 trillion series V (blog.mongodb.com)320 points by money_talk | 255 comments
How MongoDB destroyed my life and I now live under a bridge giving handjobs for scraps of food (brij.ly)10 points by bridge_tosser | 3 comments
Ask PG: Do these shoes make my butt look big?2045 points by no_ragrets | 1057 comments
Apple does something incredibly mundane that ten companies have already done (apple.com)4388 points by moar_applez | 2000 comments
WeBlow is hiring an interview specialist1 hour ago
Ask HN: Why won't women date me? Is it because they find me too attractive?707 points by dnd_dragonlord | 400 comments
Intro to programming (1976) (oldcrap.com)390 points by i_post_irrelevant_trash | 76 comments
Show HN: I made a useless VM that nobody cares about at all in Python (github.com)303 points by lovemeplease | 198 comments
The tech industry is no longer sexist (medium.com)302 points by whitemale1212 | 86 comments
Slicky's HR department is hiring! Help change the world! (petite blondes w/ large naturals only)8 days ago
Using bloom filters to process an array of seventeen elements (standford.edu)122 points by i_can_read | 100 comments
A Python to Javscript compiler generator framework in 70K lines of obscure Ruby code (github.com)412 points by ruby_is_the_way | 256 comments
Haskell is superior to Lisp because monads. If you disagree you're wrong. (metabullshit.io)313 points by never_tried_lisp | 102 comments
Why you should build your entire infrastructure on top of my shitty weekend side project (datatoilet.github.io)923 points by theone | 402 comments
How I used Hadoop to process a 600kb CSV file (csvcrunch.github.io)682 points by i_heart_bigdata | 211 comments
Ask PG: Will you be my best friend?569 points by butickler | 430 comments
Taxes are literally rape (libertarian-news.com)780 points by bootstrappy_mctrustfund | 599 comments
Seven reasons aging should be considered a disease (and why I should live forever) (obscureblog.com)450 points by narcissist_moron | 1023 comments
How I started a successful company with only a high school diploma and an $8M trust fund (medium.com)870 points by webepreneur | 377 comments
Switching to Jekyll
I've decided to get rid of Wordpress that was on blog.killtheradio.net as well as the PHP site at killtheradio.net and combine both into a Jekyll blog on the http://killtheradio.net/ domain.
Moving to Jekyll from Wordpress took a few days, but I got all my posts moved, edited to fix formatting errors, and switching all discussions to use Disqus (and of course imported the old comments).
This site now works on mobile devices as well.
There are a few reasons for all this, but mainly I've been intrigued by the idea of static site generators for a while now and wanted to try it out. Also, as time went on, I grew to desipise Wordpress, including all the idiotic security vulnerabilities I suffered through week after week. It's a slapped-together platform, and the plugins for it are even worse.
There's a certain thrill to authoring and publishing new content using only the command line.
A recent Cygwin upgrade left me ripping my hair out, because none of my npm or grunt commands would work. They spat out the error
Unknown system errno 203
Helpful, right?
The fix
In your Cygwin
~/.bash_profilefile (create it and
chmod 755 .bash_profileif it doesn't exist):
export TMP=/tmp export TEMP=$TMP
This did the trick for me. Special thanks to this github comment.
This will be short but sweet. When deploying some new servers today, I ran into a problem where no matter what, sudo bitched about syntax errors in my sudoers file. I tried a bunch of different options/whitespace tweaks/etc and nothing worked.
deploy ALL= NOPASSWD: monit restart my-app
Looks fine right? Nope.
Use absolute paths
This fixed it:
deploy ALL= NOPASSWD: /usr/bin/monit restart my-app
Everyone in the world's advice is to "just use visudo" but I couldn't find any info on what was actually causing the syntax error. Hopefully this helps a few lost souls.
Composer.js v1.0 released
The Composer.js MVC framework has just released version 1.0! Note that this is a near drop-in replacement for Composer v0.1.x.
There are some exciting changes in this release:
- Composer no longer requires Mootools... jQuery can be used as a DOM backend instead. In fact, it really only needs the selector libraries from Moo/jQuery (Slick/Sizzle) and can use those directly. This means you can now use Composer in jQuery applications.
- Controllers now have awareness of more common patterns than before. For instance, controllers can now keep track of sub-controllers as well as automatically manage bindings to other objects. This frees you up to focus on building your app instead of hand-writing boilerplate cleanup code (or worse, having rogue objects and events making your app buggy).
- The ever-popular RelationalModel and FilterCollection are now included by default, fully documented, and considered stable.
- New class structures in the framework expose useful objects, such as Composer.Class which gives you a class structure to build on, or Composer.Event which can be used as a standalone event bus in your app.
- There's now a full test suite so people who want to hack away on Composer (including us Lyon Bros) can do so without worrying about breaking things.
- We updated the doc site to be much better organized!
Breaking changes
Try as we might, we couldn't let some things stay the same and keep a clear conscience. Mainly, the problems we found were in the Router object. It no longer handles hashbang (
#!) fallback...it relies completely on History.js to handle this instead. It also fixes a handful of places where non-idiomatic code was used (see below).
Composer.Router: the
on_failureoption has been removed. Instead of
var router = new Composer.Router(routes, {on_failure: fail_fn});
you do
var router = new Composer.Router(routes); router.bind('fail', fail_fn);
- Composer.Router: The
register_callbackfunction has been removed. In order to achieve the same functionality, use
router.bind('route', myfunction);.
- Composer.Router: The "preroute" event now passes
{path: path}as its argument instead of
path. This allows for easier URL rewriting, but may break some apps depending on the old method.
- Composer.Router: History.js is now a hard requirement.
Sorry for any inconvenience this causes. However, since the rest of the framework is backwards compatible, you should be able to just use the old Composer.Router object with the new framework without any problems if you don't wish to convert your app.
Have fun!
Check out the new Composer.js, and please open an issue if you run into any problems. Thanks!
- The Lyon Bros.
I recently embarked on a project to rebuild the main functionality of Turtl in common lisp. This requires embedding lisp (using ECL) into node-webkit (or soon, Firefox, as node-webkit is probably getting dumped).
To allow lisp and javascript to communicate, I made a simple messaging layer in C that both sides could easily hook into. While this worked, I stumbled on nanomsg and figured it couldn't hurt to give it a shot.
So I wrote up some quick bindings for nanomsg in lisp and wired everything up. So far, it works really well. I can't tell if it's faster than my previous messaging layer, but one really nice thing about it is that it uses file descriptors which can be easily monitored by an event loop (such as cl-async), making polling and strange thread < --> thread event loop locking schemes a thing of the past (although cl-async handles all this fairly well).
This simplified a lot of the Turtl code, and although right now it's only using the nanomsg "pair" layout type, it could be easily expanded in the future to allows different pieces of the app to communicate. In other words, it's a lot more future-proof than the old messaging system and probably a lot more resilient (dedicated messaging library authored by 0MQ mastermind beats hand-rolled, hard-coded simple messaging built by non-C expert).
Windows GUI apps: Bad file descriptor. (or how to convert a GUI app into a console app for easy debugging)
Lately I've been neck-deep in embedding. Currently, I'm building a portable (hopefully) version of Turtl's core features in ECL.
Problem is, when embedding turtl-core into Node-webkit or Firefox, any output that ECL writes to
C operation (write) signaled an error. C library explanation: Bad file descriptor.
Well it turns out Windows doesn't let you write to
STDOUTunless a console is available, and even if using msys, it doesn't create a console for GUI apps. So here's a tool (in lisp, of course) that will let you convert an executable between GUI and console.
Seems to work great. Special thanks to death.
It can be nice to access your FF extension's variables/functions from the browser console (
ctrl+shift+j) if you need some insight into its state.
It took me a while to figure this out, so I'm sharing it. Somewhere in your extension, do:
var chromewin = win_util.getMostRecentBrowserWindow(); chromewin.my_extension_state = ...;
Now in the browser console, you can access whatever variables you set in the global variable
my_extension_state. In my case, I used it to assign a function that lets me evaluate code in the addon's background page. This lets me gain insight into the background page's variables and state straight from the browser console.
Note! This is a security hole. Only enable this when debugging your extension/addon. Disable it when you release it.
Newer | Older


text:
New to Backcountry Coalition?
At Backcountry Coalition we strive to provide our visitors and members with a place to share their experiences and love for backcountry skiing. Our site is built from our member base and grows with them. Check out our Areas & Descents section for detailed information regarding ski areas, and some of the routes that our members have discovered.[learn more]
From the Forum
Calendar »
Latest News
12th Annual Beacon Bowl to take place at Arapahoe Basin Ski Area
Dobish - 01/23/2014
Arapahoe Basin raises over $10,000 for Colorado Avalanche Information Center
backcountry coalition - 02/14/2013
Arapahoe Basin to host Backcountry Preparedness Days
backcountry coalition - 02/06/2013
Friends of Berthoud Pass On-Snow Registration
backcountry coalition - 02/06/2013
The Colorado Avalanche Information Center is enduring a game of hot potato
backcountry coalition - 01/17/2013
- 12th Annual Beacon Bowl to take place at Arapahoe Basin Ski Area
Marketing and Sales Director | 98272
Tue, 24 May 2016 14:40:00 EST
US - WA - Monroe, 7-10 years of experience Bachelor's degree in marketing, business, sales, or equivalent Position: Marketing & Sales Director &nb
Retail Sales Associate | Montbell Boulder Store
Sat, 21 May 2016 09:35:00 EST
US - CO - Boulder, Mont Bell Boulder is hiring for sales associate positions. We are looking for part time employees with the opportunity for fulltime.General Summary:As a sales associate, you will provide a complete a
Independent Sales Representative/ Agency | Rocky Brands, Inc.
Fri, 20 May 2016 11:01:00 EST
US - Nationwide, Potential candidates should have an established account list of mid-tier and high end footwear and apparel retailers. Candidates should also possess a minimum of five (5) years of footwear and/o
Warehouse Operator | Fishpond Inc.
Thu, 19 May 2016 16:34:00 EST
US - CO - Denver, Major requirements: -High Integrity and high Energy -Work in a team environment -Receive ordered goods -Ensure adequate storage of merchandise -Fulfill and pack orders in a timely manner -
Part-time Seasonal Customer Service | Johnson Outdoors Gear, Inc.
Thu, 19 May 2016 14:14:00 EST
US - NY - Binghamton, High School Diploma or GED Previous office experience helpful; customer service experience preferred. Previous JD Edwards or similar experience helpful. Computer proficiency req
- Marketing and Sales Director | 98272
Backcountry Skiing Areas
Featured DescentColorado » Front Range
East Portal Trailhead
We skied this in a storm and it was our first time up there. So I didn't get a good look around. We skied the north east facing aspects just to the southwest of the first large lake in the forest lakes area. We skied mellow terrain but there looked like there was steeper chutes above us towards the ridgeline to our south.
A better area to ski might be if you take a left off the trail towards forest lakes and head towards arapaho lakes, up trail 818 as labeled on the nat geo trails illustrated map (#103 for this area). It appears you gain elevation more quickly and may have more sustained, slightly steeper terrain - which would be an improvement over the aspects described above.[more]
Popular searches: Berthoud, Beginner, St. Mary's Glacier Advanced Search

subset: commoncrawl


text:
Bring a buddy.4.50 / 5.00 6,647 Views
Yugi and Kaiba have a duel to the death!4.48 / 5.00 26,430 Views
Vampire Pixel in the Neon City
A sinister deal is underway in the underbelly of Neon City4.39 / 5.00 9,043 Views
I keep coming back here. Make it stop.
liked it.
hated it.
halluzinated it.
i hope.
am i awake?
did i not see this a few years ago with 4 hoffmanns and a bottle of cuatro plumas?
am i here?
Well, I didn't need sleep tonight anyway.
But in all seriousness, I think this is the sort of animation style we need; it made the joke and gave the animation loads of personality.
your animation style reminds me of the hallucination scene from Beavis and Butthead Do America.
Your animation style is AWESOME!!


text:
Search for:
Recent Comments
- Khaled on [TomatoCart] Enabling Rich Snippets for Products
- dev on Manage Your Database with SSMS 2012
- Hafiz on How to change the number of recently viewed products in nopCommerce
- Persys on What is Attracta and How Can It Help Me?
- G.Laflamme on How to Easily Receive 10% Off Your Hosting Account By Linking to Arvixe
Tagsadd adding Alfresco arvixe Arvixe Elgg Hosting bucket change clip ClipBucket CMS cPanel/Linux Hosting create dolphin Drupal elgg Elgg Hosting elgg tutorials how how to install joomla Joomla 3 module MODx mojoPortal New nopcommerce panel php SE4 setup set up site socialengine softaculous tips to TomatoCart use using video web website websitepanel WordPress
Tag Archives: ArrowChat Button
SocialEngine 4: Add Online Button for ArrowChat
Wednesday,1 January 2014 06 00 AM
This article will help you add an "Online /Offline" button that, when it's clicked, will open the chat with ArrowChat. To add this, follow these steps: 1) Open the file: …
Tags: 4, add, adding, arrow, ArrowChat, ArrowChat Button, button, chat, engine, how to, online, Online Button, SE, SE4, social, socialengine | Posted under SocialEngine | 2 Comments


text:
Find Solutions
Get help with ...
Find a new or better ...
Popular Videos
This Is Why People Retire Poor
Summer Maintenance Every Homeowner Should Do
The Single Biggest Retailer Rip-Off
The Golden Rules of Fraud Prevention
Recent Videos
Hacks: Tumble Dry Shoes Without The Tumble
Questions to Ask Before You Get Married
The Golden Rules of Fraud Prevention
Smartphones have become a part of our lives — maybe a little too much so, judging by a new study.
In a survey conducted by Harris Interactive, nearly one in 10 smartphone-using adults admitted to diverting attention to their phone while they were having sex. Among young adults the figure doubled, Fox News reported.
That may be the most shocking place for using a smartphone, but it's not the only odd or inappropriate one people confessed to:
- In a movie theater – 35 percent.
- During a dinner date – 33 percent.
- At a child's or school function – 32 percent.
- In a place of worship – 19 percent.
- While in the shower — 12 percent.
There's not much we can do to help if your lover catches you with the phone and smashes it. But we have advice in the video below for when you get it wet:
Of course, we don't recommend showering with any kind of electronic device. The survey says nearly three-quarters of people keep their smartphones within 5 feet a majority of the time, but it's an unnecessary risk for a device that costs hundreds of dollars to replace.
Another reason people may keep phones nearby is fear for their personal information and money. ZDNet says 65 percent worry their personal information could be stolen, and a third worry someone will use their social media profiles.
Of course, keeping it close doesn't mean you have to fiddle with it constantly. Where do you think smartphone use is appropriate? Share your thoughts on our Facebook page.
More Money Talks News
Now Hiring: Professional Cuddlers (No Joke)By Krystal Steinmetz
Discover the Top Memorial Day Weekend SalesBy Karla Bowsher


text:
face, Smile, Smiley, tounge, grin, Pizza, fast food, burger, tasty, eat, Hamburger, hunger, Food, comic, funny, cheese, salami, cheeseburger, Meat, Design, cool, witty, delivery, order, hungry
This great custom product in kelly green from our department Men and T-Shirt category can be printed just for you in the size and style you like. The design funny_fast_food was created by Style-o-Mat and uploaded to Spreadshirt for you to have printed on a T-Shirt. Next to a host of other great customized designs, you can find this funny_fast_food design in Spreadshirt's Comic category. If you are interested in topics like Cool or Face, then you'll love funny_fast_food designs by Style-o-Mat. Spreadshirt also offers a huge selection of custom t-shirts, hoodies and accessories for the category Comic as well as top Food clothing. Style-o-Mat's designs have already impressed many of our customers, so we are sure that we've got right stuff for you! Spreadshirt is your destination for great designs of all kinds – whether it's Cool, Face or Food. We are sure that you will find something nice in our shop, there are many amazing custom Comic t-shirts, hoodies, or accessories for you to find! Tags: Design ID: 11827724
PAPA The Man - The Myth - The Legend Designed by PhLong
tardis T-Shirts Designed by killakam
Millennium Falcon Blueprint Designed by Mackentee
Reagan Bush 1984 84 republican Designed by boogiemonst
Paper Airplane T-Shirts Designed by NineAteTin
AD/HD T-Shirts Designed by AfternoonTee
Pulp Wars Designed by DesmondDesign
Official Notorious RBG T-Shirts Designed by Notorious RBG
Philadelphia Designed by fabianbross
This premium t-shirt is as close to perfect as can be. It's optimized for all types of print and will quickly become your favorite t-shirt. Soft, comfortable and durable, this is a definite must-own and a Spreadshirt recommended product.
still to fill


text:
Posts from Fruit
This Strawberry Shortcake Is Drunk on Rosé
Delicious Links
Happy National Wine Day! Let's celebrate with strawberry shortcake. But this, my friends, is not just any ol' strawberry shortcake — this version has rosé-soaked strawberries.
3 Ways to Fancy Up Lemonade with Just 1 Ingredient
Recipe Templates from The Kitchn
On a warm day, there's nothing quite like the refreshment you get from sipping a glass of lemonade. There's something about it that just makes you slow down for a minute and soak up the sunshine. Its sweet tang is perfect on its own, but I dare you to go beyond the usual — add a little sparkle and extra flair by simply stirring in just one ingredient.
Recipe: Rhubarb-Almond Snack Cake
Recipes from The Kitchn
Vibrant and tart, rhubarb is one of my favorite signs of spring. Rhubarb season is fleeting, though, so when you see the pink stalks, grab all you can! It's a great ingredient to incorporate into cake — especially a dense, rich cake chock-full of almond paste and eggs like the one here.
Recipe: Riesling Rhubarb Crisp Layer Cake
Stylish Layer Cakes from Tessa Huff
This Riesling rhubarb crisp cake has it all: tender white cake, rhubarb-strawberry compote and matching buttercream, a crispy oat crumble, and a fanciful, ruffled finish. It's the perfect cake to bake when you're feeling like showing off your cake-baking skills or looking for a weekend project to tackle when you want to spend the day in the kitchen.
How Many of These Ancient Varieties of Fruits and Vegetables Do You Recognize?
Are You Gonna Eat That?
Back in the day, there was more to food than a pretty face. People ate and cooked with things because they tasted good — not because they were the secret to getting more followers on Instagram. In fact, some of the "vintage" versions of today's popular produce are pretty dang unsightly. Need proof? Watch this video and take a peek at the fruits and vegetables of yore.
Recipe: Lemon Supreme Layer Cake
Stylish Layer Cakes from Tessa Huff
When you're looking for something beyond vanilla, but still aiming to please a crowd, try a classic lemon cake. Something as simple as lemon might get overlooked in a world of salted caramel, velvety raspberry, and matcha-everything, but this lemon supreme cake is anything but ordinary. With three layers of lemon-soaked cake blanketed in satiny vanilla buttercream, this little cake makes for an exceptional dessert for anything from a bridal brunch to afternoon tea to a birthday party.
Chill Out with This Pineapple-Chamomile Iced Tea
Delicious Links
With warm weather on the horizon, I've got my eye on this refreshing iced tea recipe. Between the calming chamomile, fragrant fresh basil, and sweet pineapple chunks, this is just the drink to help you chill out on hot days.
Any Tips for a First-Time Apple Pie Baker?
Good Questions
Q: I'm making my first — yes, very first — apple pie. I've baked lots of other goodies, but I've never tried making an apple pie. My partner baked one last night; it was beautifully cooked on top, but not the bottom. I'd like to avoid those issues. Any advice?
Sent by Louise
Recipe: Towering Strawberry Shortcake
Stylish Layer Cakes from Tessa Huff
Strawberry shortcake is the ambassador of summer, showing off juicy berries like jewels. It's usually a humble dessert built on a biscuit, but here we turn it into a towering showstopper of cake, whipped cream, and fresh strawberries. Yet it brings drama without fuss; this is layer cake the easy way.
How Do I Prevent Fruit from Sinking to the Bottom of Baked Goods?
Good Questions
Q: When making fruit cake, muffins, or cakes, how do you keep fruit and nuts from sinking to the bottom?
Sent by Marvin


text:
G'day mate! Kate Gosselin flees to Australia days after starting coupon job... to hang out with Steve Irwin's family at the zoo instead
Kate Gosselin has temporarily fled her daily duties and travelled to the other side of the world to hang out with Bindi Irwin.
The 36-year-old mother of eight was spotted at the Australia Zoo today in sunny Brisbane today to celebrate Steve Irwin day with the deceased crocodile hunter's family.
It's an odd time to take an international trip, given that she officially started her new job as a blogger for CouponCabin.com just four days ago.
Kate minus 8: Kate Gosselin leaves her family at home to hang out with the Irwin clan in Australia today
The former reality star is reportedly
desperate to be back in the spotlight, given that the last episode of
her TLC show, Kate Plus 8, aired on September 12.
with Steve Irwin's widow, Terri, daughter Bindi, 13, and son Robert, 7,
on a day in his honour death seems like a foolproof way to realise that
Gosselin was
dressed like a zoo-keeper in a standard taupe uniform, but her flawless
make-up and perfect hair gave away her celebrity status.
Adorable! The 36-year-old former TV star cuddles a little koala during her trip to the Australia Zoo
Totally cute: The blonde mother and a zoo worker cuddled wild animals on Steve Irwin Day
While attending the festivities, she held a koala, made a hand print on the zoo's walk of fame and posed with the Irwins.
She also warmed up the crowd, running out to meet her audience with her hair flying out behind her.
She couldn't resist tweeting her excitement at taking part in the charitable event, which benefits wildlife.
Famous Kate: The mother of eight is forever going to be remembered in Brisbane
Kate plus five: The former reality star puts her paws all over the Australia Zoo
'GM from sunny and warm Aus!!! am
looking forward 2 Steve Irwin Day tomorrow! Always amazed by the beauty
of this, my 2nd favorite country! :)' she tweeted yesterday.
She did remember to mention missing her kids, though her new job was not included in her Twitter missive.
'Hello! Here in Aussieland &
having SO much fun! Wish my kids were here 2 - greatly missed! FYI will
be @Aus Zoo all day Tues. Would love 2c u there!' she wrote.
What a croc! Kate Gosselin takes some time to feed the crocodiles...from a safe distance away
The opening act: Gosselin opens Steve Irwin Day at Australia Zoo to much fanfare
Exhausted: All that running shouldn't have tired Kate out, given that she's usually chasing after her kids
It is Kate's second time in Australia
this year. She originally brought her brood of eight to visit in April,
which is where she met the Irwins.
Considering that the family went
camping, boating, met Australian aborigines and fed elephants at the
Zoo, Kate's return trip seems to be much tamer.
Her kids are currently home in Reading, Pennsylvania with father Jon.
Reading is also where Kate has recently been hawking coupons for her new job wearing nothing more glamorous than a tracksuit.
First day of work: Kate started her first official day of work at CouponCabin.com just four days ago
- Adorable moment dutiful dog carries home 'drunk' cat
- Kid stands up to bully and amazingly takes him down using...
- 19th century coffin containing little girl found under SF...
- Bruised: Amber Heard leaving court in downtown Los Angeles
- Woman refuses to give $5 back after it fell out of man's...
- Student delivers the most powerful speech you will ever hear
- Shocking moment P-47 Thunderbolt crashes into Hudson River
- What about me? Dog gets jealous over her owner's newborn...
- 'Rosie, what you talking about?': Adorable pup seems to talk
- Racist Chinese detergent ad turns black man into a 'clean'...
- Man snaps at beggar upon discovering he drives new Toyota...
- 'SexExpert' Jarly performing a sultry lap dance
- Amber Heard is pictured smiling hours after Depp's 'iPhone...
- EXCLUSIVE: 'He's fine' - Johnny Depp's sister speaks out...
- Woman wins permission to remove her dead partner's testicles...
- Mutiny on the Harmony: The biggest cruise ship in the world...
- Why I decided to give up my life in London and become a goat...
- Who is Miranda? Mystery of the young blonde girl who has...
- Tragedy as body of pilot, 56, who crashed his vintage WWII...
- 'Crack stick' cooked up in cells, attacks over hash browns...
- 'I was molested and passed around': Corey Feldman describes...
- Corey Feldman defends sharing Corey Haim rape story in...
- Caught on the camera: The harrowing moment the remains of...
- Confessions of a voyeur: The married father who spied on...
Comments (68)
Share what you think
The comments below have not been moderated.
The views expressed in the contents above are those of our users and do not necessarily reflect the views of MailOnline.
We are no longer accepting comments on this article.


text:
Bring a buddy.4.54 / 5.00 9,643 Views
Yugi and Kaiba have a duel to the death!4.48 / 5.00 35,245 Views
Vampire Pixel in the Neon City
A sinister deal is underway in the underbelly of Neon City4.34 / 5.00 11,075 Views
Loved the dubbing and its purpose to entertain people. Now I want to get A Big Black Guy Named Bass for myself, LOL! XD
If I had a big black guy named Bass to protect my car, I wouldn't need a car alarm.
get out of da car, mother f*cker! XD XD XD XD XD
get out of da car, mother f*cker! lol


text:
Our Clients
2605, 2016
Spotfire 7.6 is here: TIBCO WOW!
At the TIBCO NOW conference in Las Vegas, in the week of 16 – 19 May, TIBCO released version 7.6 of Spotfire. A load of things has been changed and added, and it all makes
1305, 2016
DevOps: Tools or Mindset?
On May 10th 2016, TMNS hosted a meeting in our The Hague office for the Agile Holland Meetup, a group of enthusiastic professionals that discuss agile related topics on a regular basis. Hosting this event
305, 2016
10 HR tips for managing a consultancy firm
Managing a consultancy firm is different from running a "normal" business. If all is well then your primary assets, your highly paid consultants, are deployed at your customers locations, outside of the direct scope of your


text:
We offer thousands of vintage microcomputer items, keyboards, motherboards, 8080, Z80 6800 OR 6502 systems and several 8088 80286 80386 804...read more
This Store seller is currently away. Please add this Store to your Favorites and come again.
0 results found in Vintage Modems & RoutersSee all items in this store


text:
Last Activity: 23rd May 2016 09:07 PM
About Me
- About tagari
- Service provider
- Greece - Vodafone (Panafon)
- Home country
- Greece
- Devices
Most Thanked
Post Summary
Kernel 031 is official! m - mainline => stock CPU 1.51 GHz u - mainline => up to 1.84 GHz w/450 MHz GPU - Release 31 (01/03/2013) * core scheduler optimizaitons * cortex-a15 flags added for krait cpus * ARM LoUIS cache API added * fastcharge dri...
I'm sorry if it's offtopic,but i had the MHC19I via OTA late last night, and the actual improvement i've noticed,is that now all 3 button of the Xiaomi Piston 3 earbuds are responding and working fine.. Fully stock ROM,only unlocked bootloader. Ho...
After fiddling around with the ROM(which is my daily driver now) i couldn't help but try around different custom kernels...What surprised me the most is that none (i've tried hell's,ak,faux,semaphore,franco's, all at stock settings) really excelle...
I came from the nexus 7 same as you! I know mate,i remember you from the boards over at N7!! I've definitely tried a lot of your stuff,i'm just not as active in positng as i'd like to be..! I was skeptical at first, wasn't sure if i'd like to ...
I've flashed the leaked image on my 32GB N7(2012) and i'm already thinking of reverting back to 4.4.4 ... It freezes even with one application only running...Haven't rooted it yet but i've never seen my N7 performing so awfully...


text:
|Price (10g)
|Rs. 27740.00 (-1.32%)
|Rs. 29400.00 (-0.31%)
|Rs. 28400.00 (0%)
|Rs. 28880.00 (0%)
|Rs. 27400.00 (-0.9%)
|Rs. 28000.00 (0%)
|Rs. 28110.00 (-0.18%)
Higher revenues have helped Norwegian Air Shuttle ASA return to profit in the fourth quarter of 2012.
Europe's fastest growing budget airline says Friday it made a net profit of 23.6 million kroner ($4.3 million) during the period in contrast to 2011's equivalent loss of 133 million kroner.
Revenues spiked more than 22 percent to 3.1 billion kroner ($563 million) from 2.5 billion kroner.
CEO Bjoern Kjos says he is pleased with the results as the airline expanded in 2012 when it took delivery of 13 new Boeing 737-800 planes.
It plans to expand its fleet this year with 14 more. It is also buying three Boeing 787 Dreamliners as it launches long-haul flights to New York and Bangkok.
He adds that Norwegian's load factor and traffic growth remain "satisfactory."


text:
*Even though"RHOA" star Kenya Moore received an "A" for "Reality Star Quality" from Wendy Williams, she states the eviction accusations she reported, are false.
Our associate, LaCora Stephens, caught up with Kenya on the BET Awards 2013 red carpet, and asked her about the rumors/reports.
"People like to repeat information that isn't true," kenya stated. "It's unfortunate because someone falls victim to that and it happens to be me. I certainly will have my day in court next month. I am a great tenant and I pay all my bills."
On another, more personal note, when asked if she had a "main squeeze," she responded:
"I have 'someone' that isn't with me today, but I brought my baby brother instead, Brandon DeShazer. Both agreed that BET continues to build and get bigger and better every year like the Hulk. Kenya exclaimed that if anything could happen during the award show, she would love for Beyonce to pop up on the stage! Of course this wasn't a shocker.
However, the big surprise was when Kenya said she is not currently a part of season six of "Real Housewives of Atlanta." Whoa! What?
When LaCora asked what the deal was, Kenya simply said, "You know what? I'm not sure; your guess is as good as mine."
And with a response like that, there's definitely going to be a lot of guessing as to what her status is for season 6.
All we can say is, hmmm…
Want to read more articles like this one? Subscribe to EURnewsletter.
Got A News Tip or Video You Want to Share? Contact us HERE.
Recent Posts
- Inside The Obamas' Rumored D.C. Rental Home After Presidency (Pics)
- Ohio Detectives Caught on Tape Calling Trayvon Martin N-Word
- Kim & Kanye Threaten Former Bodyguard with $10M Lawsuit
- The Weeknd, Belly Nix 'Kimmel' Performance Over Donald Trump Appearance
- T.I. New York City Concert Shooting: 1 Dead, 3 Wounded
- Generation Rent: How Young Families are Adapting to Apartment Living
- THE (05-26-16) EURweb Free-4-All Page
- EUR on the Scene: 2nd Annual Alma Del Barrio Salsa Festival
- People of Note: Paying Tribute to Michael
- The Legend Continues: Mathew Knowles, Beyonce' & Blue Ivy
- Discover More Stories on EURweb: Click Here


text:
Stories Tagged "history": Page 3
Displaying 1 result.
Displaying 1 result.
Related Tags
- engineers
- books
- writing
- principals
- math
- students
- community colleges
- World War II
- leadership
- teachers
- science
- literacy
- libraries
- technology
- adult education
- reading
- schools
- art
- politics
- literature
- education
- Social Studies
Related IPTV Video
Lewis and Clark State ParkExplore what there is to see and do, as well as the important history you can learn, at Lewis and Clark State Park... 03:58 Play Video
Fair Flashback: Spectacles | Iowa State Fair 2014Covering the Iowa State Fair for over four decades has allowed our cameras to capture some pretty incredible stuff.... 02:36 Play Video
Wartime Fair History | Iowa State Fair 2013Learn some interesting historical facts about the Iowa State Fair during wartime. 05:26 Play Video
Photos of the Iowa State Fair 2013Take a look at some photos that capture the memories and traditions of the fair. 03:47 Play Video
Kalona Tourism, IowaJust about 30 minutes from the bustle of the University of Iowa campus and downtown Iowa City, is an enchanting... 07:28 Play Video
Your Iowa Photos
Post your photos to our Flickr group, The Iowa Journal, to see them featured below.
Tune In
There are no broadcasts currently planned. Please check back for future broadcast dates.


text:
The Superintendent's Letter of Eligibility will endorse an individual for appointment as a district superintendent or an assistant superintendent.
Credit Hours: 21
Degree: Superintendent Letter of Eligibility
Program Website
College: Reap College of Education and Human Development
Department Website: Education
Middle States Commission on Higher Education
National Council for Accreditation of Teacher Education
Pennsylvania Department of Education
Office of Graduate Admissions
866-279-9663, ext 6002
Email: email@example.com
Architecture Major
My favorite place on campus is my work area in the Architecture building because this is where my creativity comes to life.
see all Ambassador profiles »
Psychology and Counseling Alum
At Marywood, I learned the tools of building relationships from a counselor perspective.
see all Alumni profiles »
see all Counselor profiles »


text:
Written on: 12/06/2012
I have order items twice from Brand Alley, accepting that they may take several weeks to arrive. On both occasions though, they did not, and I only found out via PayPal as I had been refunded. Really rather unacceptable. The business model may suit the current climate in terms of discounts but never in terms of customer service.
As rated by our community of reviewers
" So precise! So quick! So Affordable! " Read More
" Feldherr Figure Case " Read More
" They are fast " Read More
Written by LynseyAlly
" DO NOT ORDER " Read More
" Do NOT buy from this website wedding dress " Read More