About

Feeds

 

〰 Tidal, Archiloque's feed reader

roguelike development"Roguelike Tutorial, using python3+tdl": Update

I've finally updated [http://www.roguebasin.com/index.php?title=Roguelike_Tutorial,_using_python3%2Btdl Roguelike Tutorial, using python3+tdl] on roguebasin. Part 10 is done, and I'll try adding another part every week or so. Sorry about the delay, my (soon to be former-) day job has been killing me!

A few points to note:

1 - You'll have to update to the latest version of tdl to create the title screen in Part 10.

pip3 install -U tdl 

It now depends on libtcod-cffi, which will automatically be installed. This brings in a few extra dependencies.

Linux users on Debian-based distros users should install:

gcc libsdl2-dev libffi-dev python-dev 

If you use another distro you'll need to figure the equivalent packages. You can let me know what they are so I can update the wiki.

For Windows users, [http://www.mingw.org/ MinGW] must be on the path for use with pycparser.

Someone also left this information on the wiki:

If you're working on a fresh environment or a new PC, don't forget to install the latest Microsoft Visual C++ runtime. If you've made sure that your x32 or x64 version of Python matches both your operating system and the install packages and you're still getting "ImportError: DLL Load Failed" when you try to execute the code, this may be the issue.

As for the Apple world If you know how to get things running on a mac, let me know or just edit the wiki yourself.

2 - If you started out with an earlier version of tdl, you'll have to change all instances of

user_input.char 

to

user_input.text 

3 - There was a mistake in the tutorial before. The line

tdl.set_fullscreen(True) 

should read

tdl.set_fullscreen(tdl.get_fullscreen()) 

4 - Many months have gone by between the time that I wrote the code and the tutorial itself. If anyone could try the tutorial for Part 10 and let me know if it works, that would be great. At the end, you could check if there are any discrepancies between what you end up with and the code provided in the link at the end.

5 - I ran into some problems updating to the latest tdl on my Debian system. I ended up having to run pip3 as root and remove the old version of tdl from my user's libraries in ~./local to make it work. If you have the same problem, please let me know!

6 - tld is under active development, and things may break as newer versions come out. If you try the tutorial with a release beyond 3.1.0 and something seems broken, let me know.

7 - Big shoutout to HexDecimal, the creator and maintainer of the tdl port of libtcod. On two occasions he has implemented new feature within hours of my request. The tutorial wouldn't be as complete as it is without these features.

8 - I highly recommend playing "Hall Of The Mountain King" by Savatage in the background while playtesting your latest roguelike.

Happy hunting in the Tombs of the Ancient Kings!

submitted by /u/weilian82
[link] [comments]
Planet IntertwinglyIBM BigFIx Patch released Fixlets for the CVE 2017-7494 Remote code execution from a writable share Vulnerability (also known as Sambacry)
IBM BigFix Patch has released Fixlets to the following sites to address the CVE 2017-7494 Sambacry Vulnerability, also known as SambaCry: Patches for CentOS site versions: CentOS 6, CentOS 7, CentOS 6 R2, CentOS 7 R2 Patches for OEL site versions: OEL 6 and OEL 7 Patches for RHEL site versions: RHEL 6, RHEL 7, RHEL 7 PPC64LE, RHEL 6z RHSM, RHEL 7z RHSM Patches for SLE site versions: SLE 11, SLE 12, SLE 11z, Patches for Ubuntu site versions: Ubuntu 14 andUbuntu 16 Samba gave the following description in its advisory and has advised upgrades or applying the patch as soon as possible. "All versions of Samba from 3.5.0 onwards are vulnerable to a remote code execution vulnerability, allowing a malicious client to upload a shared library to a writable share, and then cause the server to load and execute it." No other action is required after applying the Fixlets. For more information, see https://www.samba.org/samba/security/CVE-2017-7494.html.   Application Engineering team IBM BigFix Patch
Planet Intertwinglyco-led #NPSF, saw Monets, stepped in the sea to climb a boulder, hiked to a labyrinth, drove thru sand swirls down the coast
co-led #NPSF, saw Monets, stepped in the sea to climb a boulder, hiked to a labyrinth, drove thru sand swirls down the coast
Hacker NewsIntel’s Core i9 Extreme Edition CPU is an 18-core beast
Comments
Planet IntertwinglyWhy You Need A Will
Life might be uncertain, but death is certain. Although it's something you probably do not want to think or talk about,  you can make things a lot easier for your loved ones you'll be leaving behind by getting a will prepared and notarized. Having a will removes the guesswork after you're gone. Your will should contain specific instructions on how you want those you've left behind to handle your estate. It will also have instructions for variety of situations. What Is a Will? A will is a legal document, that can even be created on a site like LegalZoom, that sets forth your wishes regarding the distribution of your property and instructions as to how you want your property and assets to be distributed after your death. It contains the names of people you want to benefit, as well as details of your possession.  Need For a Will? Writing a will gives you personal discretion over the distribution of your assets, by letting you decide how your belongings should be distributed. Care of infant. First and foremost, think about your kids. Where your children are still minors, you can name guardians for them through your will. If you die without a will, the court gets to decide who should care for your kids. Beneficiaries: to choose who benefits from your estate upon your death you must have a Will Executors: a Will allows you to appoint the person/s who will administer your estate, including giving instructions on arranging your funeral. Avoid Lawsuits: you may avoid an unnecessary legal claim against your estate if you have an appropriately written and valid Will. Death is a certainty: tomorrow is not certain, so having a will which deals with your current circumstances is a wise decision. If you already have a will, now is time to review it to reflect current developments in your estate. What Happens If I Don't Have One? Those who die without a will are said to have died intestate. In such a case, the state will oversee the distribution of your assets and not actually inherit them as several people erroneously assume. An intestate estate is distributed according to a state's set formula. Not having a will can open up a worm can of family disputes. Prepare for the unforseen and show your loved ones they matter even beyond death. Get a will today.  
Planet IntertwinglyWhat is the OSI model?
Learn about what may be the single most important networking concept that helps different systems communicate—the OSI model. Continue reading What is the OSI model?.
Planet IntertwinglyHow do I recover the password on a Cisco router without losing its configuration?
Learn how to change the configuration register so that a router password can be recovered without losing any configurations.Continue reading How do I recover the password on a Cisco router without losing its configuration?.
Planet IntertwinglyHow do I configure a Cisco router for secure remote access using SSH?
Learn the configuration steps required to enable a Cisco router to accept Secure Shell (SSH) connections over the virtual terminal (VTY) lines.Continue reading How do I configure a Cisco router for secure remote access using SSH?.
Hacker NewsShow HN: Will Robots Take My Job?
Comments
Hacker NewsThis dystopian device warns you when AI is trying to impersonate actual humans
Comments
Hacker NewsIntel Announces Skylake-X – up to 18 cores
Comments
Ars TechnicaCasual gamers who want an affordable desktop now have an option from Dell

Enlarge (credit: Dell)

Most companies that make gaming PCs and laptops are trying to snag the attentions of new "casual" gamers. These customers either can't afford to spend thousands of dollars on a high-end gaming device—or they don't want to. However, they still want a machine that can handle their regular bouts of gaming.

Dell's current answer for these customers has been its Inspiron 15 gaming laptop, but now it's adding its first desktop PC to the Inspiron Gaming line. Today, the company announced the Inspiron Gaming Desktop, which it hopes will attract casual gamers who don't need to bring their gaming endeavors outside their home.

Dell's Inspiron Gaming Desktop looks like a standard tower, but with a cross-hatched, semi-open design on its bottom-left side. This design has practical and aesthetic purposes: it provides better ventilation for the PC's internals while also giving the tower an edgy look that most customers associate with gaming devices. The center Dell logo and the inside of the PC emit an electric-blue light, which also fits with the gaming-device style (if you're not into the blue light, there's also a model with basic white light).

Read 5 remaining paragraphs | Comments

Ars TechnicaIntel claims 30% performance boost for 8th generation processors

Enlarge / Back in February, Intel said only "greater than 15 percent" boost from 7th generation (Kaby Lake) to 8th generation (Coffee Lake) on its incrementally improved 14nm process. Now the company is saying "30 percent" improvement. (credit: Intel)

While Intel's big news today is the announcement of its 18 core, 36 thread, high-end desktop X-series processors, the company has revealed one detail for the 8th generation mainstream processors that are due to be released later this year: the new chips will, at least in some particular circumstances, be 30 percent faster than 7th generation Kaby Lake parts.

That's a huge generational improvement, but of course, there are footnotes to consider. The 30 percent boost came in one benchmark—SYSmark 2014 version 1.5—and applies to 15W U-series mobile processors. The comparison pits an i7-7500U (2.7GHz base, 3.5GHz turbo) with two cores and four threads against an unnamed next generation chip. The new chip has an unspecified base clockspeed, a 4GHz turbo, and doubles the number of cores and threads to four and eight. The 8th generation chip is built on a refined iteration of Intel's 14nm process.

Any further details on the new architecture, codenamed Coffee Lake, are not forthcoming. The chips are still scheduled for release some time in the second half of the year.

Read on Ars Technica | Comments

Planet IntertwinglyCloud hosting 101
In short, cloud hosting services host websites on virtual servers that use computer resources from underlying networks of physical servers. It means that computer resources are not consumed as a product but as a service, much like when using electricity or gas at home. In general, the customer can use the service as much as they need to run their website, and then they only pay in proportion to how much they used. It is an alternative to hosting websites on single servers (dedicated or shared) and can be seen as an extension of the concept clustered hosting, that is to say, that the same site is hosted on multiple servers. For cloud hosting, the server network used is significantly larger and may be spread across multiple data halls in different locations. Cloud hosting can be performed both under the Infrastructure as a Service (IaaS) and/or Platform as a Service (PaaS) concept. In an IaaS service, the customer simply gets virtualized hardware on which they can install the software environment they want, and then start building their web application. However, in a PaaS service, the customer gets a built software environment, such as a solution package (operating system, database support, web server application and programming support) that they can instantly install and develop their web application. For instance, you get a free domain with bluehost when you sign up for their regular hosting or cloud hosting solutions. Companies with more complex IT infrastructure and experienced IT experts may want the more customizable IaaS model, while others prefer the easier PaaS option. A further development of the concept of cloud hosting for corporate customers is the virtual data center (VDC). It consists of a virtualized server network in the cloud at which all the company's IT operations can be hosted, including its websites. The most common examples of cloud hosting are when hosting in a public cloud, that is, the sites are hosted on virtual servers based on the same underlying computers as other publicly available virtual servers, and the information is transmitted over public networks. Such public clouds come with multiple security measures to ensure that the information is kept private and it usually suffices for most websites. But when safety and integrity are of greater importance, companies can choose to use a private cloud instead. This means that the cloud uses earmarked resources (servers, networks, etc.), resources that can be located at the customer's own or at the cloud supplier. A common cloud hosting service has the following advantages: Reliability - Instead of coughing on an individual physical server, the hosted site is hosted on a virtual partition that gets its capacity from a comprehensive, underlying network of physical servers. If a server is down, then the overall capacity of the cloud decreases slightly, but it has no effect on the site because its virtual server simply uses the only capacity from the remaining servers in the network. Some cloud platforms may even be undamaged even if an entire computer hall would go down, as they pull capacity from several different data rooms in several different locations to spread the risks. Physical security - The underlying servers are located in data rooms, thus benefiting from the security measures that they have taken to avoid interference and interference. Scalability and flexibility - Computer resources are available whenever required and are not limited by the physical capacity of single servers. If a customer site needs extra capacity due to A sudden peak in visitor traffic or the implementation of any new feature, it will automatically be arranged. Although it is a private cloud that is used, the service can often be designed so that the cloud can be "blown up" in the event of sudden activity halt and extract resources from the public cloud that is then given to the least sensitive parts of the business. Quantity-based cost model - The customer pays only for what they use. There are additional computer resources available when demand is high, but they are not used and cost nothing when demand is low. Automatic load balancing - Load balancing is handled by software that automatically adjusts capacity according to demand.
Ars TechnicaIntel unveils X-series platform: up to 18 cores and 36 threads, from $242 to $2,000

Intel

AMD announced its new high-end desktop (HEDT) platform, the 16 core 32 thread ThreadRipper a couple of weeks ago. At Computex in Taipei, it's Intel's turn to update its HEDT platform, and it's one-upping AMD in the process. The Intel platform, consisting of the new X299 chipset and new X-series processors, will go all the way up to 18 cores and 36 threads.

The HEDT segment is aimed at gamers, video streamers, and content creators with deep pockets or an insatiable desire for more concurrent threads than the mainstream processor segment has to offer. The value proposition for this segment is always a little skewed, with the chips being as much prestige parts as anything else. Straightforward gaming workloads may struggled to make full use of the chips' resources, but serious Twitch streamers, for example, can make good use of the extra cores. Software developers are another group that can make good use of all those cores.

Read 12 remaining paragraphs | Comments

Hacker NewsAsk HN: Reached 1k+ paying or registered users without spending on ads?
Comments
Hacker NewsFor Hotels, There’s No Room Left for Online Travel Agencies
Comments
Hacker NewsNode.js needs to die in a fire and Golang is the perfect arsonist [backup]
Comments
Planet IntertwinglyWhat can I do if I want to change the pagesize of DB2 tablespaces
There may be occasions that you want to change the tablespaces from the current pagesize to a different one, for instance from 4KB to 8KB. Please note tablespaces pagesize cannot be changed directly. However, you can use the following steps to move the tables to the new tablespaces with the pagesize you want and then drop the original tablespaces once you confirm the new tablespaces work(the following is an example to move to 8KB tablespaces): 1.Create a bufferpool with 8KB pagesize if you don't have one already db2 CREATE BUFFERPOOL bp-name SIZE xxx PAGESIZE 8K 2.Create the tablespaces needed(data,index,lob) with 8KB pagesize        db2 CREATE TABLESPACE TBS1 PAGESIZE 8K                                   db2 CREATE TABLESPACE TBS1_IDX PAGESIZE 8K                               and create lob tablespace if needed                                      3.Use the following as an example to move a table to the target          tablespaces(specify its data,index,lob tablespace name)                                                                                           CALL SYSPROC.ADMIN_MOVE_TABLE(                                           'USER1',                                                                 'T1',                                                                    'TBS1',                                                                  'TBS2_IDX',                                                              'TBS3_LOB',                                                              '',                                                                      '',                                                                      '',                                                                      '',                                                                      '',                                                                      'MOVE');                                                                                                                                          You can put the above in a file yourfile and run "db2 -tvf yourfile"(Change the tablename, tablespaces name accordingly).         
Hacker NewsIt’s Time for Silicon Valley to Disrupt Its Toxic Asian Stereotypes
Comments
Hacker NewsSomeone forged my resignation letter
Comments
Hacker NewsHow to read more: Simple three-step system
Comments
Les CrisesLe règne des idiots, par Chris Hedges

Source : Chris Hedges, Truthdig, le 30/04/2017

Mr. Fish / Truthdig

Dans les derniers jours des civilisations qui s’écroulent, les idiots prennent la relève. Des généraux idiots mènent des guerres interminables et ingagnables qui mettent la nation en faillite. Des économistes idiots appellent à réduire les impôts des riches, et à couper  les programmes sociaux des pauvres, en prévoyant une croissance économique basée sur un mythe. Des industriels idiots empoisonnent l’eau, le sol et l’air, suppriment les emplois et réduisent les salaires. Des banquiers idiots jouent sur les bulles financières qu’ils ont eux-mêmes créées et réduisent les citoyens à l’esclavage en vertu d’une dette qui les écrase. Des journalistes et des intellectuels idiots prétendent que le despotisme est la démocratie. Des agents de renseignement idiots orchestrent le renversement de gouvernements étrangers pour créer des enclaves sans loi où prospèrent des fanatiques fous-furieux. Des professeurs, des «experts» et des «spécialistes» idiots s’occupent, avec un jargon inintelligible et des théories obscures, à soutenir la politique des dirigeants. Des animateurs et des producteurs idiots créent des spectacles scabreux, pleins de sexe, de sang et de fantasmes.

Dans la checklist bien connue de l’extinction, nous sommes en train de cocher toutes les cases.

Les idiots ne connaissent qu’un seul mot : « plus ». Ils ne s’encombrent pas de bon sens. Ils accumulent richesse et ressources jusqu’à ce que les travailleurs ne puissent plus gagner leur vie et que l’infrastructure s’effondre. Ils vivent dans des enceintes privilégiées où ils commandent des tirs de missiles en mangeant du gâteau au chocolat. Ils voient l’Etat comme la projection de leur vanité. Les dynasties romaine, maya, française, habsbourgeoise, ottomane, romaine, wilhelminienne, pahlavi et soviétique se sont effondrées parce que les caprices et les obsessions des idiots au pouvoir faisaient la loi.

Lire la suite

Les CrisesLe syndrome du larbin , par Jolemanique

Source : Jolemanique, 14-04-2017

I) Définition

