Friday, December 8, 2023
Thursday, December 7, 2023
- Brain-Inspired Efficient Pruning: Exploiting Criticality in Spiking Neural Networks
- Conway's Game of Life is Omniperiodic
Decompiler ExplorerI uploaded the M0 program produced when executing the i386 emulator to the Decompiler Explorer to see what it would produce. I looked at the input produced by the four decompilers that are selected on default. I noticed that the decompilers angr and Ghilda ignore the interupt 0x80 calls, which are rather essential for understanding the code. There is not even a comment about some part of the machine code not being included. Binary Ninja does include them, but has a hard time dealing with arguments that are passed through the regsters. The functions are annotated with __convention("regparm"), but the function bodies contain nonsense declarations of variables with the names of the registers. Also the results of interupts are not returned correctly. It looks like IDA Pro by Hex-Rays, a commercial solution, performs the best. I downloaded the source and tried to compile it. I made some edits, but did not make much progress. I decided to leave it at this for the time being. I tried the other decompilers. Boomerang and dewolf reported an error not being able to decompile the file. RecStudio did produce some output, but I could not locate any interupt 0x80 calls. Reko, Relyze, and RetDec do recognize the interupt calls, but seem to have a hard time with handing passing values through registers. Snowman does generate structure definition and also seems to deal well with the register passing, but does not process the interupt 0x80 calls. It also generates some illegal C(++) syntax. I the M2 program to decompilers behaved, because it has a different calling strategy.
- Infocom Z-code Interpreters
- All that Infocom interpreter code
- Infocom IBM Zocde terps
- A Portable Z-Machine Interpreter
- The Obsessively Complete Infocom Catalog
- Zarf's Redundant Site Map
2.5 cm of snowThis morning, there was about 2.5 cm of snow on the table in our backgarden. However, not all the ground was covered with snow. The snow was mostly on the trees, the plants and the grass. During the day it quickly melted away. The temperatures are going to rise in the coming days. Below a picture that Conny took of our backgarden.
HarvestThis morning I cycled to Herenboeren Usseler Es. Some light snow fell from the sky on my poncho and I saw all kinds of small six pointed, star-shaped snowflakes on my poncho. I cannot remember ever seeing this. The snow did not really settle, except for some spots. It was not that busy at the farming cooperative. What you get depends on the number of mouths you are paying for and what choice you make when there are options to select from. I brought the following home:
- Roots with foliage
- Lacinato kale
- Savoy cabbage (one large and one small)
- two heads of Brussles sprout (not to be confused with the sprouts)
- Small turnip (from the giveaway table)
They can be seen in the picture below:House of Representatives came together for a meeting that lasted but 3 minutes and 3 seconds to vote about whether the ballots for four voting stations in the city Tilburg should be recounted. It is rather exceptional that they come together on a Saturday. Yesterday, the electoral council published the outcome of the 2023 Dutch general election. However, the 'Commission for the Verification of Credentials' raised some questions about the result outcome, because for some polling stations there was a rather large and unexplained gap between the ballot count at the polling station and the central recount of the ballots the next day. The counting report of polling station 21 reports a matching number of ballots compared to the voter cards. It does not contain a count per candidate. The recounting report reported a difference of 24 ballots less. I understand that in Tilburg the count per candidate is done at a central location. (This is legal according to the rules.) The report mentions one unexplained difference in the number of ballots for the VVD and an explained difference for the NSC where it states that the ballot was found with the DENK. From this I understand that the ballots were bundled per party. For the PVV there were nineteen less ballots counted and for the DENK seven (including the one that belonged to NSC). This indeed a bit strange. The electoral council advised against a recount, because they concluded that a recount would not change the outcome of the election. The House of Representative voted to have the ballots of four polling stations to be recounted. In the past weeks, already many recounts have been performed when people complained that they did not see their vote on a specific candidate. In many cases this lead to a correction, in some not. (There must be cases where voters made mistakes as well marking their ballot either by marking a different candidate or by marking way that made it an invalid vote. A ballot is counted as invalid if not exactly one circle has been marked with red or when the ballot contains text that could identify the voter, such as a name.) There are 15 pages with comments, recounts and/or recorrections in the report from the election counsel.
I did get a reply from independ observers. They acknowledge the error and said that it was going to be corrected on their website.
Advent of CodeI was a little hesitant whether I should join Advent of Code this year, but this morning, I decided to give it a try. I had a bit of trouble getting the hang of using literature programming with MarkDownC. The first puzzle took me a bit more work than I had expected, especially the second part of the puzzle. But I saw on Reddit r/adventofcode that I was not the only one. Again, I have been thinking about a small language to solve these kind of puzzles, but for the moment, I think I just stick with C. My progress can be followed in the repository AdventOfCode2023. Leren van Twee Vuurwerkrampen (which translates as: lessons from two firework disasters). The report is about the firework disaster that happened on Saturday, May 13, 2000 and about a firework disaster in Culumburg that happened on Thursday, February 14, 1991. The main conclusions (translated from Dutch to English with the help of Google Translate):
- 'Light' classified fireworks are much more dangerous in the event of a fire than thought.
- Extinguishing instructions for the fire brigade are inadequate for safely extinguishing fireworks fires.
- Problem of parallel licensing.
- Heated conflict between two ministries.
- Supervision of the fireworks industry was vulnerable.
- The role of the central government was much greater than has been reported so far.
I have send an email to the indepent observers about this difference. In their report they presenta a outcome of the election based on the 315 process reports that they have collected and entered into their database (with at least one mistake). It seems that they have not (yet) verified if the photographs they took from the process reports match with those published by the various city counsels. They do make some statements that the summing of the votes is not transparend, but how can they say this if they even have not yet taken the efforts to compare their data with the official published data.
They report that at ten polling stations, the observers were not allowed to take pictures of the process report. In a questionair filled in by the observers some more irregularities were reported. For example, one observer was asked to help with the counting of the votes, while this is forbidden. Also some process reports were signed by people counting before all results were entered.
SnowYesterday evening and last night it did snow. When I woke up, I only saw some patches of snow on the ground, which quickly disappeared in the morning. At the end of the afternoon, there were large flakes of snow falling from the sky, but because them temperatures were above zero Celsius, most of it melted again. In Germany there was some heavy snowfall in the past days. Marinus Boezem), written in Dutch and published by Stichting Forum Middelburg in 1984 from charity shop Het Goed for € 1.50.
Debugging the emulatorIn the past weeks, I have continued working on the i386 emulator. I have implemented all the instructions mentioned in x86_defs.M1 (from commit e86bf7d3). The M2 now runs without reporting any unknown instructions and it seems to parse the input files, but after that it reports the first time (process 20) when it is executed:
Unknown type ./M2libc/x86/linux/bootstrap.c:141:And the second time it is executed (process 25) it reports:
Unknown type ./M2libc/x86/linux/bootstrap.c:147:
I currently do not have a good idea what could be wrong. I am thinking about modifying the Emulator such that it generates a C(++) program of all the parts it has executed. I already have some ideas about how I could do this, but it requires some work. I could then try to debug the generated program by adding print statements and hopefully figure out what is going wrong. Before I start working on this, I have commited the current state in the commit 960d6cf4.
Wet snowThis afternoon, there was some wet snow falling from the sky. At the end of the afternoon, I found some of it on my car. Still would not count this as snow.
Going into the cityI first went to TETEM art space. There I was told that you have to make a reservation for the new virtual reality exhibition Enter New Babylon: A Mixed Reality Installation and that it costs €10. I decided to skip it. When I went outside, at 14:27, I saw a half rainbow and I heard some rain coming, so it I thought. But when I biked away, it started to rain hail and when I looked back, I saw a complete double rainbow. I quickly put on my poncho and thought about taking a picture of it, but the rainbow was gone already. I the city, I went to Fotogalerie Objektief, where I read that it was closed because there was going to be an opening at the Grote Kerk (the large church) about the exhibition Polaroids with photographs by David van 't Veen. I decided to attent the opening. The official opening was a talk by Winnie Sorgdrager. She was once photographed by David van 't Veen. They also showed a fragment of the television program 'Mag ik van u een foto?' from the series 'Kunst op het spoor' that was broadcasted on December 7, 1980. David van 't Veen was born in 1947 and died in 2018. He attended the AKI and later became a teacher there. He was a painter, but when he got problems with his eye sight and no longer was able to paint small details, he resorted to photography with polariods because they gave the kind of soft colours that he prefered. He often made sketches that he tried to recreate with photographs.
After the opening, I went to bookshop Broekhuis where at 16:28:50, I bought the following two books:
- Van Abbe Museum, Eindhoven written by Jaap Bremer, Jan Debbaut, R.H. Fuchs, and Nargriet Suren in Dutch and published by Joh. Enschedé in 1982, ISBN:9789070024116 for € 6.95.
- Een collectie | A Collection edited by Deborah Wolf, written in Dutch and English, and published by ABN AMRO Bank in 1995, ISBN:9789080267718, for € 1.95.
After this, I walked to the galery and watched the exhibition. There were still a lot of people mostly talking with each other. I think I will come back another time to watch the exhibition again.last Wednesday voting are available. A copy of the official report for polling station 675 (in Enschede) is the PDF: 0153_Stembureau_675_MONTESSORIECHOOL DE WIELERBAAN_CORRIGENDUM_TK23_ZH.pdf. As far as I could see, it looks like the process report that I signed, except of course for the second half that consists of copies from the recounting that was done at the central location stating that there were no differences found. These reports do not contain the pages with signatures of all people involved in the counting of the ballots for obvious reasons. The EML files are also available.
BookWe recieved the book Amsterdam door de ogen van Carel Willink written by Rémon van Gemeren in Dutch, published by WBOOKS in 2021, ISBN:9789462584648, which we bought yesterday at 11:11 from WBOOKS for € 13.95. In the book the locations are identified that Carel Willink used for his paintings.
Election resultsMany people are shocked that the Party for Freedom won the elections with a landslide victory. Although in the last months, Geert Wilders, the only member (and the authorian leader) of the party, has taken a mild position, it is undeniable that the party is right-wing to far-right party. There seems to several reasons for it victory. One being that Dilan Yeşilgöz-Zegerius, the current leader of the People's Party for Freedom and Democracy, has stated at the start of the election campain that she is open to a coalition with him. Immigration has been the main theme of the campain, where many were blaming asylum seekers for all the problems in the country. Another factor is that the combination of two left-wing parties, the Labour Party and GroenLinks, under the leadership of Frank Timmermans was gaining popularity and that many right-wing parties where shouting that if he would win that it would destroy the country. Although the Bureau for Economic Policy Analysis did conclude that his economical plans were much better than those of the People's Party for Freedom and Democracy, the fearmonging that some (the very rich) would hit hard by it, appearingly was believed more than the rational facts. Most people do not realize that democracy itself is not safeguard for fascism. Populism often leads to fascism. It is a reality that many fascist and authoritarian leaders were elected in power. This makes me think about the words by Yoda saying: Fear is the path to the dark side. Fear leads to anger. Anger leads to hate. Hate leads to suffering.
- Computational modeling of terrains
- TimDbg: Writing a Debugger From Scratch
- The Future of Gaming: StarEngine (4K) - YouTube
Counting ballotsToday, the general election was held and I went to help for counting the ballots at at polling station 675. I arrived at 20:20 and first went to vote myself. I decided to help with counting after I was an observer the last time. I had to follow some online course with a short exam. The counting of the ballots started at 21:00 and took about five hours. I did enjoy it. I did not observe any irregularities. I was the one who found the one invalled ballot. In the end all the numbers did add up. There also was one man to observe the voting. At the end, he did take pictures of the process report after all people who helped with counting, had signed it. I did not write down the number of all the votes, like I did the last time. I think, I do remember the numbers for the largest three paries: 337 votes for NSC, 174 votes for PVV and 79 (or 78) votes for VVD. I got the impression that the observer had registered himself with the (Dutch) website Alle kiezers tellen mee, which can be read in two ways, which translated as "All voters are included" or "All voters join the counting." I understand that observers can upload their pictures of the process report, but the website is not clear about what they are going to do with them. I informed them about the program that I developed and offered my help, but so far, I have not received a reply. Which does not surprise me, because some of the organisations behind the website are rather dubious, supportes of various conspiracies, like the one ran by Willem Engel. It would nor surprise if they think that they could expose election fraud, but I fear they will not be able to find any fraud.
- How does Cave/Glade Generator Work
- visioncortex VTracer is an open source software to convert raster images (like jpg & png) into vector graphics (svg).
HarvestThis morning, this is what we got from Herenboeren Usseler Es, a farming cooperative we are members of.
What you get depends on the number of mouths you are paying for and what choice you make when there are options to select from. I brought the following home:
- Carrots with foliage.
- Two turnips.
- Two kilos of whole wheat flour.
- Two stems with Brussels sprouts.
- Small broccoli.
- Small romanesco.
- Some mesclun lettuce.
- Jerusalem artichokes.
The Overkill FestivalThis evening, I visited the Overkill festival. This year it is held at another location than last two years, which consists of one large space. This gives a different atmosphere also because the music from the music popium can be heard everywhere. There I saw the following games, films and/or installations:
- Tetardise by Cookie Collective.
- Screensaver by Lena Huzmich.
- Phantasmic Crystal Interface by Janne Schimmel.
- Cloud Garden by Noio Games.
- Data Garden by Shaman Garage. A one button game that is still quite interesting.
- Symbios by Icy Sneakers of eqla a game that is accessable for people with visual limitations.
- Escape from Lavenda Island by Jeremy Couillard.
- Immaterial Diaspora by Sorry, I Overslept.
- Swamp Unleased by Butter: Go Sherk or Go Home.
- Liminal Lands by Jakob Kudsk Steenson. Sublime and detailed Virtual Reality.
- The World's green is rotting lime by Erik Peters.
- Perplexity by Unacite
- The Well of Sickness Shimmering by Belladonna Paloma & Uma Breakdown.
- Abyssal Seeker by Joey Holder.
- Archaic Machines performance by Wouter van Veldhoven.
- No Blade of Grass a short film by BCAA System.
- A large unnamed installation by Jelle de Graaf & Samuel Cappas.
- An unnamed installation with 'character cards' of mythical creatures. (I took four of the cards.)
Tuesday, November 14, 2023
Doublet #5This afternoon, I went to the opening of the exhibition Doublet #5, a collaboration between Lisa Sebestikova and Lenneke van der Goot. Lisa creates scultures made from various materials. Some of the sculptures, I saw before this year on Sunday, May 28 at 'KunstenLandschap 2023'. Her scultures were hung above an area filled with water and ink. Lenneke decorated the walls with drawing and prints from her works, many of which are lithographs. At about 15:56, I bought the book Wandering Lines written by Arno Kramer and Richtje Reinsma, edited by Lenneke van der Goot and Welmer Keesmaat, written in Dutch and English (translated by Mari Shields), and published by Tique in 2017, ISBN:9789081850377, for € 15.00.
Going into the cityThis afternoon, I went into the city for about two hours. I first visited Fotogalerie Objektief where I saw the exhibition Peat with photographs by Bo Scheeringa. I like the landscape picture very much, like this and this. She must have spend a lot of time outside. I paged through the book that was on sale, but I was not impressed in view of the price. Next, I went to Beeld & Aambeeld, to see the exhibition De Nieuwe Kust with photographs by Michael Rhebergen again. From there I went to Concordia. Upstairs I saw the exhibition Samenspel. I liked the drawings by Adeniji Adeoluwa, who studies physiotherapy here in Enschede. I also liked the book and installation by Nadine Klok. Downstairs the last preparations for the next exhibition, which will open tomorrow afternoon, were in progress. Finally, I went to bookshop Broekhuis to look around a bit.
Installing Flutter on Ubuntu 22.04Tuesday evening, I made an attempt to install Flutter on FJF4 (running Unbutu 22.04 LTS) following the instructions on Linux Installation Guide. I think I used the command:
sudo snap install flutter --classicWhen I ran flutter doctor. It reported problems with the 'Android toolchain' and 'Unable to determine VS Code version'. I made some attempt to fix those problems, but got stuck. On Thursday, I decided to give it another try. I already had installed Visual Studio code some time ago. When I started, it reported that it was Version 1.84.1. I guess that it has been updated automatically recently. Visual Studio code started to download .NET, but reporting time-outs. I went to the trouble shooting page. Although I think, I will not really need .NET for Flutter, I followed the instructions on Install .NET SDK or .NET Runtime on Ubuntu 22.04. I executed the commands:
sudo apt-get install -y dotnet-sdk-7.0 dotnet --list-sdksThe last command retruned 7.0.113 [/usr/lib/dotnet/sdk]. I restarted Visual Studio Code and it still wanted to install .NET version 6.0. So, I executed the commands:
sudo apt-get install -y dotnet-sdk-6.0 dotnet --list-sdksThe last comamnd now also returned 6.0.124 [/usr/lib/dotnet/sdk]. I created a settings.json file with some paths according some instructions and restarted Visual Studio Code again. It again reported some problems, but gave me the possibility to cancel downloading. I suspect this is going to happen every time. I am always a bit surprised why it is so difficult to get such simple things correclty. Why is there some automatic mechanism to download .NET, but no simple to stop it?
I also installed Android Studio by downloading the file android-studio-2022.3.1.20-linux.tar.gz. I extracted it to my home directory and executed the command:
cd android-studio/bin ./studio.shI installed the Flutter and Dart plugins. When I run flutter doctor, it still reports the same problems. It finds an Android SDK that I have installed before, but complains that the cmdline-tools component is missing. I have to run some sdkmanager command, but when I do this, I get what seems to be Python runtime error. I downloaded the file https://f-droid.github.io/android-sdk-transparency-log/signed/checksums.json.asc and copied it to /root/.cache/sdkmanager/ after which the command sudo sdkmanager --licenses reported: 'All SDK package licenses accepted.' The command: sudo sdkmanager --install "cmdline-tools;latest" still returns the same error.
Today, I read some more and tried to install the Android Studio. From the start page, I selected 'Customize' and then 'All settings' to open the Settings dialog. In which, under 'Languages & Frameworks' I selected 'Andriod SDK'. In the 'SDK Tools' tab, I selected 'Android SKD Command-line Tools (latest)' and some others and clicked OK, after which some components were installed. After I ran flutter doctor again, it only reported that I had to run flutter doctor --android-licenses to acknowledge the licenses. After this, it reported that the Android toolchain was installed (version 34.0.0). So, it looks I am good now following Your first Flutter app at codelab along the video Building your first Flutter App - with a Codelab!. I guess, I should have read the 'Frequently Asked Questions' section of Set up your Flutter environment a bit better. It looks like I still had to install Flutter plugins in Visual Studio Code through File -> Preferrences -> Extensions. I got Flutter v3.76.0 installed. And it seems, I can follow the tutorial just fine.
Killers of the Flower MoonThis afternoon, Conny and I went to see the film Killers of the Flower Moon. An impressive film. Lily Gladstone, who played Mollie Kyle in the film, is not from the Osage Nation, located in Oklahoma, but is of Piegan Blackfeet, Nez Perce, and European heritage and grew up on the reservation of the Blackfeet Nation, located in Montana. I liked it that film made use of the Osage language and that not all of it was translated. I also found out that in 2006 the language was given its own script and I like it that it is actively used.
- A Brief History of Tricky Mathematical Tiling
- Blog of Gilleain Torrance with many painting of tilings.
Tuesday, November 7, 2023
D, d and bI am a bit dyslectic. I primarily struggle with spelling and remembering rote facts. I also struggle a bit the letter 'D', 'd' and 'b' when writing software. I am currenlty developing an emulator for the intel 386 processor. (Code can be found here.) In the past two weeks, I again spend a lot of time debugging the code as I wrote about two weeks ago. The last bug I fixed was because I had mixed up the 'edx' and 'ebx' registers for one instruction. This mistake is probably also related to the fact that in some of the sources these registers are called 'EDX' and 'EBX', because I had used 'ebx' where I should have used 'edx'. I wondered why the capital of 'd' id 'D'. In the Greek alphabet the Delta is written like uppercase Δ and lowercase δ. It is not so difficult to see how the lower case became the 'd'. It is interesting to see how it was written in the Fraktur calligraphic hand of the Latin alphabet. In the Latin alphabet the Delta is already written like 'D'. This alphabet is based on the the Old Italic script. where it is found in South Picene alphabet from the 6th century BC.
Saturday, November 4, 2023
Friday, November 3, 2023
Thursday, November 2, 2023
62 yearsI was born on Wednesday, November 1, 1961 at 9:45 in the morning (CET). That means that today, I will be 61 years according to the calendar and 22645 days old. But how old am I really? The tropical year, the time that it takes for the seasons to return, is said to be 365 days, 5 hours, 48 minutes, and 45.19 seconds. Today, around 10:07:41 in the morning, it was 62 tropical years since I was born. But the tropical year is shorter than the sidereal year, the time taken by the Earth to orbit the Sun once with respect to the fixed stars, namely 365 days, 6 hours, 9 minutes, and 9.76 seconds. That means that, tomorrow at 7:13:05 it will be 62 sidereal years after I was born. The average anomalistic year, the time taken for the Earth to complete one revolution with respect to its apsides, is 365 days, 6 hours, 13 minutes, and 52.6 seconds. That means that, tomorrow around 12:05:21 it will be 62 average anomalistic years since I was born.
HarvestThis morning, this is what we got from Herenboeren Usseler Es, a farming cooperative we are members of.
Clockwise starting in the left bottom corner: 1Kg floury potatoes, head of green chicory, two red cabbages, three white cabbages, bunch of radishes, some field lettuce, two pieces of fennel and two cloves of garlic. The garlic is not part of the harvest. They are leftover cloves from the planting that was done last week. Garlic needs a long growing season and the best time to plant garlic is in the fall, October or November.Nico:
- The Inner Scar (La Cicatrice intérieure) / Dir. Philippe Garrel / 1972
- Nico - My Heart is Empty
- Nico: Autopsy of An Icon
- The Velvet Underground & Nico "I'll Be Your Mirror" (Warhol film footage)
- Nico's last interview, Berlin (1988)
- Nico - The Marble Index (1968) FULL ALBUM Vinyl Rip
- Un Ange Passe (1975) - Philippe Garrel [ULTRA RARE]
BooksAt 16:07:47, I bought the following two books from charity shop Het Goed for € 6.00 each:
- Dutch Designers Yearbook 2021: Horizons edited by Freek Kroesbergen, written in Dutch and English and published by nai010 on Tuesday, June 21, 2022, ISBN:9789462086579,
- Dutch Designers Yearbook 2022: Chaos edited by Freek Kroesbergen, written in Dutch and English and published by nai010 on Tuesday, August 8, 2023, ISBN:9789462087774
Strong symmetric-key encryptionOn Monday, March 26, 2012, I wrote something about symmetric-key encryption. Today, I worked on the program Encrypt.cpp, which I started working on based on the ideas that I presented there. The program is primarily to test the algorithms. I also used the pseudorandome number sequence test program ENT (from the Fourmilab/ent_random_sequence_tester git repository) to check the random properties of the encoded file. Everytime the program is executed it produces an output.data file with a different contents. Everytime, I ran the ENT program, it reported an entropy of 7.99 or higher and that it cannot be compressed. I am thinking about writing a simple editor with which I an encoded file can be created and editted, without it having to be stored unencrypted in a file. This could be as a very primitive replacement for a password manager. I think I am going to follow Build Your Own Text Editor. As with each encryption method that is not implemented by experts, I have to state that I cannot give any guarantee that it is fit for any purpose.
Curly kaleThis afternoon, I blanched some curly kale for the first time by steaming it in a pan with a layer of water boiling for three minutes. Later I realized that we also have a steamer. Maybe a good idea to use that next time. Yesteday, we received two heads of curly kale from Herenboeren Usseler Es. Conny had put them in a vase in the hallway. We also received two kilos of potatoes, one kilo of white sweet potatoes, a red pumpkin, a small green pumpkin, celery root, stem onions, winter cherry and two bags of whole wheat flour (approximately 1Kg each). I also brought another two kilo bag of wheat grain to clean. We removed approximately 300 grams of kale from each head. I blanced the curly kale from one head and put it in the freezer compartment of the refigerator after it cooled down. From the other head we made curly kail hotchpotch also using some of the potatoes we got yesterday. We added some pork cut in cubes to the hotchpotch and ate it together with some smoked saugate, some fried liverwurst, some gherkins and some red roasted peppers strips, which I although never had before, fitted very well with the hotchpotch. ninth of this month, I have been working on the emulator, of which the code can be found here. I have come to discover how hard it is to debug the emulator. I did find some interesting resources with information about the instructions: A table giving the instructions based on their hexadecimal value and x86 and amd64 instruction reference. I am thinking about building a debugger into the emulator, like I did for template script language I developed when working on implementing an IDL-compiler for Eclipse Cyclone DDS.
Thursday, October 19, 2023
- Anomalies in Gravitational-Lensed Images Revealing Einstein Rings Modulated by Wavelike Dark Matter
- David's Wiki