Great video posted by Joi: Keep America Scared!
Job Advert
A Dark Picture of Iraq
I just found a very sumbering post in which Joi cites an email from a WSJ reporter. This one is from Iraq and how bad the situation is at this moment. While I do think that it is good the Saddam is gone, and think that it was wrong to invade Iraq, especially for the wrong reasons, I sadly have to say that there should not be full support from everyone out there to get the situation under control. This has happened. It was bad. It now is bad and needs to get better. The biggest problem here is that I have no clue how to make it better because force won’t do it. Maybe a full force of the U.N., paid by the U.S., without involvement of anyone from the U.S., and a full removal of all troups from the U.S. (I hope you still follow the sentence ;)) would be something worth a try. Maybe. Possibly.
Joi Ito’s Web: WSJ reporter confirms authenticity of private email about being in Iraq
Save the World
Back From OMD
I just returned from OMD (Online Marketing DÃ¼sseldorf), which great, insightful and filled with very productive meetings. Great people and a great event if you are doing anything in the field. I also met Nico and had a great chat with him before and especially at the OMD-Party; Motto: Online geht das (Online it works). You can see me smiling at him and raising a beer here. Lots more photos from the event can be found here. Looking forward to next year.
OMD Going Strong
Bloglines Web Services
Mark Fletcher just posted about Bloglines Web Services, a new system from Bloglines which will be fully announced with a press release tomorrow, but Mark could not hold out and wait any longer, so there goes the announcement and it’s something that will likely help remove a problem with RSS that some have started to see.
The problem comes from the fact that RSS Readers will query a feed several times a day and can potentially create huge Bandwidth need on the side of the publisher. Bloglines Web Services help soften that problem because they will offer feeds directly through a RESTful API. Through the API Bloglines acts as a RSS cache and also helps feedreaders to only query well-formed RSS 2.0 or OPML. The coolest bit though is why I really use Bloglines. It allows me to read my feeds whereever I am and only have unread feeds, independent on where I read the other ones, on the next computer. Through the API, desktop readers can now sync via several computers! Congratulations on the move Mark and congratulations to the entire team! On to downloading Feeddemon to try this out :)
Update: In Feeddemon you simply subscribe to http://rpc.bloglines.com/listsubs , then enter your username and password and you are good to go. It doesn’t seem to sync with my online subscription just yet, but I might not have the beta version that Mark talks about.
Update 2: Feeddemon seems to ignore the categories that Bloglines sends over. These should become channels.
This Is Getting Serious
A new conglomerate is in the building at the moment. This is getting serious. Joi just announced his investment into Flickr. I presume Loic will be next. :) Then between them they will have close ties to Six Apart (ok, very close there ;)), Technorati, Linked In, Flickr, Creative Commons and Socialtext. .. I actually don’t know what else there is but it’s getting interesting. I somehow want a part in that ;)
Quasi Philosophical
Scot posted about the wonderful quote by Donald Rumsfeld and the making of the music for it. Check it out: The Poetry of Donald Rumsfeld. Very cool!
Skype and VoIP
TJ alerted me in this post to the fact that I might be underestimating Skype. This comes in relation to my last post on the subject. I will gladly stand corrected, but for now, I am just not sure. Of course Skype is very powerful, I do not doubt that, but it is not a standard. I might not know enough about the Skype internals to really bring a final qualifying verdict, but from what I know now, it is not SIP and therefore not the standard the world is moving to.
I know about the Skype bit of the PocketPC, I am sure they will do a Symbian Version at least when Nokia’s new 9500 Communicator comes out with WiFi. There are real opportunities for Skype, no problem with that. The real problem is that there are a lot of VoIP providers (I have started a list of them here for Germany) and that you will have tons of phones for that, tons of client software, tons of innovation we haven’t thought of yet. Think of a least cost router that has 20 different VoIP accounts in different countries and routes your calls always via the local service for cheapest rates. There is lots of stuff there and stuff that Skype cannot compete with because it is a closed system.
Sure, Skype will be big, but that’s not really the point. The other stuff will be bigger. And I already have some problems with Skype, the biggest one that it doesn’t keep my contact list on the server. I need to add my contacts again and again and again and I do have different PCs.


--- layout: post title: Open handsets threaten operato date: 2004-06-01 00:00:00 ---
Apparently, open handsets threaten operator revenues. Well, yes, they might threaten revenues that derive from overpriced or poor content sold to a customer base that are fenced in from accessing any alternative...


Select stats which will be added up and used for sorting when ordering your armor by points.If you wish to entirely hide a class from deals, turn all stats off.