Chez un individu, le syndrome du larbin est un comportement pathologique visant à prendre systématiquement la défense des classes les plus favorisées au détriment de celles dont il est issu. Ce syndrome diminue les capacités d’analyse du larbin et se traduit par un blocage psychologique l’incitant à agir préférentiellement contre ses propres intérêts au profit de ceux qui l’exploitent.

II) Analyse des symptômes

L’amour démesuré qu’affiche le larbin à l’égard des patrons, des rentiers ou des milliardaires, est l’acte de foi qui structure son discours. Le larbin agit sans discernement de ce qui pourrait être bon pour lui, il intellectualise le débat pour tenter de nous convaincre que piocher chez les riches est toujours la pire des solutions, quand bien même il en serait bénéficiaire. Les arguments économiques qu’il invoque inlassablement n’ont pas servi à forger sa conviction, le syndrome du larbin est malheureusement une vocation qui se trimbale dès le plus jeune âge et contre laquelle il n’existe aucun remède. Le larbin n’a pas choisi d’aimer les riches, il aime les riches parce qu’il est un larbin. De tendance nettement libérale le larbin est celui qui vous vante les bienfaits du bouclier fiscal alors même qu’il ne paye pas d’impôts. C’est encore le même larbin qui voudrait réduire ou supprimer l’impôt sur la fortune même s’il sait qu’il ne sera jamais concerné par la question. Un écervelé victime du syndrome du larbin n’a pas de conscience politique, il vote instinctivement dans l’intérêt de ceux qui l’exploitent pour s’attirer leur bienveillance. Le larbin estime que l’argent qui lui fait défaut, est beaucoup plus utile dans le coffre d’un riche qui pourra ainsi le réinvestir beaucoup plus utilement qu’il ne l’aurait lui même dépensé. Le larbin cautionne tous les sacrifices et les plans d’austérité dont il pourrait être l’objet comme la baisse des salaires, ou encore l’augmentation de l’âge de la retraite même si son travail ne lui convient d’aucune façon et que ses maîtres ne lui offrent aucune perspective d’améliorer sa condition.

Lire la suite

roguelike developmentCrazy idea that just might work?

I've been thinking about truly unique features I could add to my roguelike (twt.eochu.com), game systems that are truly fresh and never done before.

And (since I've been having fun using a 3d printer) one of my crazy ideas is to have the player use a physical code-wheel or crypto device to succeed at a game sub-system (like opening gates or chests). Normally that would mean selling and shipping the physical device, but if I make it a free, download-able digital file, and let players print their own, it might be cool.

Something that works like this:

https://pinshape.com/items/888-3d-printed-eth-encrypt-treasure-hunter

But looks more like:

https://www.stlfinder.com/model/sun-wheel-pendant-free-3d-print-model/5536650

Please lead me down or away from this path of madness. :)

submitted by /u/techbear1980
[link] [comments]
Hacker NewsNotes on debugging Clojure code
Comments
QC RSSSpring Sale




Ads by Project Wonderful! Your ad could be here, right now.

Hi Melon

Hacker NewsXIX.ai (YC W17) Is Hiring an Engineering Lead
Comments
Hacker NewsMoving forward at PhoneGap
Comments
Hacker NewsMossberg Final Column: The Disappearing Computer
Comments
jwzTron B-Roll
These are glorious.




The team referenced a lot of Ernst Haeckel, the German Biologist who rendered by hand surreal organisms that resembled graphic prismatic coral structures [...] The IsoSurface housing Quorra's DNA had to be broken down and unwrapped in order to be accessed. To accomplish this, Flynn used a Voronoi Noise algorithim that suspended the heart by spherically wraping around it, allowing him to wade through an web-like interface to break open the DNA.