| YouTube Video | Channel Name | Video Name | Date Published |
| TED | Your brain hallucinates your conscious reality | Anil Seth: Link Here |
Published on Jul 18, 2017 | |
| Smooth McGroove | Chrono Trigger - Main Theme Acapella: Link Here |
Published on May 12, 2014 | |
| Tiger Productions | The funniest and most humorous cat videos ever! - Funny cat compilation: Link Here |
Published on Sep 23, 2016 |


Here at the cupcake store, we believe in cupcakes for every meal:
Want to try making your own cupcakes? Check out this Good Housekeeping article for 45 cupcake recipes that you can try yourself at home!
For questions about our wide cupcake selection, email us at cupcakes@gmail.com


About You
basic info
Please complete each field as accurately as possible
We only ask for the info we really need to make this thing work!
First name
Last name
Age
Link to profile picture
You are:
female
male
rather not say
custom
Looking for:
female
male
all
custom
next
Agree or Disagree
Drag the slider to rate each statement on a scale from 1 to 5
survey
1 = strongly disagree | 3 = neutral | 5 = strongly agree
You enjoy going out on Saturday night.
You always put your family first.

You view life as an adventure.
You have hobbies you are passionate about.
Work is your life.
You believe in monogomy.
Honesty is very important to you.
You're highly independent.
Your romantic partner should be your best friend.
Religion plays an important role in your life.
You are politically active.
Your political views tend to be liberal.
You love animals, and value their rights.
You want to have or already have kids.
You actively seek out opportunities to learn and grow.


Working on My Website
What I've learned working on my first website
March 15, 2015
Working on my website takes serious time! I find that making things look the way I want using CSS takes lots of careful adjustments. I have not tried using Jekyll or Bootstrap, but perhaps those could expedite the process.
I really had no idea where to start in terms of making an aesthetically pleasing homepage, so I looked at a website full of personal pages to get some ideas. I am still searching for a good black-and-white photo to use as a background, but for now I am just using a picture of a laptop I found online.
I was never one to be very good at drawing. I think the visual part of designing a website may not be my favorite, but I am going to try to keep an open mind.
There are still many weaknesses to my website. But I intend to keep working at it.


Choose the project you wish to work on or create a new one.
Project contains your data, transforms, downloads etc.
Welcome to GLAMpipe!
GLAMpipe is a tool for cultural data processing.
What is GLAMpipe
- operates on collections, documents and nodes (not tables and cells)
- for tasks that require human intervention (i.e. task that can not be fully automatised)
- is able to handle multiple values in different languages
What's so special in cultural data?
In technicals sense the main difference when compared to scintific data, is that cultural data often has multiple values per field and that there are language codes.


--- layout: post title: 'XKCD: Superlative' categories: [] tags: - geek - xkcd status: publish type: post published: true meta: _original_import_author: John Duprey _original_post_id: '' author: ---


Deliver with {{companyName}}
Earn on your own schedule,
Become a Delivery Partner
The fast way to
get food to your customers,
Become a Restaurant Partner


Input:
Browse…
Select a cvs file to train the network
Instantiate a Network and Trainer:
Initialize network
Load NN from json:
Init from Json
Start Training
Stop Training
Save Network
Pause
Result:
Report...
Accuracy...
Loss:
Sorry, your browser doesn't support the <canvas> element.
Accuracy (100):
Sorry, your browser doesn't support the <canvas> element.
Accuracy (1000):
Sorry, your browser doesn't support the <canvas> element.
Accuracy (5000):
Sorry, your browser doesn't support the <canvas> element.


if
statements that
do not match the log level of the contained logging call.
For example:
if (LOG.isTraceEnabled()) {
// debug level logged, but checked for trace level
LOG.debug("some log message");
}
This inspection understands the java.util.logging, Log4j, Log4j2, Apache Commons Logging and the SLF4J logging frameworks.