Hacker NewsAs Computer Coding Classes Swell, So Does Cheating
Comments
Hacker NewsWinning the Battle for Riddler Nation; an Agent-Based Modelling Approach
Comments
jwzCompromising a Linux desktop using 6502 opcodes on the NES
Typical music files are based on compressed samples and are decoded with a bunch of math. NSF music files, on the other hand, are played by actually emulating the NES CPU and sound hardware in real time.

Is that cool or what? The gstreamer plug-in creates a virtual 6502 CPU hardware environment and then plays the music by running a bit of 6502 code for a little while and then looking at the resulting values in the virtualized sound hardware registers and then rendering some sound samples based on that. [...]

There is a near total lack of bounds checking on proposed ROM mappings. This applies to be the initial ROM load, as well as subsequent ROM bank switching. [...]

However, a second logic quirk of this particular emulator makes things more serious: 2. Ability to load or bank switch ROM to writable memory locations. [...] As can be appreciated, we now have a lot of read and write control over the host emulator heap and the more experienced exploit writers will realize that successful exploitation is already all but assured. [...]

There's a critical reason that decent, reliable exploitation was possible with this bug: the presence of some form of "scripting" language. In this case, that script happens to be 6502 opcodes.

It is amazing that bank switching is the key to an exploit on modern computers, however, it shouldn't really be all that surprising: everyone knows that bank switching is what made the T-800 possible.

Previously, previously, previously, previously, previously, previously.

Planet IntertwinglyResult Set Setup does not show all fields from an application
You added a new Result Set Portlet on the Start Center, and when you click on edit to open the Result Set Setup to add the application (INVUSAGE) and query in there are only 12 available fields listed.  Why aren't the INVUSENU, CHANGEDATE, and CHANGEBY showing up?   This should be related to the webclient.resultset.relatedattributes properties in your Maximo environment. That property must have a value of 1, if you would like to see additional attributes when editing a Result Set Portlet query/attributes.   In order to fix this, go to System Properties app and find the webclient.resultset.relatedattributes property. Ensure that the Current Value is set to 1. If the webclient.resultset.relatedattributes does NOT exist in your System Properties app, then create it manually, using the New Row button from the Global Properties section.   You should create it as follows : Property Name:   webclient.resultset.relatedattributes Description:    View information that is related to the main record of the result set portlet Global Value:   1 Live Refresh:   (checked) After that, save your changes and do a Live Refresh on your new property, to ensure the Current Value gets set to 1. Then Log out from Maximo, and log back in.   See ya
Hacker NewsMatchbox Cars Design and Production (1965) [video]
Comments
Planet IntertwinglyRecord locking extremely slow on a cloned application
We had users reporting that after implementing record locking on work orders on a cloned WO app they call WO Tech, this WO Tech app is working extremely slow with record locking  and performance is very sporadic from computer to computer, some computers take 5-10 seconds to unlock the record, while others take 5-10 minutes, and others never complete the command and the user gets a swirling blue circle (which one user let it swirl for the entire 8 hour shift and it never unlocked the record).    Well, we had a meeting with the client and she showed me that the issue happens with the cloned WOTECH app, which was cloned from QuickRep.    The issue does not happen with the standard QUICKREP one.   QUICKREP takes only 2 seconds.  WOTECH takes 8 seconds.    We have been working on this case and I have seen many differences between the original QUICKREP and WOTECH files, and believe the number of fields that WOTECH has is much more than the QUICKREP, which makes the field validations to take longer in case of record locking functionality.    Initially, we had requested you to import the QUICKREP definitions into WOTECH definitions in Application Designer and let me know if they still faced the 8 seconds time, instead of 2.    However, this did not work for some reason in Application Designer. We tried to accomplish the suggested changes, however, for some reason, Application Designer is not taking the XML changes.    The XML definition for all applications in Maximo is also found in the PRESENTATION field of each application name in the MAXPRESENTATION table.    Because of that, we gave the following instructions. The instructions below will force the WOTECH app to use the definitions from original QUICKREP app.    Please do this :  1- Stop Maximo  2- Backup your database, specially the MAXPRESENTATION table.  3- Go to your SQL tool and run the following UPDATE statement.    UPDATE MAXPRESENTATION SET PRESENTATION = (SELECT PRESENTATION FROM  MAXPRESENTATION WHERE APP = 'QUICKREP') WHERE APP = 'WOTECH' ;    COMMIT ;    4- Restart Maximo  5- Test the scenario this time. Your WOTECH application will have the same content and controls from the QUICKREP application.    This solved the issue.  :-)   See ya
Planet IntertwinglyAn error occurred during implicit system action type "3" in Maximo configDB
Here is an error when running configdb after changing the length of the LOCATIONS.LOCATION field from 30 to 40. We were getting the following error.    BMXAA0345I - Altering table WORKORDER. Fri Oct 14 07:00:47 CDT 2016 alter table workorder alter column LOCATION set data type  vargraphic (40) ;  alter table workorder alter column WORKLOCATION set data type vargraphic (40) ;  An error occurred during implicit system action type "3". Information returned for the error includes SQLCODE "-954", SQLSTATE "57011" and message tokens "".. SQLCODE=-727, SQLSTATE=56098, DRIVER=4.11.69 Fri Oct 14 07:01:03 CDT 2016  BMXAA6819I - ConfigDB completed with errors. Fri Oct 14 07:01:03 CDT 2016    We've faced this issue only after increasing the length of the LOCATIONS.LOCATION field and while running the database configuration(configdb). We haven't tried it before to increase the length of the field. This is the first time we faced this issue only when changing the length of the LOCATIONS.LOCATION field from 30 to 40 so its not intermittent.    We've already checked the db2 config and noticed that the mentioned heap size is more than required i.e. applheapsz is having the value as '10240' (which is greater than 8192). So don't think this is the problem.  What else should we investigate ?   Well... Every customer's db needs will be different. Here is the db2 explanation of the error (the numbers used are examples only):    SQL0954C  Not enough storage is available in the application heap to process the statement.    Explanation: All available memory for the application has been used. The statement cannot be processed.    User response: Terminate the application on receipt of this message.  If the applheapsz database configuration parameter is set to AUTOMATIC, you will need to increase either the APPL_MEMORY database configuration setting, or the INSTANCE_MEMORY database manager configuration setting. Otherwise, increase the applheapsz database configuration parameter to allow a larger application heap.    When updating configuration parameters, it is recommended to change them by 10% of the current size at a time until the error condition is resolved. To change applheapsz, enter a command similar to the following, which sets applheapsz to size 4000 for database sample:    db2 UPDATE DB CFG FOR sample USING APPLHEAPSZ 4000    If all associated configuation parameters are set to either AUTOMATIC or COMPUTED, then the memory demands of the instance exceed the amount of memory configured on the machine. Possible solutions include reducing the database workload, enabling the connection concentrator feature, or adding additional memory to the machine.    sqlcode: -954  sqlstate: 57011      See ya
Planet IntertwinglyPhysical Count Adjustment not updating YORN attributes correctly
A new YORN type attribute was added to the INVTRANS Object to help identify whether a physical count update was entered as part of a "High Value Cycle Count" or a "Regular Cycle Count".  The updated YORN attribute value is not saved to the correct transaction record which is not allowing us to identify what type of cycle count caught the physical count discrepancy.    1. Open Database Configuration and add a new YORN type attribute to INVTRANS Object.  2. Save Record.  3. Start Admin Mode, Apply Configuration Changes and stop Admin Mode.  4. Open INVENTOR Application in the Application Designer.  5. Open Edit Dialogs box and select PHYSCNTADJ.  6. Add new Table Column to the already existing section.  7. Open Properties box for new Table Column.  8. Select new YORN attribute in the Attribute box and use fully qualified name (INVTRANS.AttributeName]) to define the attribute property.  9. Save.  10. Go to Inventory, select an item and select the Select Action>Inventory Adjustments>Physical Count.  11. Update the physical count and check the box of the new YORN attribute.  Click OK.  12. On a SQL Tool, run a query against the INVTRANS Table for the Item and Storeroom combination used in the physical count update.  The query results will show the new physical count update transaction but the new YORN attribute value for the new transaction will show as 0 (zero).    In the described scenario, one insert statement and one update statement are generated before a save is performed.    The update statement is intended by you to update the record created by the previous insert statement.  However, because this record does not yet exist in the database, an incorrect INVTRANSID is used for the update statement.    The test case adds an attribute to invtrans object. Adjust Physical Count action takes values from INVBALANCES object ( where the user added a YORN  attribute to  INVTRANS ).    When the invtrans record is inserted, the YORN field has a default value 0. The relationship from INVBALANCES to INVTRANS picks up the first record in Invtrans and updates that YORN attribute.    A possible solution would be to add the YORN attribute to INVBALANCES in addition to INVTRANS  and then override the java code or create a crossoover domain.    See ya
Hacker NewsPadlet, one of the largest sites in the world, is hiring a full-stack engineer
Comments
Planet IntertwinglyAIX: WHO IS LOCKING MY FILE?
File locking is an essential concept for insuring data integrity. It is quite common for programs to 'lock' files to make sure that what they read is accurate or to prevent anyone from reading or writing the file that they are modifying.   Because of that it might happen that your program fails to acquire a lock on a file. While some programs will handle this silently by retrying to obtain the lock some might report an error, hang waiting to acquire the lock or simply terminate.   Most users know about the 'fuser' command to check who is using what file. While this works fine in some cases, the command is very slow and sometimes not suitable on heavy systems or in cases where the lock is held for a time too short for 'fuser' to identify the owner.   This small article will help you find out who is holding a lock on the file you are trying to access. We will use a few different scenarios with files both on a regular and on a NFS mounted file system.   A few words about locking itself before starting. There might be various ways to lock a file but most commonly 'fcntl()' is used to perform file locking because it conveniently works with files that reside either on a regular or NFS mounted file system. Also 'fcntl()' is compatible with most Unix flavors which is a valuable point when it comes to porting applications to various platforms. As well 'fcntl()' allows you to have 'read' or 'write' locks and hold a lock on a 'part' of the file or on the whole file based on your requirements.   So let's go and visit a few scenarios on AIX... == Scenario 1 ==     Your program is trying to lock a file that resides on a local file system   but that file is locked by another program that also uses 'fcntl()' to   handle locking. The other program holds the lock long enough for you to   notice the error from your program and run some diagnostics.   In that case we might use a simple C program that also uses 'fcntl()'   to identify who owns the lock blocking yours. The program 'chklock7.c'   below can be compiled using 'cc -q64 chklock7.c -o chklock7'.     /*----------------------------------------------------------------------------      *      * chklock7.c: Check who owns a lock on a given file.      *      * dalla      *      *--------------------------------------------------------------------------*/     #include
Planet IntertwinglyCoding topics for 05/29/2017
Programming Languages for Embedded Systems 101: Background and Resources – News “Here’s a brief guide to some useful programming languages used in embedded systems design—and where you can learn, practice, and master them.” tags: coding The Rust Programming Language “Rust is a systems programming language that runs blazingly fast, prevents segfaults, and guarantees thread safety.” tags: coding rust Google helps developers bind C++ to Python | InfoWorld “CLIF, an open source project developed at Google (but not an official Google product), is a framework for automatically generating C++ library bindings for multiple languages. It’s written in Python, and so far the only included language binding is for Python, both versions 2 and 3, but the plan is to allow other language parsers to be written for it.” tags: coding c++ python Posted from Diigo. The rest of my favorite links are here. © Robert S. Sutor for Bob Sutor, 2017. All rights reserved. Permalink | No comments Categorized under: What I'm Reading. Tagged with: C++, open source, programming languages, Python, Rust. Twitter: bob_sutor
Les CrisesL’amateurisme de Trump sur Israël, par Paul R. Pillar