NEVER BEEN KISSED (1999)
A film review by Steve Kong Edited by Steve Kong Copyright 1999 Steve Kong
Someone give a pat on the back to Drew Barrymore's agent. This agent has literally erased the bad girl image of Barrymore with the last few films she has done. And with Never Been Kissed it's not any different, Barrymore is just so lovable in this film.
Never Been Kissed is not a plausible film by any means: A 25 year old copy editor from the Chicago Sun Times, who has never really been kissed, is sent back to high school to do an undercover story about high school life in the 90s. But, this implausibility is instantly lost as we meet Josie (Barrymore) Gellar, the copy who is going to be sent on the assignment. Barrymore is so cute and huggable in this film that we instantly relate to her.
Josie is, at first, ecstatic about the undercover assignment it marks her first writing assignment for the Sun Times. But, as her brother Rob (David Arquette) reminds her of the things that she went through her first time in high school she starts to withdraw from the idea of going back a second time. Josie was a loser in high school, known as `Josie Grossie', and it takes a bit of pep talking from Rob to get her to go back to high school. As Josie starts high school again she meets a very attractive English teacher, Sam, and this establishes the romantic part of this romantic comedy.
At the heart of Never Been Kissed is a story of finding oneself and second chances. We see this theme in Josie's story, but also in Rob's. The story is heartwarming and funny and will definitely appeal to many especially those who are currently in high school or about to enter high school. This is a film that falls squarely in the crowd-pleaser category and it succeeds wildly at this.
Barrymore is so sweet in Never Been Kissed that it's hard to criticize her performance. Her performance is just fine in Never Been Kissed though sometimes a bit hokey, like early on in the film where she describes how she's never really been kissed. The performance that I liked the most is David Arquette's. Arquette gives an energetic performance as Josie's loser brother who dreams of playing baseball in the majors.
Don't Miss Never Been Kissed in the theatres. This is a film that will make you all warm and fuzzy by the end of the film.
--- Steve Kong<EMAIL_ADDRESS>a guy with a helluva attitude that loves the cinema. i'm your hard boiled movie guide.
http://boiledmovies.sbay.com/
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


In my PhD I explored various ways to design for places and co-located interaction. One of the systems we developed was a co-located lecturing system that distributed the lecture slides and interaction widgets to client devices using the local network access point as a signer for location-based content. The core idea was to make the traditional university lecture an interactive object that could facilitate richer interactions between the participants in the lecture. We worked from the following scenario:
“A lecturer enters the classroom and open their computer. They sign into the InPlenary application and navigate to today’s lecture slides. When activated, the projector in the room automatically1 shows the lecture. The lecturer can see a small view of their slides on their screen, their notes and a preview of the next slide. […] The students open their computers and login to InPlenary. They can see a preview of the current lecture in the room (which is also on the projector) and open it. When opened they can see a small view with the current slide and a note-taking widget where they can make notes. As the lecturer navigates through the slides, they also change on the student’s computers.”
To support the above scenario (and the idea of interactive widgets), we developed a slide authoring module that would ingest a pdf slideshow and transform it to an interactive lecture. In the authoring tool, the lecturer could add notes and interactive widgets to each slide. We also developed a system for coupling the lecturer and student computers to a specific room, and a module for running and distributing the slides to the client machines.
Interactive widgets
We developed a series of interactive widgets that could be added as an overlay to the relevant slides. We selected a couple from the research literature on Audience Response Systems: Voting, commenting and essay feedback. We added two additional widgets: Navigation delegation and learning progression feedback. See the scenarios below.
Quiz voting
“The lecturer change to a slide with a quiz question: Who was the proposer of the concept of Ubiqiotus computing? On the student views a voting widget is introduced with options. As they enter their vote they get a confirmation. Their vote is persisted with their notes for later review, together with the correct answer. When the lecturer ends the vote, the results are overlayed on top of the current slide. They initiate a discussion of the result.”
Comments and voting
“The lecturer change to a slide with an open question. They invite the students to discuss the question with the student next to them. When they have discussed the question, they enter a reply into the comment widget. Once they have added a comment, they can vote on the replies from the other students. The lecturer shows the 3 top voted replies and they discuss these.”
Navigation delegation
“The lecturer change to a slide that ask the students to review the last 5 slides with software engineering models. They are tasked discussiing the models on how each model deal with iteration. To support the students in group discussions, the lecturer delegates control of the five slides to the students, so they can navigate back and forth between the models and the guiding questions. When the exercise is over, the lecturer retake control and navigates to a slide where the students can reorganize a list with the models from least to most agile. The students complete the exercise and the class review the final list.”
Supporting lectures and later review
We examined statistics on slide access in our existing learning management system. We observed two things: Students download slides at the lecture and we saw a huge spike in downloads when they used the slides as supplementary material when studying for the exam. To support this use-scenario we implemented a way to persist the student notes and lecture response data with the slides and a review module where the students could review and reflect on the material when studying for the exam.
“Four months after the exam a student is studying for their exam. They login to the InPlenary system and navigate to the lecture above. They can navigate through the slides, review and edit their notes, and replay the exercises. They can also review the comments, replies and input produced collectively in the class to aid their understanding of the concepts.”
Background: Designing for place and common interactive objects
The system explored several of the questions in my PhD thesis, in particular how to design interactive systems and applications for places? The short idea was to explore how we can design systems for particular places2 that serve multiple functions and multiple user demographies (e.g. libraries, community centres, educational institutions, urban spaces). InPlenary combines ideals from ubiquitous computing and ideas about common information spaces from CSCW.
When designing for a place, we need to consider two requirements. First, the inhabitants (the students) bring their own devices into the space. We need to support multiple different devices and cross-device interaction. To address this we decided to implement the system as a web-application. Second, we need a way to establish location. In this case we utalized the existing network infrastructure to establish a connection between the devices and the room.
In the system, each classroom access point (AP) is assigned an unique key that is exposed through a small webserver running on the AP. When participants use the network, background services can query the AP for the key and send that along to the lecture system backend. This would match the user with a classroom, and when the lecture starts, a collection of slides (see figure Figure 2).
Clients would listen to slide changes and update the slides on each client device. With a personalized loging, students can write notes for each slide, answer interactive quizzes and provide feedback for classroom assignments etc. These would be persisted with the slides, so that the information is available when students review the lecture material later.
Implementation
The system is implemented across multiple modules. Each was developed as a rather thick client3, with the location service and persistance happening on a web-server.
sequenceDiagram
actor Student
participant AP
participant Server
actor Lecturer
Student->>Server: Student login
activate Server
Server-->>Student: Student page with lectures
deactivate Server
Student->>AP: get roomID
activate AP
AP-->>Student: return roomID
deactivate AP
Student->>Server: enter lecture room
activate Server
Server-->>Student: Lecture Room
deactivate Server
activate Server
Lecturer ->> Server: Start lecture
loop every n seconds
Lecturer ->> Server: Change slide
Student->>Server: Query current slide
Server-->Student: return new slide
end
Lecturer ->> Server: Stop lecture
deactivate Server
Figure 2: Sequence diagram coupling clients to a room via an access point
Figure 3: C4 Container view of InPlenary (A bit chaotic – needs cleaning).
Pilot and Evaluation
We piloted the system in two lectures to test the rebustness of the system. Following this we invited two lectureres from a different department to test the system in their lecture:
We collected use data and surveyed and interviewed the participating students about their experience with the system. For multiple reasons the system and research was only reported in my PhD thesis. It is used as a case in Beaudouin-Lafon et al. (2021) paper on “Generative Theories of Interaction”
I have wanted to return to this project and the system multiple times to do a more elaborate writeup, but I have not have the time.
References
Beaudouin-Lafon, M., Bødker, S., & Mackay, W. E. (2021). Generative theories of interaction. ACM Transactions on Computer-Human Interaction (TOCHI), 28(6), 1–54.
Places, not location-based stuff. Places are meaningful to the people who inhabit these and use them for multiple activities. “Location” does not capture that. Think place as a user experience construct and location as a minor usability construct. There is a longer version of this argument in my thesis.↩
For production, I would make a thin client instead and delegate more to the backend. However, when prototyping one often end up with a thick client.↩
Comments and voting
“The lecturer change to a slide with an open question. They invite the students to discuss the question with the student next to them. When they have discussed the question, they enter a reply into the comment widget. Once they have added a comment, they can vote on the replies from the other students. The lecturer shows the 3 top voted replies and they discuss these.”


git pull
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
From https://github.com/StakedChain/StakedNotary
8ccbb5a..7e98cd3 master -> origin/master
Already up to date.


Checkboxes style by using plugin
A simple checkbox
Style 2
Style 3
Style 4
Style 5
Style 6
Style 7 (Rounded)
Style 8 (Rounded)


Returns date and time in requested format.
formatDateTime(dateStr, format)
| dateStr |
string or number, date in common format |
| format |
string, format to output |
The str argument can be (1) a JavaScript Date, (2) a Unix epoch, (3) any standard date, which will be
used to create JavaScript Date object. To ensure correct translation it is best to pass a JavaScript Date or a full format with time
zone: "2013/12/21 19:03:59 PST".
This method will call
w2utils.formatDate and then
w2utils.formatTime methods.


Coffee & Code
One-on-One Coding Classes for Beginners
One-on-One Coding Classes for Beginners
Hi there! My name is Christyn and I'm a web developer, currently working at The Public Theater. I love to code and to teach others how to do it too. When I was learning how to code, I noticed that there are not a lot of opportunities for learning web development one-on-one. There are good resources online, but if you get stuck, there's no human to ask questions to. That's why I decided to create one-on-one web developemtn courses. These classes will be casual and fun, and we'll be able to move at your pace and tailor the session to your skill level.
Who: These sessions are great for all kinds of beginners- people who want to learn for fun or profit, college students deciding on a major, professionals considering a career change, people who work in other fields and need to create webpages/e-mails for work, people who want to understand the thought process of web developers on their team, etc.
What: I've designed each session to give you as much information as I can, so you feel confident continuing on your own. I believe the best way to learn how to code is to put your hands on the keyboard and type, so I'll do the talking, and you'll do the typing.
Where: The Astor Place Starbucks, unless you have a coffee shop (with wifi please!) that you prefer in Manhattan.
When: Weekday evenings at 6:30/7:00pm
Why: Because coding is awesome! That's why!
HTML (HyperText Markup Language) is the most basic building block of the web; It’s the language that defines and describes every element of your website. It’s a great place to start if you’re new to coding. In this hour-long crash course, I’ll teach you everything you need to know to get a webpage up and running with HTML.
Topics include
What you’ll need:
CSS(Cascading Style Sheets) is the language you use to style your webpages. Once you know the basics of CSS, the design possibilities are endless.
Topics include:
What you’ll need:
JavaScript is a powerful language that can be used to add interactivity to your website. JQuery is a helpful JavaScript library that makes it easier to interact with the elements on your page. Many concepts we cover in JavaScript can be used in other programming languages as well.
Topics include:
What you’ll need:
This course is for beginners who are interested in learning a back-end programming language (Here’s a good explanation of front-end vs. back-end) Ruby is a great programming language for beginners, because it reads more like English than other languages. We will delve into a lot of concepts that apply to programming languages across the board.
Topics include:
What you’ll need:


Valtus Mederi Charm
Posted: Fri Oct 23, 2009 3:18 pm
Are valtus charms supposed to fail randomly? It failed again today on me, it's about the 3rd or 4th time. I have a suspicion that the game chooses the Valtus charm to drop and so negates its purpose. Today's instance: I was at trolls and I noticed something about the layout in the cave, and attempted to trans into a wall. It showed my character still against the wall, but something was now hitting me, and my healing spells, which WERE casting, had no effect. I also could not move after attempting to trans into the wall.


{% extends "url_inspector/base.html" %} {% load static %} {% block title %} Error launching new inspection | {{ block.super }} {% endblock %} {% block content %}
Something went wrong. The system wasn't able to launch a new inspection.
What you may have done wrong:


Configuring Simulations (2)
In the previous tutorial on configuring simulations,
we have discussed how you can customize some parts of the simulation directly by
modifying the config
object. However, you may wish to have more extensive
customization options that are not possible through configuration only. The
Simulation class
therefore contains the option of overwriting some of its methods. This allows you to
customize some of them without requiring you to implement everything from scratch.
In this tutorial, we will discuss how to use this option to customize different aspects of your simulation -- including grid initialization, drawing of the grid, computing statistics, or adding additional biological processes such as production and diffusion of soluble molecules, cell proliferation, or cell death.
Overwriting methods
To see how you can overwrite methods, consider the code from an earlier tutorial:
let config = {
...
}
let sim
function initialize(){
sim = new CPM.Simulation( config )
step()
}
function step(){
sim.step()
requestAnimationFrame( step )
}
(Here, note that the ...
inside the config
object should
be replaced by its normal properties, but its contents are left out here for brevity.
Have a look at this previous tutorial)
Now suppose that we want to overwrite the initializeGrid
method.
Normally, this method seeds the first cell at the midpoint of the grid, and then seeds
any other cells at random locations. If we want more control over the location of cells
on our grid, we can overwrite this method. We can do this by adapting the code as follows:
let config = {
...
}
let sim
function initialize(){
let custommethods = {
initializeGrid : initializeGrid
}
sim = new CPM.Simulation( config, custommethods )
step()
}
function step(){
sim.step()
requestAnimationFrame( step )
}
function initializeGrid(){
// own initialization code here
}
There are two changes here. In the initialze()
function, we now define
an object custommethods
which contains a key (before the colon) for the
methods we want to overwrite, and a value (after the colon) specifying which function we
want to overwrite them with. We then pass this object along when we initialize the
simulation ( sim = new CPM.Simulation(...)
). Since we have said here that
we are going to replace the initializeGrid
function of the Simulation class,
we must also define its replacement somewhere in the code. That happens at the bottom of
the above code fragment, where we define a new function initializeGrid
.
(Currently, this method is empty, so if you would run this code you would just see an
empty grid. We'll discuss below what you might want to put inside this replacement
function).
The Simulation class contains the following methods that you may wish to overwrite for your custom simulation:
initializeGrid
, overwrite this if you want more control over where cells are placed, or if you want to add other objects/obstacles to the grid. See below for examples;drawCanvas
, overwrite this if you want more control over the visualization of your grid;drawBelow
anddrawOnTop
, use this if you do want to use the default visualization methods fromdrawCanvas
, but also want to draw something else either below or on top;logStats
, use if you want to log something other than cell centroids to the console during your simulation;postMCSListener
, use to add other processes (cell death, proliferation, production/diffusion of chemokines, ...) to your simulation.
We will now discuss use cases for each of these methods below.
Custom initialization
As mentioned in the example above, we can overwrite the initializeGrid()
method to have more control over how the grid is initialized. For example, the following
example uses this method to seed cells at regularly spaced positions instead of
randomly:
This example overwrites the initializeGrid()
method with the following
function:
function initializeGrid(){
// add the initializer if not already there
if( !this.helpClasses["gm"] ){ this.addGridManipulator() }
// Seed epidermal cell layer
let step = 12
for( let i = 1 ; i < this.C.extents[0] ; i += step ){
for( let j = 1 ; j < this.C.extents[1] ; j += step ){
this.gm.seedCellAt( 1, [i,j] )
}
}
}
Note that although we are writing this function in the HTML file, it will be called
from inside the Simulation object. That means we have to refer to the simulation object
as this
rather than sim
(e.g. this.gm.seedCellAt
).
If you attach a method to the Simulation object by adding it to the custommethods
,
use this
. If you write a function inside your HTML file but don't attach
it to the Simulation object, use sim
(the variable name under which you stored
your simulation).
For full code, have a look at this page (once you are on the page and it has loaded, right click anywhere outside the grid, then select 'view page source').
Another example is the following, where we overwrite the initializeGrid()
to place microchannel walls:
The custom functions look like this:
function initializeGrid(){
// add the initializer if not already there
if( !this.helpClasses["gm"] ){ this.addGridManipulator() }
let nrcells = this.conf["NRCELLS"], cellkind, i
this.buildChannel()
// Seed the right number of cells for each cellkind
for( cellkind = 0; cellkind < nrcells.length; cellkind ++ ){
for( i = 0; i < nrcells[cellkind]; i++ ){
// first cell always at the midpoint. Any other cells
// randomly.
if( i == 0 ){
this.gm.seedCellAt( cellkind+1, this.C.midpoint )
} else {
this.gm.seedCell( cellkind+1 )
}
}
}
}
function buildChannel(){
this.channelvoxels = this.gm.makePlane( [], 1, 0 )
let gridheight = this.C.extents[1]
this.channelvoxels = this.gm.makePlane( this.channelvoxels, 1, gridheight-1 )
this.C.add( new CPM.BorderConstraint({
BARRIER_VOXELS : this.channelvoxels
}) )
}
This is pretty much the default initializeGrid
code, except that it now
calls a new function this.buildChannel
first. That means that also the
buildChannel
method has to be defined, and passed along to the simulation
object when you define the custommethods
inside the initialize()
function:
let custommethods = {
initializeGrid : initializeGrid,
buildChannel : buildChannel
}
Important note
Note that the simsettings
object inside the config
object
contains a property NRCELLS
. This is an array that specifies how many cells
of each type of cell have to be seeded on the grid. Normally, this is used by the
initializeGrid()
function of the Simulation class. If you overwrite this
function and don't use the NRCELLS
inside your replacement code, the values
you enter there will no longer influence the number of cells you get on the grid.
However, you must still have the NRCELLS
inside your simsettings
object!. This property is used by other methods to know how many cells are on the grid,
and these methods will crash if you don't have this array. So while its values may not matter, you
must still ensure that an array of the right length (one element per non-background kind
of cell on the grid) is present.
Custom visualization
Your simulation might also contain custom visualization methods. For example, the following example uses custom visualization to draw a line indicating in which direction each cell is going:
It does that by overwriting the drawCanvas()
method:
function drawCanvas(){
// This part is the normal drawing function
// Add the canvas if required
if( !this.helpClasses["canvas"] ){ this.addCanvas() }
// Clear canvas and draw stroma border
this.Cim.clear( this.conf["CANVASCOLOR"] )
// Draw each cellkind appropriately
let cellcolor=this.conf["CELLCOLOR"], actcolor=this.conf["ACTCOLOR"],
nrcells=this.conf["NRCELLS"], cellkind, cellborders = this.conf["SHOWBORDERS"]
for( cellkind = 0; cellkind < nrcells.length; cellkind ++ ){
// draw the cells of each kind in the right color
if( cellcolor[ cellkind ] != -1 ){
this.Cim.drawCells( cellkind+1, cellcolor[cellkind] )
}
// Draw borders if required
if( cellborders[ cellkind ] ){
this.Cim.drawCellBorders( cellkind+1, "000000" )
}
}
// This part is for drawing the preferred directions
let pdc = this.C.getConstraint( "PersistenceConstraint" )
let ctx = this.Cim.context(), zoom = this.conf["zoom"]
let prefdir = ( pdc.conf["LAMBDA_DIR"][ cellkind+1 ] > 0 ) || false
ctx.beginPath()
ctx.lineWidth = 2*zoom
for( let i of this.C.cellIDs() ){
// Only draw for cells that have a preferred direction.
//if( i == 0 ) continue
prefdir = ( pdc.conf["LAMBDA_DIR"][ this.C.cellKind( i ) ] > 0 ) || false
if( !prefdir ) continue
ctx.moveTo(
pdc.cellcentroidlists[i][0][0]*zoom,
pdc.cellcentroidlists[i][0][1]*zoom,
)
ctx.lineTo( (pdc.cellcentroidlists[i][0][0]+.1*pdc.celldirections[i][0])*zoom,
(pdc.cellcentroidlists[i][0][1]+.1*pdc.celldirections[i][1])*zoom,
)
}
ctx.stroke()
}
Since only the second part of this method is actually new, we could also have just
replaced the drawOnTop
method (which is empty by default).
Exercise:
Open the artistoo/examples/html/ManyCellsPrefDir.html
example in your
favourite text editor, and try if you can do the same by overwriting drawOnTop
rather than drawCanvas
.
Another example is the microchannel,
where we use the drawBelow()
method
to draw the microchannel walls before drawing the other cells:
function drawBelow(){
this.Cim.drawPixelSet( this.channelvoxels, "AAAAAA" )
}
That yields the following:
Have a look at the Canvas
class for
an overview of drawing methods you can use in your custom visualizations. This class
uses the
canvas framework, with a syntax you can also use to define your own methods
(for example, we did that to draw the lines in the first example of this section;
have a look at
this tutorial).
Custom logging
Artistoo's default is to log every cell's ID, cell kind, and centroid (along with the system time in MCS). Sometimes, you may wish to log other statistics. Consider the following example simulation:
Suppose we just want to log the total number of cells on the grid every time. We can do
this by overwriting the logStats()
method:
function logStats(){
// count the cell IDs currently on the grid:
let nrcells = 0
for( let i of this.C.cellIDs() ){
nrcells++
}
console.log( this.time + "\t" + nrcells )
}
Adding biological processes
Finally, we may wish to do other stuff in between the CPM steps. For example, the
cell division example above allows cells to proliferate between steps. For this,
the Simulation class
contains an (empty) function called the postMCSListener()
, which can be
overwritten. This function is called after every step. By default, it does nothing, but
you can overwrite it with processes you wish to perform. For example, the cell division
example uses it to let cells proliferate:
function postMCSListener(){
// methods for cell seeding and division are in the GridManipulator class, which
// is added to the simulation like this:
if( !this.helpClasses["gm"] ){ this.addGridManipulator() }
// Loop over all the cells and let them proliferate with some probability,
// but only if their volume is at least 95% of their target volume
for( let i of this.C.cellIDs() ){
if( this.C.getVolume(i) > this.C.conf.V[1]*0.95 && this.C.random() < 0.01 ){
this.gm.divideCell(i)
}
}
}
Also have a look at the cancer invasion
and chemotaxis examples to see what
you can do with the postMCSListener()
.


What I think life looks like through the 'pleasure, passion and purpose' lens is that life looks good! It is just finding a place and a way to get to the places of happiness, I think this can be achieved by trying to do something you love and putting yourself in the right place for it to happen.
From the 'discovering values and higher purpose' exercise I found that my core values are ones of trying to please, not let down other people and that I find it hard to say no to people. I think what I stand for is trying to do my best, trying not to let other people down and helping people out if they ask for help.
I found the resilience ideas and meditation exercise to be good, as it is important to remind yourself that everyone does struggle and fail in life and it doesn't mean that you won't succeed, it was nice to think about when you succeeded after dwelling on the failure, and that even the best and smartest people feel like that they are stupid sometimes and it is just matter of training yourself to be more optimistic to help you go forward.


Twitch / Speedrunslive IRC
No Twitch Specified
You didn't specify a Twitch TV username
Twitch Username:
Twitch Chat (optional):
SRL Channel (optional):
Go!
Website by
Zak "Ubercow" Kristjanson
. A
SpeedRunTools
Project.
Pick a new stream.
Twitch
SRL


INDEPENDENCE DAY A film review by Andrew Hicks Copyright 1996 Andrew Hicks / Fatboy Productions
(1996) **** (out of four)
Nothing has been more hyped this summer than the release of Independence Day. The trailer has been playing non-stop for months, long enough for me to be able to recite Will Smith's soundbite of "I'm just a little anxious to get up there and kick E.T.'s ass, that's all," in my sleep. And the movie theater I went to was so crowded there were actually cops directing traffic out of the parking lot. It was playing on three screens with a line around the corner and the first showing sold out. With the only other opening-day competition being the John Travolta melodrama PHENOMENON (which looks pretty Tra-volting to me), I knew they were all there for INDEPENDENCE DAY, probably the movie event of the decade so far.
But is it worthy to be hailed as an event? In two words -- yes. It may not have the artistic merit of a SCHINDLER'S LIST, but this is the common man's classic, mainstream entertainment that draws average audiences together and envelops them completely. INDEPENDENCE DAY is a huge-scale epic worthy of the hype, one which shamelessly exploits those last lingering shreds of patriotism we all still have. It's STAR WARS plus ALIEN plus TOP GUN with hints of 70's ensemble disaster movies like THE POSEIDON ADVENTURE and AIRPORT (but I'm not holding the last two against them).
There are no huge stars in INDEPENDENCE DAY -- no Arnold protecting Vanessa Williams or Sean Connery breaking into Alcatraz, not even any names above the title. Instead we get second-string stars like Will Smith as an overly brave fighter pilot, Jeff Goldblum as the earth-friendly genius (pretty much the same character he played in POWDER), Bill Pullman as the President, Randy Quaid as the eccentric crop duster who claims a previous alien encounter and Judd Hirsch of "Taxi" as Goldblum's stereotypical Jewish father.
Then there are the brief screen-time casualties like Harvey Fierstein, who vamps his way through the first reel, Harry Connick Jr. as a fellow fighter pilot and Brent "Data" Spiner, a government scientist who gets attacked by an alien who must have heard his "Old Yellow Eyes" loungeact album on K-Tel records. (Hell, _I'd_ travel the galaxy to kill Spiner after listening to that.) Countless others die, of course, when the giant hovering spacecrafts show up over New York, Washington, L.A. and the other key Earth cities.
The first third of INDEPENDENCE DAY, the most chilling and compelling part of the movie, is devoted to the arrival of the spacecrafts over Earth. Scenes of mass panic and destruction on a huge scale abound, with strategic shots of skyscrapers crumbling, giant fireballs engrossing the masses and even the White House exploding ("Hillary! Chelsea!"). Goldblum, a cable technician, is the first to figure out that the aliens haven't come in peace, and intervenes accordingly. But that's just the beginning.
The second day of our three day epic brings the first human retaliation attempts, centering around Bad Boy Will Smith's bloated-ego action hero techniques, which is when you remember you're still only watching a movie. As authentic as the INDEPENDENCE DAY visuals are, the biggest implausibilities are in the mostly one-note characters and how lightly they seem to take the news of impending global destruction, as if they'd already read the script and know things will be okay in the end.
It's not a perfect movie by any stretch of the imagination but is such an incredible experience that you can easily overlook the rampant implausibility and dialogue which would in other circumstances seem laughable. In forty years, as the special effects become dated, the flaws will seem more obvious and INDEPENDENCE DAY may well join the Bad Movie Hall of Fame, but right now it's the best entertainment of the year. What it lacks in big-name draws or intelligence of plot it more than makes up for in visual effects and the collective anxiety it invokes over the fate of the characters, not to mention the planet.
--
Visit the Movie Critic at LARGE homepage at http://www.missouri.edu/~c667778/movies.html Serving America For Over 1/50 of a Century!
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Egg Sitting
All Eggs
Carbon Monoxide (C0)
Nitrogen Dioxide (NO2)
Volatile Organic Compounds (VOC)
Add An Egg
Add or Update an Egg
I want to add data to:
a new egg
a previous egg
Name:
Group:
Notes:
Search listed eggs:
Getting all eggs - hold on tight!
Location:
CSV data files to upload:


{{domain}}
An error has occurred. To continue:
Press Enter to return to {{domain}}, or
Press CTRL+ALT+DEL to restart your
computer. If you do this,
you will lose any unsaved information in all open applications.
Error: {{err}} : {{text}}
{{desc}}
Press any key to continue _


--- layout: post ---
I had never heard of hackathons until I enrolled at NSS, and quite frankly, the thought of attending an all-weekend coding fest was a bit daunting. But I signed up, and days before Hack Tennessee, I came up with an idea. And with the encouragement from my cohortmate, Margaret Clinard, I decided that I should pitch the project in front of 500+ registered participants during the opening of this hackathon.
We are #SnackTennessee. A 'farm-to-tablet' app celebrating all Tennessee makers. #ht7 pic.twitter.com/TpGsCWtmEB
— ayumi fukuda bennett (@ayumibennett) May 4, 2015
One pitch became a team of twelve, with members of various skills levels and across the state of Tennessee.
#SnackTennessee #HackTennessee #HT7 pic.twitter.com/vPZYXsWLTJ
— Dotun Olusoga (@DotunOlusoga) May 4, 2015
See the code here.