Source : Paul R. Pillar, Consortium News, 05-05-2017

En dépit de l’optimisme affiché du président Trump, les perspectives de paix entre Israël et les Palestiniens restent sombres, en partie parce que Trump ne montre aucun signe de retrait par rapport aux positions dures d’Israël, comme l’explique l’ancien analyste de la CIA Paul R. Pillar.

Le président Trump a exprimé le désir de résoudre, d’une façon ou d’une autre, le conflit israëlo-palestinien et cela a été applaudi, mais les raisons d’être sceptiques sur le sujet dépassent de beaucoup les raisons d’espérer. La principale raison d’être sceptique est le manque de preuves que Trump ait pris politiquement ses distances par rapport à la position incarnée par le gouvernement israélien de droite et ses plus ardents supporters américains, qui favorisent le contrôle perpétuel d’Israël sur les territoires occupés. Malgré d’occasionnels vœux pieux, on ne voit aucune place pour une autodétermination des Palestiniens ou un État palestinien.

Le candidat républicain à la présidence Donald Trump s’adressant à la conférence AIPAC à Washington Dc, le 21 mars 2016

En tant que candidat à la présidentielle, Trump a pris cette position après s’être entendu avec Sheldon Adelson et avoir adopté les points de discussion de l’AIPAC comme les siens. En tant que président, il a donc nommé comme ambassadeur en Israël son avocat des faillites, un soutien de la droite dure du projet de colonisation israélienne des territoires occupés.

Lire la suite

Hacker NewsThe world’s biggest problems and why they’re not what first comes to mind
Comments
DedefensaNos deux derniers jours : urgence !

Nos deux derniers jours : urgence !

A l’heure et au jour où nous écrivons ce message, en tout début de ce 30 mai 2017, la barre de donation de dedefensa.org pour le mois de mai 2017 affiche €1.503. Nous remercions très chaleureusement ceux de nos lecteurs qui sont intervenus dans cette donation depuis le début de ce mois comme ceux qui ont répondu à nos derniers messages. Leur intervention nous est un soutien précieux, à tous égards.

Parce qu’il ne reste que deux jours pour cette donation de mai, cette somme de €1.503 est extrêmement éloignée du montant qui nous est nécessaire pour continuer à fonctionner normalement. (« “…les montants de €2.000 et €3.000 [...] constituent pour nous les sommes permettant respectivement un fonctionnement minimum des fonctions essentielles du site et un fonctionnement plus aisé de ces fonctions”. Nos lecteurs savent évidemment que, depuis mars 2011, les conditions économiques ont évolué et que les sommes proposées doivent être définies différemment. Le seuil du “fonctionnement minimum des fonctions essentielles du site” dépasse aujourd’hui très largement les €2.000 et se trouve quasiment au niveau des €3.000, avec le reste à l’avenant... »)

Vous connaissez la fragilité de notre situation, vous connaissez nos arguments, vous connaissez les nécessités de notre fonctionnement et vous connaissez enfin l’urgence présente... Nous demandons à nos lecteurs d’intervenir pour nous permettre d’établir une situation qui nous soit favorable, pour la fin de ce mois, comme ils ont l’habitude de le faire dans ces périodes. Nous les en remercions par avance.

 

Mis en ligne le 30 mai 2017 à 04H28

Hacker NewsNeil Hunt on Netflix and the Story of Netflix Streaming
Comments
Hacker NewsGiphy plans to build a real business
Comments
Hacker NewsDesigning a Faster, Simpler Workflow to Build and Share Analytical Insights
Comments
Hacker NewsMoonScript, a programmer friendly language that compiles to Lua
Comments
Hacker NewsV8, Advanced JavaScript, and the Next Performance Frontier [video]
Comments
Hacker NewsAn empirical study on the correctness of formally verified distributed systems
Comments
Hacker NewsTorch – Scientific computing for LuaJIT
Comments
Planet IntertwinglyGeneral Reading for 05/29/2017
The Starter Tool Kit – The New York Times “Every home needs a good tool kit. Whether you live in a new apartment in the city or a century-old house in the suburbs, eventually you will need to do some home improvements.” tags: bs Posted from Diigo. The rest of my favorite links are here. © Robert S. Sutor for Bob Sutor, 2017. All rights reserved. Permalink | No comments Categorized under: What I'm Reading. Tagged with: . Twitter: bob_sutor
Hacker NewsFollow the CAPEX: Cloud Table Stakes
Comments
Hacker NewsChina's 'sharing economy' booms, but can it last?
Comments
Hacker NewsFifty Years of Minimalism (2015)
Comments
Hacker NewsSplit Tunnel SMTP Exploit Explained
Comments
Hacker NewsParlAI: A new software platform for dialog research
Comments
Hacker NewsShow HN: Early-stage spiritual Yahoo Pipes successor
Comments
Hacker NewsEyeglass Vendor, Imprisoned for Terrorizing Consumers, Is Accused of Fraud
Comments
Hacker NewsExtracting Chinese Hard Subs from a Video, Part 1
Comments
Hacker NewsPeople.ai (YC S16) Is Hiring Senior Front-End and Back End Engineers
Comments
Hacker NewsMathematics of shuffling by smooshing
Comments
Planet IntertwinglyProduct Marketing Manager for the Middle East and North Africa
For millions of users, Ramadan is a special period when their lifestyle changes. Google is there to help.
Planet IntertwinglyProduct Marketing Manager for the Middle East and North Africa
For millions of users, Ramadan is a special period when their lifestyle changes. Google is there to help.
Hacker NewsMichelson: The Language of Smart Contracts in Tezos
Comments
Planet IntertwinglyArtificial Intelligence / AI Reading for 05/29/2017
This is What Happens When a Neural Network Names Metal Bands – Geek.com tags:ai bands The AI fight is escalating: This is the IT giants’ next move | Computerworld “The [IBM] Watson range includes tools for creating chat bots, discovering patterns and structure in textual data, and extracting knowledge from unstructured text. IBM has also trained some of its Watson services with industry-specific information, tailoring the offering for user in health care, education, financial services, commerce, marketing and supply-chain operations.” tags:ai cognitive ibm Sexist robots can be stopped by women who work in AI | Guardian Careers | The Guardian “But they also highlighted a major problem faced by the AI industry: if robots learn from humans, there’s a good chance they’ll also adopt the biases – gender, racial and socio-economic – that exist in society.” tags:ai Posted from Diigo. The rest of my favorite links are here. © Robert S. Sutor for Bob Sutor, 2017. All rights reserved. Permalink | No comments Categorized under: Artificial Intelligence, What I'm Reading. Tagged with: AI, IBM, robotics, Watson. Twitter: bob_sutor
Game WisdomDissecting Design — Gemcraft 2

Dissecting Design — Gemcraft 2 Josh Bycer josh@game-wisdom.com

For this week’s Dissecting Design, we’re talking persistence systems in game design. Using Gemcraft 2 as an example, I talked about how persistence can add to a game’s design and replayability. While it’s not a perfect solution, it can go a long way towards keeping people playing a game.

The post Dissecting Design — Gemcraft 2 appeared first on Game Wisdom.

Hacker NewsShow HN: Search JavaScript libraries
Comments
Hacker NewsThe Strong Story Hypothesis and the Directed Perception Hypothesis
Comments
Hacker NewsNASA’s First Close-Up of Jupiter Is Shocking and Surprising Everyone on Earth
Comments
Hacker NewsWhy do so few people major in computer science?
Comments
Ars TechnicaThese are the online communities we will never forget

Enlarge / Tron 2 may not have been the best movie, but it sure made the internet look pretty. (credit: Disney)

There's nothing like the feeling of finding a group of true friends, or a gang of like-minded people who share your interests and annoyances. If you love technology as much as we do at Ars, that feeling probably hit you at some point when you were online. Today the Ars staff is celebrating some of the Internet communities we've loved.

Sometimes an online group is just a place to bitch about work, and sometimes it's a place to share your deepest secrets. Some of us found love online, and others found hope for the future of civil liberties. We gamed, we had deep discussions, we figured out how to prank dumb users, we talked about sports and science and digital surveillance.

And we're still doing it here, in Ars comments and forums. These are our stories, but they are yours, too. Tell us about the online communities you enjoyed for a quick joke, or the ones that changed your life.

Read 47 remaining paragraphs | Comments

Planet IntertwinglyAccessibility and the self-organizing team
In our last article on Accessibility in an Agile Lifecycle, we began talking about the importance of including all members of the software development team in the process of building accessible software. In many Agile methodologies, teams are meant to be self-organizing in order to allow team members to take those tasks that best fit their particular skillset. For example, a front-end developer might take on the HTML, CSS and JavaScript tasks for a story while a Database Administrator might take on the database related tasks. This allows the team to leverage the strengths of individuals to complete more tasks with lower risks during the sprint. The question you’re probably asking yourself then is, if teams are self-organizing, then doesn’t that mean that the person with the accessibility knowledge ends up with all of the accessibility related stories? On some teams, this is likely the case. However, what if we flip this question around to ask a slightly different, but related question? If teams are self-organizing, then doesn’t that mean that the person with the security knowledge ends up with all of the security related stories? That sounds crazy, right? In today’s world of Cross-site Scripting (XSS), Cross-site Request Forgery (CSRF) and RansomWare attacks (to name a few), shouldn’t the whole team be aware of how to write and test their code so that they don’t release an insecure product? You probably have a Security Person or Team that’s responsible for validating the product and they probably even have some special tools they use for making sure the product is secure against the latest threats that the development team hasn’t had time to learn about yet. If you’ve been in accessibility for any amount of time, that scenario probably sounds rather familiar. This is why the same idea goes for developing something so that it is accessible as it does for secure. Once the commitment is made by the organization and the development team to build something that is accessible, the team, not individuals, is responsible for seeing that commitment through to its success. So how do we do this? My favorite way is to demystify accessibility by talking to team members in each role on how the various accessibility laws and guidelines will affect their work. By the end of your chat, you want your developers to know that they can still use cutting edge tools like AngularJS and React. Designers and UX professionals will be happy to hear that building something that is accessible doesn’t mean it’s going to be ugly or have a clunky UI. I also make sure to explain accessibility to the Database Administrators, backend developers, the security folks, and whomever else has is part of the development team, so that they begin thinking of how accessibility might affect their role. Once the team has a better understanding of what accessibility is and how it effects their role, it is usually much easier to get them to take on accessibility related tasks. You’ll still need to check their work and perform your usual accessibility testing, but over time you’ll begin noticing fewer and fewer accessibility issues make it to your desk as the team, not just the accessibility professional, becomes responsible for developing an accessible product.
Hacker NewsHow the failed deal with Waymo left Ford in the lurch
Comments
Hacker NewsAsk HN: What does your diet look like?
Comments
Ars TechnicaThe battleship, the drone, and the chocolate chip cookies

RPV away, off the stern of the USS Iowa in 1987. (credit: US Navy photo)

Today is Memorial Day in the US, and we wanted to recognize the Ars readers and staff who've served by resurfacing another military memory from our resident Navy man, Sean Gallagher. Sean served aboard the USS Iowa, and here he recalls how he contributed to drone warfare with chocolate chip cookies (seriously). This piece originally ran in May 2015.

Two weeks ago, I made a pilgrimage to the Port of Los Angeles to visit the ship that played a central part in setting me on the path that put me where I am today—the battleship USS Iowa. And as I walked toward the Big Stick at its new home in San Pedro, a ship's boat sitting on the pier alongside her triggered a recollection of one of the most memorable episodes in my tour aboard Iowa: a night in late September of 1987 when I left my somewhat minor mark on the history of drone warfare with a box of chocolate chip cookies.

I was an ensign aboard the USS Iowa, which was taking part in a joint military exercise with the Turkish military called Display Determination '87, a rehearsal for a reinforcement of Turkish forces by US Army, Navy, and Marine units in the event of a Soviet invasion. From off the Turkish coast in Saros Bay, the Iowa was to provide shore bombardment in advance of a Marine amphibious landing. But the helicopter we had used to put our Marine forward observer in the air the day before was "tits-up," as they say, and we needed eyes in the sky for the final bombardment.

Read 10 remaining paragraphs | Comments

Hacker NewsAsk HN: Which games are you playing in free time?
Comments
Le Clavier CannibaleDisparition
Bernard Hœpffner, © J. Berny

On aimerait pouvoir dire de Bernard Hœpffner ce qu'avait dit Mark Twain en apprenant sa propre mort par un journal: "La nouvelle de ma mort est très exagérée" – anecdote qui ravissait Bernard. On aimerait ne pas croire à la disparition de ce baladin inspiré, ce templier de la traduction, l'imaginer ailleurs, ayant changé d'identité, voyageant sous un autre nom, se réinventant, ne traduisant plus que le vent et le soleil… Sa capacité de travail était titanesque, son enthousiasme radical, ses doutes fructueux. Les projets, il en portait comme un arbre des fruits au plus fort d'un interminable été, il n'y a qu'à aller voir sur son site, où tant de promesses brillent encore pour les années à venir. Le timbre si particulier de sa voix, qui était comme une musique un peu folle à suivre. Ses yeux aux scintillements mêlés, malice et étonnement, juste avant l'éclair du rire. Une poétique de la gourmandise. Une précision d'accordeur de piano. Une culture magnifique, une mémoire délicieusement feuilletée. Le grand motivateur. L'homme au million de feuillets. Non: au cent mille milliards. Chaque traduction exécutée avec l'attention d'un poème. Au fil d'or. Au sourire. Présent en des centaines de livres, comme une ombre portée. Nous laissant seul avec une foule de pages. Seul avec lui disséminé en chacune. 



Planet IntertwinglyPhoto: Staying Dry in the NY Adirondacks
via Instagram http://ift.tt/2quAcyg © Robert S. Sutor for Bob Sutor, 2017. All rights reserved. Permalink | No comments Categorized under: Photos. Tagged with: Adirondacks, photos. Twitter: bob_sutor
Planet IntertwinglyBest Food Reading for 05/29/2017
How to Grill the Best Burger Recipe – Bon Appétit | Bon Appetit “When the weather heats up and the backyard barbecues begin anew, there’s one thing we crave: a big, juicy burger. Luckily, Bon Appétit editor-in-chief Adam Rapoport is here to walk us through the process for grilling up the Double RL Ranch Burger, our cover recipe from the June 2015 issue.” tags:f Double RL Ranch Burger | Bon Appetit “Ralph Lauren’s signature burger. At his New York City restaurant, they use a mix of chuck, brisket, and short rib. If you have an awesome butcher, ask him or her to give you a blend, but you’ll get great results with chuck alone.” tags:f Posted from Diigo. The rest of my favorite links are here. © Robert S. Sutor for Bob Sutor, 2017. All rights reserved. Permalink | No comments Categorized under: Food, What I'm Reading. Tagged with: beef, brisket. Twitter: bob_sutor
Hacker NewsJailbreaking Super Mario World to Install a Hex Editor and Mod Loader
Comments
Hacker NewsShow HN: Legion, an as-simple-as-possible blockchain server written in Haskell
Comments
Hacker NewsWikipedia’s Switch to HTTPS Has Successfully Fought Government Censorship
Comments
Planet IntertwinglyPhoto: A duck on a dock on Cranberry Lake in the NY Adirondacks
© Robert S. Sutor for Bob Sutor, 2017. All rights reserved. Permalink | No comments Categorized under: Photos. Tagged with: Adirondacks, Cranberry Lake, photos. Twitter: bob_sutor
Hacker NewsGreen Threads Explained
Comments
Hacker NewsLibreOffice leverages Google’s OSS-Fuzz to improve quality of office suite
Comments
Planet IntertwinglyTainted Leaks
Last year, I wrote about the potential for doxers to alter documents before they leaked them. It was a theoretical threat when I wrote it, but now Citizen Lab has documented this technique in the wild: This report describes an extensive Russia-linked phishing and disinformation campaign. It provides evidence of how documents stolen from a prominent journalist and critic of Russia was tampered with and then "leaked" to achieve specific propaganda aims. We name this technique "tainted leaks." The report illustrates how the twin strategies of phishing and tainted leaks are sometimes used in combination to infiltrate civil society targets, and to seed mistrust and disinformation. It also illustrates how domestic considerations, specifically concerns about regime security, can motivate espionage operations, particularly those targeting civil society.
Hacker NewsAsk HN: Ex-Founder. Should I take lowball buyout offer?
Comments
Hacker NewsOn Becoming the Enemy – Boston Review
Comments
Planet IntertwinglyThe Internet is an agreement
Doc Jaap van Till has posted an aggregation of thoughts and links to remind us of what it seems we have so much trouble remembering: The Internet is not a thing but an agreement. An internet, network of networks, is a voluntary agreement among network operators to exchange traffic for their mutual benefit. (The Internet is a prototype internet.) That’s all — it’s an agreement. That’s from an earlier post by Jaap. It links out to the World of Ends post that Doc Searls and I wrote in 2003, which was aimed at explaining the Internet to legislators. I sense that we are due for a shift in tides, maybe over the next two years, in which the point that needs making is not that the Internet is dangerous and sucks, but that it it is dangerous and sucks and is the greatest invention in the history of our species. Cf. Virginia Heffernan, Magic and Loss.) This pendulum swing can’t come soon enough. The post The Internet is an agreement appeared first on Joho the Blog.
Hacker NewsAre CIA Officers as Bad Ass as in the Movies?
Comments
Hacker NewsTen Longreads for the Long Weekend
Comments
Hacker News(take 8 (phil-hagelberg))
Comments
Hacker NewsAsk HN: Should I leave my company?
Comments
Hacker NewsCatching Up with Intel's Python and AI Work at PyCon [audio]
Comments
Hacker NewsCould We Run Modern Society on Human Power Alone?
Comments
Hacker NewsAsk HN: Why isn't Prolog more popular?
Comments
Hacker NewsFood as medicine: your brain really does want you to eat more veggies
Comments
Hacker NewsBrowse Against the Machine, Firefox...
Comments