Right, I think it's time we get cracking, so thank you all for joining me today for infrastructure monitoring basics with telegraph Grafana and influx DB. So I'm a developer advocate for influx data, so they're we're the creators of influx DB. In my past life, I was involved in industrial IoT solutions. Now you might be wondering why is the guy that worked on industrial IoT solutions talking to you about observability and network monitoring and infrastructure monitoring. But I soon learned when I moved over to influx DB, there was a lot of nuances and practices that we apply in both fields, whether it be, you know, industrial based on monitoring industrial machines. It's very similar to how we monitor and look after our IT infrastructure as well. So yeah, I have a massive passion for the Apache ecosystem for which influx DB is now built, massive demo tinker at home. I'm driven to make observability and IoT solutions accessible to all. And my belief is that the domain, the industrial success of any department belongs with the domain experts. So it's our job as providers of services to enable people in those industries to make truly data driven decisions and provide real impact to their customers and to their users. So as I said, I come from influx data. So we've been involved with open source for quite a while now. Our product was founded in 2013 from very humble beginnings. We're now within over 750,000 instances worldwide. If you're familiar with home assistant and other projects like this, you're probably storing a lot of your time series data within influx DB. And you know, a lot of our customers now come from our open source department, Tesla, Disney, Google itself with their own IoT monitoring application solutions, all using influx DB as their one stop shots for their time series data. So on the agenda today, I thought I would basically break it down into a few stages as we've got quite a bit to cover. So first of all, I wanted to establish the difference between monitoring and observability. We'll see where they're similar and also where they differentiate and why they are two separate practices. We'll then have a look at a problem for me. Problem drives learning. So let's create a scenario and see how we can solve that using observability and monitoring practices. The cool thing is I actually use chat tbt to create my observability problem and then we will solve that observability problem. So it'll be quite interesting. From there, we will then do next steps. My plan is you should always be able to get your hands on code and get dirty with what's discussed here today. So anything that we discussed with regards to telegraph influx DB, Prometheus open telemetry, all of the source codes online. That's all they're available for you to use and you can come back and give me feedback later and so forth. So monitoring versus observability. So the core difference between monitoring and observability is twofold. Monitoring itself is the collection and analysis of metrics, logs and events. So when you think about a metric and say if you're familiar with Prometheus, what you're doing is you're polling an interval, say a CPU usage stat or a storage interval time or the capacity and saying, what is that reading right now? What is that metric? We're going to get that every minute, depending on your poll interval. An event is an unknown timed metric essentially. So you could imagine an event to be something like an error code or a user driven action. So they clicked a series of buttons and these are being logged and written to a data store with a timestamp. We don't know when they're going to occur like we can with metrics, but they are ingestible, none the same. And some of our most vital data comes from event based data. The cool thing with event based data is we can actually derive metrics or regular based metrics from our event based data using aggregation. So aggregation, I mean here is say we have a number of errors that come in. If we count those in minute intervals, we've derived a regular metric because we know every minute we're going to get a count of how many errors, even if it's zero errors. So monitoring, as you can see, if we boil down to it, whether we're looking at metrics, logs, events, we are looking at the state or health of the system that is out in the wild, whether it be in production or under development. We want to know, engage how that system is performing, whether that be from a very hardware system capacity, all the way to looking at resource utilization, etc. Where this differs with observability because you might be saying, okay, well, within observability, I use traces, logs and metrics as well. But there is a key differentiator here and that's the ability to drill down into our data and work out exactly what's happening and why an error message might have been occurred or why a certain process that a customer has driven is causing this error message. And this is where you see a lot of these buzzwords like open telemetry and Yeager as an application is really taking place. So when we think about monitoring, we're thinking about observing metrics over the course of machine. That system health, what's going on? And with observability, we're proactively drilling into our code to be able to work out why problems are occurring or what user driven event happened in order to even better write our code or work in how we can optimize that as well. And so if we boil monitoring and observability into its four fields, this is kind of how I see them. We have network-based monitoring. So when you think about that, we're monitoring routers, switches, firewalls. We're ensuring data transmission, detecting bottlenecks and identifying security threats. For server-based monitoring, we're tracking the performance and availability of physical or virtual servers. So think about CPU usage, memory consumption, disk space, response times, ensuring optimal performance and reduced downtime. Application performance monitoring or APM, monitoring the performance of software. Again, looking at bottlenecks in the architecture that we design, inefficiencies in code, how we connect with databases and how we query through databases and other infrastructure components. The reason I highlighted this one in blue was because for me, this is where monitoring and observability can meet. We can monitor our application infrastructure, but we can also observe our application infrastructure by looking at the traces produced within it. And then, of course, we have cloud infrastructure. And this can be a really broad term. You can encapsulate server-based monitoring or application monitoring within cloud infrastructure monitoring. But really where I want to derive it here is when we look at cloud-based services such as, if we take AWS, for instance, if we look at their own Kubernetes solution, if we look at any of their database services, we're basically looking at uptime, how they're performing the cost analysis of this as well. So that's how I differentiate cloud infrastructure monitoring from the other fields. So let's look at this chat GPT-driven problem. Funny enough, I feel it's trying to reproduce itself and then give us a problem within that area. So chat GPT said it created a situation called whisper GPT. And essentially, the idea was that it was going to provide services to the greater world, which would basically be a natural language process model and be used in support processing, et cetera, to provide credible responses back. The problem is, for them, is growth. So this is going to scale rapidly. We're worried about key differences in things like bottlenecks, latency, the hardware capacity, et cetera. And essentially, the team at whisper GPT would like to work on how we can build a scaled solution for monitoring each of these key components that we've discussed in a hybrid architecture. And what I mean by a hybrid architecture here is we can actually see that we have both on-site premise stuff that we need to monitor and also cloud-based application monitoring as well. So for whatever reason in our infrastructure, in this case, we might just want to keep some of our processing or compute on our own servers, in our own infrastructure, in our own building. So in this case, we have a series of servers running the whisper GPT model on its own GPUs. That's talking to a backbone within AWS where we run and scale out, say, our user interface and also our API that developers interface with. So we need to monitor each of these solutions within the hybrid infrastructure. So if we break it down into our four columns again, as you can see, we're looking at monitoring our network and routers for capacity, how many requests are coming in, how much data is being sent back from these models. Is our network suitable for being able to do this? Server-based monitoring. In this case, we're going to focus on CPU and GPU usage because we're running our models based on GPUs as well. Application performance monitoring. This is where we really focus on how well the Kubernetes cluster that's holding up our model or our application here is being able to scale and differentiate. Where should I be pushing traffic to? How many number of requests should that model have? And then lastly, we'll look at cloud infrastructure monitoring. We'll be looking at cost and uptime of running our solution on surfaces like AppRunner or Amazon EKS for basically our API and our user interface. If I can get this to move on. There we go. So let's solve the problem. So as we've seen, there's quite a bit of a mountain that we need to climb. So what I thought we would do is split it into three sections. Data collection, data storage and data in action. So first, let's talk about data collection. So telegraph, if you don't know, it's quite a popular metrics collector. It's open source fully. It's been around for quite a while now. It has over 12.6 K stars on GitHub and it's all a single binary written in go. It's all Tom all based. And so it requires a very limited, it requires very limited knowledge of software or coding capabilities in order to be able to use and run it. And when I say it's community driven, it very much is community driven. As we said, with the 300 plus plugins that we've contributed, most of these plugins have been written by the community for the community. And we as influx data are just stewards for the telegraph project. So you can see in these list of input plugins here, I've kind of highlighted a few that might be useful for us in this solving this problem. Such as cloud watch, CPU, disk stats, disk IO, Gemini. We have other protocol based plugins. We have memory, Kubernetes monitoring infrastructure, NVIDIA, SMI for monitoring our GPU capabilities. I always like to highlight the Minecraft one in orange. We will accept any plugin if it's useful to someone and the code is great. So in this case, someone wanted to monitor their Minecraft gaming instance. The code was awesome. It solved a problem. It was contributed as an input plugin. So very much an open source project. And yeah, and the list goes on. You can see here and we'll cover a lot more of these as we go. I think I missed the page. Open telemetry up there as well. That'll be a good one. We'll cover later as well. So if we look at the telegraph architecture under the binary, this is kind of how our plugins hook up. We have a series of input plugins where we collect our data form from. We then have processor and aggregator plugins. This allows us to enrich our data and also pre aggregate some of our data if we so wish to. And then we have a series of output plugins. So we're going to talk about the influx DB output plugin today, but that's not to say if you want to send it to MongoDB or if you want to send it to CloudWatch, or if you want to send it to an open telemetry collector, because you have other methods that you want to use to push that data to other aspects, then you have that versatility with telegraph. You're not restricted to just sending your data to influx DB. So telegraph setup. So telegraph is meant to be highly versatile in how you set it up. We have flavors in most Linux binaries. So Ubuntu, Susie, Red Hat. Most binaries are all covered for Linux. We also have Windows as well, Mac OS, Docker. We have Helms available. And essentially what you need to do is create a telegraph config, which I'll show you in a moment. That's just a Toml-based config. Then you can test your config based on a series of these commands. So you can see here like telegraph dash dash debug. Give it your telegraph config and check how your plugins are collecting data. Dash dash test is a really cool one that I like to show people because that allows you to collect from your input plugins but not send your data to your output plugins. So that means if you have any issues with the data that you're collecting, you can catch those before you actually start writing them to a database or to your end source. And then telegraph dash dash once is great for testing your output plugins because it only sends one sample rather than say 5,000, 10,000 metrics at a time before you get to that point. And once you've done that is deploy. So whether you're deploying it as a window service, Kubernetes, Docker compose, system CTL, telegraph is pretty versatile. It's very versatile on how you plug and play it into your infrastructure. So I won't have enough time to cover it in the talk today but you can also sidecar telegraph into Kubernetes. I wanted to leave that up there just in case you guys wanted it but it's just a simple demo on the repository there so you can see how you can sidecar telegraph into your Kubernetes infrastructure. The cool thing about this demo is we actually use the Prometheus input plugin. So we basically monitor our application and also monitor the Kubernetes infrastructure using Prometheus endpoints, scrape all these and send these into influx DB. So we fully acknowledge Prometheus as the master of all monitoring when it comes to Kubernetes but it just shows you can integrate other agents within to this infrastructure and have more versatility over the components that you're monitoring. So here's a telegraph config. This is basically the agent config. This is the global config. And so what you can see here is just some simple, I just wanted to highlight some simple configuration base bits just to get you started. So the interval for most plugins is when we pull for data. There are certain plugins which are push input plugins as well so we don't make use of the interval. You can set a global interval or you can set an interval per plugin so you can collect down to say a one millisecond interval or you could potentially only query on certain plugins every two hours or over two days or something like that. Basically any data collected in the input plugin is put into a memory buffer. So for whatever reason if your network goes down these samples are stored within the message queue and then when you come back online they will be written out of the message queue. So you have the ability to supply a batch size as well as a buffer limit to that service. So just as you know the bigger queue that you have the more memory that you need just as a simple one there because we've seen people put astronomical queues in before and go why have I run out of memory and that's because you've stopped connecting to the internet and you've got too many metrics in your buffer. So that's some of the agent specific configuration. Let's move into the actual input plugins that we'll be using to solve this problem. So to solve our network problem we'll be using SNMP which is a simple network management protocol. Through Telegraph we can monitor our routers, our firewalls through this method. We can actually do this through SNMP to pull these endpoints so we can ask Telegraph to reach out and say hey tell me the status of this router or tell me the status of this firewall currently or we can also monitor traps as well so we can actually feed the data directly back from firewalls or routers if an event occurs into Telegraph as our collection server. So you can see in this case we're just going to do really basic we're going to go give me the system uptime for this router and we're also going to give me the system name but there's lots of other we could also say monitor temperature monitor usage, monitor network throughput of routers and there's great examples for Cisco based routers and others online. So similar on the rest this one's quite bog standard we have CPU, we also have open telemetry which I'll cover in a second and then we have cloud watch metrics so in this case what we said we would do is we'd use cloud watch to basically monitor all of the different basically all the different AWS parts and then we'll collect from cloud watch all the metrics we want from all our different services. So as you can see we also have output plugins we're going to be using the Influx DB V2 plugin there and then here you can see is basically an example of writing the data to Influx DB here's the configuration here but like we said you can also write to Prometheus open telemetry AWS Azure based output plugins as well. So we've covered data collection let's talk quickly about data storage. So Influx DB is a purpose built time series database it's now built on Arrow, Parquet and DataVusion so it's designed for ingesting millions if not billions of metrics per second of high cardinality data. The idea is Influx DB is schema on right so you don't have to define a schema beforehand which means you can keep modifying it as you go. We can query and write data on the leading edge of millions of rows per second since we're using a column of store. We can be a single database for both metrics, logs and traces which are shown in a minute within the demo and we now support with new Influx DB 3.0 SQL support so if you are a SQL user you don't have to worry about learning a new query language you can use SQL directly within Influx DB and this is just a quick bird's-eye view of like the flow of Influx DB 3.0 from data collection data storage and data visualization. So to understand a database I think it's good to understand the core data model so let me quickly brush through this so a bucket is closely resembles a database with one key difference it allows you to set a retention policy within a time series database it might depend but your data as it gets older either gets more useless or less interesting to you based on the new data that you have coming in it also allows you to maintain the high if you're storing lots of high volume time series data this also allows you to maintain your disk space as well so suppose we could set a 30 day retention policy on our bucket when our data timestamp becomes older than 30 days it will automatically delete that data so we can bring new data in you can set unlimited retention if you need to but most people decide how they set up retention policies and then they can say okay well here's all my raw data I'm going into a seven day bucket I'll then move it to a longer term storage bucket of 30 days when I down sample and I aggregate that bucket measurements you can see as tables that's our containerization tag sets are part of our primary key that's how we differentiate our data series or our data points from one another if they share the same timestamp field sets contain our actual data or our readings so numerical strings and representation then we also have our timestamp which can be down to nanosecond precision and then a series is a unique combination of measurement and tags so you can imagine that being so if we work this down into the data model here is an example so in this example we have our measurement as server our tag set which is part of our primary key is the host name of where the data came from and also its location we then say in within our field set we have our memory our CPU and then we also have our timestamp associated and this is how influxdb ingest data which is called line protocol you don't have to worry about line protocol telegraph does that all for you you just collect it and that's what the output plugin does writes all of this within the line protocol for you so influxdb can ingest it so just some schema recommendations I'm just going to re-brush on these avoid wide schemas, avoid sparse schemas the way you do this is through a homogeneous architecture which means which I'll show you in a second but essentially means try and keep your tables consistent store all your network data in one table store all of your application monitoring data in another and that prevents you from having say lots of null values or a wide schema that has too many columns with irrelevant data the second thing is designed for query simplicity using SQL or influxql whichever query language you plan to use if you have really rogue names for your columns just remember you need to query these columns later so if you call a column server124xy-247 something you're going to have to write that within your SQL query you're going to have to escape those special characters so we advise keeping your table names sorry with column names simple and so this is what I mean by homogeneous keeping all of your data consistent within their containers so measurement one could be your network measurement two could be your server application and cloud-based monitoring let's just check in time so I wanted to really highlight a new use case for influxdb based on our new storage engine our new version we are now focused on supporting open telemetry which means we can store traces, metrics and logs all within influxdb in one storage engine rather than spreading them two different dedicated storage engines for metrics, logs and traces so I just wanted to show you kind of how the schema looked here for open telemetry for us you won't have to worry about this I'll show you how the demo works and how we transition this but you can now see that within each table we can store our spans our logs and our metrics for application-based monitoring and this has been made possible by our new storage engine which has unlimited cardinality or what we call we've basically removed the idea that when we create a tag which is a unique ID you don't have to worry about runaway cardinality or runaway tags which could have an infinite number of values and so this is what's made open telemetry monitoring and trace monitoring possible for us so last thing to mention on influxdb is you can also use influxdb within a hybrid solution so we understand that a lot of people sometimes want to keep their database close to their source or at the edge so what you can do is you can install influxdb locally say on your server you could collect all of your raw data locally you could then down sample or aggregate that data locally and then you can write that data to a more global source exactly what edge data replication allows you to do essentially as data is written into a bucket we then automatically put that into a durable queue which then writes that data to your remote instance of influxdb so just a cool new feature that was added to influxdb open source quite recently so we've covered data collection covered data storage let's finally talk a little bit about data in action so we love Grafana Grafana has been piled with us for a long time yes they have their own solutions for time series and logs and traces as well but we go well we're first class customers and we go a long way back with each of us so it is our primary way it's our primary user interface and dashboarding method for influxdb so Grafana flavors there is Grafana cloud and Grafana open source we have plugins for each and you can interact with influxdb through free methods flight sequel influxql and flux we're going to focus on flight sequel today which is the sequel engine just since that's new to influxdb so if you're not familiar with Grafana the flow works as so essentially what you do is you define a data source so in this case we're using the flight sequel plugin we basically specify our influxdb endpoint we specify a token which is our security interface with influxdb and then we supply some metadata so the metadata here is the bucket name now the reason we supply metadata is we actually contributed this flight sequel plugin to the open source community so anyone that has a flight sequel endpoint such as dreamio or druid or any of the other column of stores can actually make use of the flight sequel plugin and that's our commitment to open source as a company from there you then use the explorer to create your query so we're just writing a standard query here that you can see in sequel so we're just collecting a few columns and we're specifying the time range that we want to collect that data room and we can return a table within grafana from there we can then use that time series table and create a visualization which I'll show you in the demo so in this case we're just basically monitoring our usage and you can see we've differentiated our usage into different series so we have CPU 4, 5 also the total amount there and that's where tags come in if we didn't tag our CPU types we wouldn't be able to differentiate between the different types of the different metric coming from each CPU reading so just some useful queries for you within sequel, within this case you have data bin this is how you create time-based aggregations in sequel so you can basically define within grafana say okay I want to bin all of my data into 5-minute intervals and then I want to average that data within those 5-minute bins so that's kind of what the sequel command at the top is showing you in the next one you can see these select to last and select to first functions these are specific to a xdb and to flight sequel so they're time-series based functions and they say you can select the last row based on a given time or select the first row on a given time so that's great for gauges whereas averaging out your data is great for line graphs and charts like that depending on how you're querying think about how you want to visualize your data and this will help you in terms of how you want to build your queries so after a QR code here so this is a basic quick start dashboard that we've created so it basically gives you the system stats for your system you basically use telegraph to monitor like disk usage memory system we write all that to influxdb and then we build a dashboard that you can see yourself that will visualize all these using sequel you can also be proactive in grafana you can also do alerting the alerting grafana is extremely powerful because the way that you can do it is you can basically say define a threshold and say if my CPU usage is above a certain limit if it stays above that limit for say 2 minutes you can then trigger an alert and there's a variety of ways you can trigger an alert through grafana whether it be through Prometheus, Slack, you can even write the data back into telegraph to use other output plugins, pager duty the grafana alerting system is pretty versatile so I think time is getting away from me a little but yeah, so as you can see here we've built our different components we have data collection, data storage and data in action and that's not to say you can't just use grafana, you could build out your own solution with any of the client libraries you could use data analytics engines like Apache spark and data fusion, sorry rapid miner and then there are other visualization platforms as well as grafana such as superset which I advise you to check out as well so I'm not sure if I'll be able to cover the demo looking at time but this is kind of the demo that you can try at home essentially what this does instead of using telegraph it uses the open telemetry collector what we do is we collect the data from hot rod, we write that data directly into influxdb including span, log, logs and metrics that should be rather than latency we then use jager query to query that data back out and we use that as our bridging interface with grafana so we use a jager data source and that basically says any commands coming from grafana basically go into jager query we convert that jager query into sql and then we ask influxdb for those results so that's how we can interface directly with our query data sorry our trace data I think I can quickly show you if I do this really quickly so you can see the hot rod demo here if I quickly generate a trace and I navigate over to grafana you can see this is our grafana interface here for monitoring our traces this is over the last 90 days I can bring this down to say the last 5 minutes and then so basically what we can do is we can click on a trace here we can see the schema sorry the relationships of all the spans within that trace and then we can actually also drill into our trace as well as part of our observability stack and all of that data is stored within influxdb so we've not had to use multiple different data sources to combine that data that is all directly within influxdb so I believe I just went back across so I won't jump over this but as you can see we've kind of gone full circle in monitoring our solution we've used telegraph as the backbone for most of our data collection here whether it be monitoring our app or show applications our cloud based infrastructure also looking at our open telemetry as well we store all of this data even in different tables or different buckets within influxdb and then we use grafana as our central visualization and observability platform connected to influxdb so next steps how can you get cracking and try all of this yourself so first place I recommend starting is quick starts so we created this repository to get you started with a series of grafana dashboards and also telegraph configurations you can use that qr code I try and add to it when I can based on community feedback so I add more as we go as well if you would like to try the open telemetry demo and get started with open telemetry for me open telemetry is the next band bandwagon to be part of it's on a bit of like a I think the guys from adobe said it was on a bit of a hockey stick trajectory we're kind of really you know only scraping the surface of popularity with an open telemetry so definitely want to get started with I use killer coder so killer code is just an online education tool it means you don't actually have to install the repo or sorry pull the repo and configure it yourself you can just follow the step by step tutorial on killer coder hopefully everyone got that one and then last but not least as a dev rel I would not be doing my job if I said do not get involved with our community please we have a vibrant community on Slack and discourse we're there all the time answering questions looking at humble solutions for home projects and also we have people contributing directly to telegraph in fluxdb and other projects as well as our open telemetry connector as well for that case so please get involved with our community we wouldn't be here without you guys and it's always exciting to have new members we also have in fluxdbu which has further courses on learning telegraph in fluxdb as well and hopefully I've left enough time for questions sorry I felt like there's probably a lot of content in there but thank you very much guys I hope that was insightful enough to get you started and does anyone have any questions I think I've done what was it thank you so we start we store everything within parquet format now so for us we've actually been experimenting the compression of logs within sort of parquet format I would say if we're talking real-speaker there's still more to be done and how we can compress the logs in parquet but it's made a sizeable difference compared to our last storage engine which was TSM which was our time series merge tree so it's been so we're on the road to having much better compression for logs in that matter as well yeah so if I need to mention this so we're actually releasing a feature for influxdb that's coming out soon which is basically retention based down sampling and essentially what that will allow you to do is exactly what you said which is sorry I should be repeating these questions part of the thing but essentially what he asked was can I essentially when data is being deleted as part of a retention policy can I move that aggregate that data and move that to a different bucket it's kind of like the crooks of your question and yes we do have a feature that's coming which basically says if data is being deleted that last section of data on that 30 days you could say take the average or take the last sample within that silo of data that's being deleted and move that to a bucket that has a longer retention policy so yeah we'll actively look into that because that's been a feature that's been requested for a long time to be able to do that and the open source product just to mention as well we have a task based system which allows you to do some of this down sampling aggregation between buckets as well


Okay, a lot of people were expecting Thomas Wood's speech on next-gen data forensics. Unfortunately, he couldn't make it, and I got stuck in a weird time slot, so I got set up as a backup speaker, so you might have seen me in the back of the book listing me as a speaker, but you didn't see me in the time slot, so here I am. Anyway, I'm talking about making non-portable computer systems portable. Thomas ranges from homemade laptops. Let's say someone's always one like an Amiga 4000 laptop, some Sun or SGI laptop that no one ever made. Make your own homemade one, for example. Wearable computer systems. It doesn't have to be some geek kind of thing. It could actually be more practical devices for telemetry. I saw a lot of survey people carrying some wearable computer systems the other day. Wish I had some pictures of that. Car MP3 player systems. A lot of people are going to probably want to make those, or have thought about it sometime, taking like an old Pentium computer system, for example, putting in your car to be dedicated for MP3 playback. Or even possible network intrusion devices, which is one thing I thought about after I started researching this, came with some interesting ideas for that as well. There's three general areas I'm going to cover on this speech. One is going to be the user interface. Basically, you're going to have to interface with the computer somehow. That's how a computer works. You're going to have to put information into it. It processes. You get information out of it. It can be as simple as having a push button for the input and a blinking LED for the output. All sorts of things you can do. Getting it up to a lab is full LCD screens, buzzers, even computer synthesized voices. Also, I'm going to be talking about some power supply information as well.  It's also housing as well, making your hard drive shock absorbent, using things like silicone memory gel and things of that nature to make your computer more survivable in the unlikely event it will be dropped. Because unlike your desktop system, this will be moving around at some point because it's portable, and as such, it is more prone to damage than other systems. User interface. There's a lot of things you can do, such as using a keyboard, for example. You don't have to use the whole keyboard. You can take a keyboard and totally rip it apart, pull out the small controller chip, for example, and just hard wire, basically a brand new board for it, because all a keyboard usually is just a matrix going to the single controller chip, and just wire up the buttons you want to directly control it, whether those are letters on the keyboard or even unmarked letters as well, unmarked keys. You can use a mouse or a trackball, you can use just the buttons or the entire device. Those are easy to take apart, and you've got two or three buttons right there. If not more, if you count the scroll wheel and some of the four button mouse is out there. Text-only LCD displays are also a great little thing to use. Windamp has plugins for that, and there's also, I was told there's plugins for Linux. I'm not a big expert with Linux, I'm learning, so I don't know exactly what to do with that and how to do it, but there's a lot of things you can look up on the web, as there's a lot of people who've made those kind of interfaces as well. That hopefully I will have next year. You can use just simple push buttons, such as, oh, let's say the game port controller. That you can short the variable resistor controls for the knobs moving the joystick back and forth and short those so it's a hard right or all the way to a hard left or centered with resistors, and you can get a variety of inputs from that or even MIDI, which is what like sideline or joysticks use for input buttons. LEDs, bi-color ones or single-color ones, sometimes all you really need is just a light to blink to tell you that the device has collected your information or is doing something or a row of LEDs. Speakers and buzzers are a very important thing as well. Whenever you take a desktop system and rip it apart to make it into a portable system, I always recommend you have the motherboard speaker wired up. This will tell you of the lowest level of hardware failure from RAM failures, CPU failures, motherboard failures, video card failures, that kind of stuff. And if you don't have the speaker hooked up, you can't hear those bios beeps. I used to work doing computer repair, and I've seen a lot of people throw systems away because they don't like the speaker, they pull it out, the system dies and just shows a blank screen. They can't hear the beeps to tell them, oh, it's just a bad RAM stick, popping a new one. So definitely have your speaker hooked up. Another alternative is to take, like, the solar pager motor, one of the little vibrating pager motors out of a dead pager. Those are easy to get. Just go to like pager stands, like shopping malls. Many times they have surplus and scrap pagers turned in. You could pick those up for a buck or even get them for free. Just take out the pager motor, worry that power you see fit, and that can discreetly signal you if you need it. This is more useful for a wearable computer system, for example. When you're modifying the keyboard, this is what I talked about before, where it's just many times a simple matrix. This is obviously overly simplified, but it gives you an idea of usually how keyboards are wired up. It's just the LEDs coming off the main controller chip, the PS2 connections, and the keys themselves. The rest of it is just for organizing the keys in a specific layout. QWERTY or foreign layouts, all you have to do is just simply rip it all apart, and you'll find many of the traces will actually form a matrix. It won't form necessarily the QWERTY matrix you see right here, but it will form some kind of matrix that you can reverse engineer, take a few hours to do, and get exactly what you need, just a few buttons you want out of it for controlling your device. Here's a picture of the one I built for my MP3 player. But it is. I went into a used computer store, got one of the really old keyboards with the mechanical keys, and the circuit boards were certainly the easiest to solder to, and just simply jumped some wires straight to it. They got the job done for all the play buttons I want, and stop buttons, and the other necessary buttons for MP3 playback. You can also use one of the membrane style ones, but those are real, painted in real, to solder. And these you can find real cheap, because not a lot of people like them. For your text-only LCD display, I wish I had schematics for this. There was a website I found two years ago where they had all the exact schematics for what you see right here, but I could not find them. The site went down when I went back. So I never backed it up. But this gives you an idea of how you can hook up a parallel-based LCD text-only display that you can rip out of many old computer monitors, ADT, home security system controller keypads. For example, lots of devices have these parallel LCD displays based on a Hitachi chip set. And what you can do is just have that serial port outputting your RS232, have a max 232 chip converting the RS232 over to a TTL signal, and then have a serial to parallel converter, which converts the serial TTL over to parallel TTL, which is what the text-only LCD display will require. For the five volts, since the serial port won't have that, you can siphon that right off your keyboard port. Sometimes you might be using it, sometimes you're not. If you're going to be using your keyboard port for extra power, I recommend you measure your amperage carefully. Many older motherboards have a keyboard fuse built into it. If you pull too much amperage out of the keyboard fuse, it will blow the fuse, and you'll have to desolder from the motherboard and solder on a new one. Pain in the rear is an understatement. Many of the newer motherboards, on the other hand, have a small poly fuse where it'll get hot. A contact on the inside will break, and eventually when it cools down, it'll reform the contact and reset itself. But you can't always rely on that, especially with some of the really cheap motherboards out there. So measure your amperage three or four times before you actually use it, like the old construction saying, measure twice, cut once. There are all sorts of alternate interfaces, for example. So many times you don't actually need a terminal on or a user interface on the box itself. You can tell that into it via ethernet, for example, if you're using some sort of Linux router of some kind, some small portable black box of some, let's say, you want to make a device for network intrusion, for example. Take a small black box with a small PC104 motherboard in it, solid state hard drive. Take it into an office somewhere, drop it in on the network, hit a little red button on it that's the start button, and walk away. Presto, you have yourself a box sniffing packets, or even better yet, on the inside of the firewall, going out to you, where it then connects to you, you talk to it and have it do stuff for you on the inside of the firewall. And all you do is drop a box down, hit a button for it, and you can tell that into it. Or when you retrieve the box back for password sniffing, for example, you take it home, just plug an ethernet into it, and tell that into it. You can also use serial, infrared, or even modems for that as well.  So your modem, for example, with really old analog cell phones, you can find dirt, sheep, or scrap, especially if you have a lot of money to spend, and you don't have a lot of time to do it, you can get really creative in a pinch. Another thing to do is, let's say you're using DOS, or even Windows, for example, you can just drive-share via the parallel or serial port. All you do is log in, place your files in there, or configure it, and hit the reset button, or reboots with a new configuration. Really simple, real easy to do. Another alternative is, of course, removable media. Zipped drives, those are cheap now for the 100 Meg Ones, PCMCIA hard drives, Compact Flash even. Compact Flash can, of course, be hooked up straight to the IDE with the right kind of adapter. So basically, Compact Flash is a type of IDE device. One of the most wonderful things I found for remote access for modems, yes, sir? Not on me, I don't have one, but you can boot off of it. It's seen as a, he was asking if you can boot off of Compact Flash, yes. Compact Flash is seen as a regular IDE device, yes. You can boot off of it if you get one of the adapters that converts it straight from the IDE, 44-pin connector, straight over to the Compact Flash. It is possible to boot off of that. A friend of mine has a router that runs off of a two-meg Compact Flash chip. And it does boot off of it just fine, just as if it was a two-meg hard drive. One of the most useful things I found for remote access is ricochet modems. When ricochet networks went out of business, these modems became dirt cheap since most people thought they were unusable. Several people in here, of course, know what you can really do with these. These also have a second mode, which ricochet networks do not like to tell the customers. You can use these things in direct, peer-to-peer mode. You can have one modem, call the other, and the modems use a serial port, as you can see with this one right here, just a regular old RS-232 serial port. And they use the haze AT command set. So you can literally take one modem, type an AT-DT space, and the modem serial number of the other modem. And it will call it. On the other modem, you hit ATA, or even ATS-0 equals 1, for example, and it'll auto-answer. And you have a nice secure link between two systems. These are extremely stable. I've even used a couple sometimes for really big file transfers from systems that don't have PCMCI, parallel, or anything else, but a serial port, no floppy drive. They need to transfer files over to it. I've had them running for 48 hours straight, without a single crash, or single disconnection. The modems you see from right to the big one on the side, that one is what's called a ricochet phase two modem. They have the phase ones and the phase twos look very similar. The phase twos have the longer cylindrical antenna. The phase ones have a small flat antenna like the gray ricochet modem you see there. Both of those are 28.8. The one with the LCD display is a 56K version. That is the SE. The SX is similar to that. It's very thin. I wish I had one to take a picture of. It's a very thin one designed to be fit underneath Windows CE palm tops. Now, keep in mind, this is a few years ago when all the Windows CE machines were hitting the market. That one is an SE. The SX is the thin one. Yeah, either one. They're all cross compatible with each other. The large one you see, the gray one, is a ricochet. Ah, I forget right off hand. I didn't write that down. Anyways, one of the 128K ricochet ones. Those ones, you can basically use it as if it was a full 128K modem. Although, of course, your serial port is gonna be running at 112K, so you're not gonna be able to utilize the full bandwidth. However, those modems also have a USB connector, so you can use it in USB serial port mode as well. Could you please repeat that? I'll get to you in a sec. The 128K one, I forget right off hand. It's in my bag, back at my hotel room. But you can research it on eBay. Just look for ricochet modem. You'll find pictures of that modem along with the model number. There's another model of that modem as well, which is silver in color. It has kind of ergonomic curves to the case. It is virtually the same modem electronically, but a cheaper-style case. I particularly like this style because it has a nice magnesium case to it. When I advertised in the Seattle area about four months ago looking for these, I was paying between like a buck and five bucks for them because ricochet networks was out of business. Now they're going up. They're a lot more on eBay. Oh, of course they will. Yes, they'll go way up what I have to do today as well. And the most I paid for one was for the gray 128K ricochet one. That one I paid about 10 bucks for. I've had people asking more money for them. I've had people asking so much as $200 for like the phase two modem because originally those were like $500. But of course I had to pass on that. Basically, if you wait a long time, you can get these dirt cheap. They have battery packs in them. The two black ones have nickel metal hydride. The large gray one has lithium ion. And yes, all the battery packs do hold a charge and do work. And yes, sir. Could you please repeat that? Okay. He was asking about a problem ricochet had with these modems where what they would do is they would block network access. If we were inside a ricochet zone in some area where they have ricochet coverage, the base units strapped to telephone poles would block the modems from calling each other. This is not a factor with the 56K ones in below such as the SE, SX, phase ones and phase twos. Those ones will be able to call each other inside the ricochet network. The 128K units, those ones had firmware changes in it that if you were inside of the ricochet coverage area, what would happen is if you tried to dial one modem to the other, it would not connect and would refuse to connect if you were not a subscriber. However, it is possible to get around that if you dial really fast, before has a time to connect to one of the base units and register itself as being on the network. Then it will call itself or call other modems. Also, they will work just fine if you're outside the coverage area and you're like, I can say, in the middle of the desert, for example, then you could call one modem to the other. And there's a lot of cities now that are ripping out the old ricochet base units. Last year at DEFCON, I took my ricochet modem, turned it on, and I got about four base units from the Alexis Park. I turned it on about five minutes ago before my speech and got zero base units. So many of the cities are ripping them out and selling them in public auctions, which might be a fun little toy to get. I'd seen them on eBay. As to how accessible these would be, I don't know about hacking the base units. I want to get one myself, but they go for quite a bit. There's a lot of hardware hackers out there who love to get ahold of this stuff. People like us. I don't know how easy it would be. I'm currently exploring unregistered S-registers or undocumented S-registers. All these units, you talk to them and configure them using S-registers, just like you would a regular 56K modem or haze-compatible serial modem, for example. I don't know how to download the old firmware from it so you can get firmware to reverse engineer. You might have to totally disassemble the unit and take out that flash chip itself and actually dump it off to a file. But I believe there is an undocumented command to just dump it right off as to back it up or restore it as a file. As to what that is, I don't know. I haven't gotten too much into exploring that. I want to do that. That is next on my list. There are programs out there that Ricochet did release that were just a single executable file in a Windows 3.1 that would flash the modem. It would contain the firmware inside of itself along with all the other necessary information. What you can do is find an older modem, like let's say a phase one, get the firmware upgrade for it, even though the Ricochet main page is down, you can find people who've backed up the old Ricochet files. What you can do is then hook up a serial Y cable and sniff and listen in on what the serial traffic is between your computer and the modem itself while you're flashing it and look at what commands it's using. See how it's accessing it, how it's talking to it, and possibly even reverse engineer away to get the firmware off of it. Of course, this is theory, I haven't done that yet and that is on my to-do list. And of course, someone out there is going to definitely modify the firmware so you can do direct peer-to-peer connections even inside the network. As to, has anyone done that yet? If someone has, no one has told me. I do have a website, I'll give you the URL at the end of the speech. That's one thing I forgot to mention. For eight, there's a URL on the text file, on the DEF CON CD, you'll find me listed under dragon something. And there's a URL on that that goes to wetcon.org slash T-Dragon slash DC10. There I'm gonna have this speech complete with the pictures, the text file I have that I was basing this entire speech on, which I write up as a preliminary alpha version of the speech along with, of course, pictures I took at DEF CON 10. We find all that stuff on the web so you don't need to necessarily take down too many notes here. Another thing you can do for the user interface is Windows will actually run in lower modes in 640 by 40. This is an actual screen capture of this laptop running in 320 by 240 mode. If for as to how practical this would be in real use, dialogue boxes get cut off and blown off the sides of the screen is really hard to see stuff and difficult to navigate it. But on the other hand, if you're using a small LCD display, you don't want to be distracted while you're driving to have nice big characters. You can run Windows in a lower resolution mode by forcing it to actually, you have to, there's a lot of stuff you have to do to force it to use these modes. First off, there is a drive table as you can see here in the registry listing what resolutions the video mode can do. Normally, the various modes such as 320 by 240 will not be listed. What you can have to do is you'll have to add those modes manually yourself as you've seen I've done here. The number right before or after modes such as 16 is 16 bit mode, basically 64K colors. Then of course you have 24 bit colors, four bit colors and eight bit colors. Four bit is of course 16 color mode, eight bit is 256. What you do is you add the various video modes you want to separate not by an X but a comma and you can add modes such as 320 by 200, 320 by 240 and 400 by 300. This is great for small MP3 players, even portable handheld devices that you may want to hack together out of used parts. I'll even show pictures of the one of the prototype alpha unit I made, which is back in my hotel room right now and show you how I did things and all that was done with junk stuff I had lying around my floor. Probably cost me about 30 bucks to put together. And it's destined to go into the trunk of my car when I get back to Seattle. The actual, the second thing you have to do to change the video resolution to a lower resolution mode is go into the settings itself where it actually stores the active settings. This is basically if you right clicked on the background and you brought up the settings and put the slider to change the modes from 640 by 480 up to higher resolutions. What you would have to do is no matter what windows will not let that slider go to modes lower than 320 by 240 even if you have the modes in the table. This is of course a design fly in Windows which of course I mean hasn't Microsoft ever heard of persons with disabilities. I did this with my grandfather's computer and he loves it because he has a hard time seeing. I use virtual desktop programs to create a larger desktop 800 by 600 and only shows a 320 by 240 window of that. If you change your modes a lot you can create a registry file such as what I have on my MP3 player, 320 by 200 by 240 dot reg. And you could see the mode right there all the text that would be in the content of the file itself. The first one makes sure that the DeBix per pixel are 16. Many times your system, if you had a system crash for example starting up in safe mode will throw windows into like let's say default mode of 640 by 480 at 256 colors. And if you just change the resolution back down you're in 256 colors at 320 by 240. Making sure that the bits per pixel line is there changing it, forcing it to go up to 16. Make sure that you both change the bits per pixel up to 16 and the resolution down to what you want to at the same time. Then you have the actual resolution itself. There are two ways to edit it. You could put it into the auto exec dot bat to boot every single time and force it into the registry.  You shouldn't always have to do this. You can use config sys, menu program, which I don't have an example of right here, but you can find all over the place. Those are really easy to find. It is built right into MS-DOS, like 6.0 and above, I think 5.0 as well. Not certain about that. And run it without regedit, without any command lines. It's just the file you want to add patched into the registry after it. It will then say updating registry and then we'll continue building Windows. And because Windows has not illustrated any of its device drivers at this point, it will start up Windows instantly in 320 by 200 mode or 240 or 400 by 300 if you want a larger resolution. If you're running it under Windows itself, the dash S I have found gets rid of the little box that pops up saying, are you sure you want to put this into the registry? This way you'll have to use double click on the shortcut icon instantly. It puts the settings in that you want. The reason why Windows usually has these low resolution modes in it is because of DirectX for video game use. Many people like to run video games and low resolutions to get better video game performance. That's less so nowadays and back in the older days. Windows 95 I found has some serious issues with running in low resolution modes below 640 by 480. It is possible with the right drivers, with the right DirectX patches, that's real pain in the rear. Windows 98 and above all do it flawlessly. I have not experimented much with Windows 2000. Would you have your hand raised? I have not explored much with Windows 2000 or Windows XP yet as to what it does because of course I'm not a big fan of Microsoft. I use it only because I have to and because I don't have anything else better until I get really good at Linux, which I'm in the process of learning right now. I have a dual boot even on this computer. Next, you're going to want to power your portable unit somehow when you take it with you.  Batteries are an extremely good thing to use. You can use gel cell, lead acid batteries, nickel cadmium, nickel metal hydride, or lithium ion. Nickel cadmium, nickel metal hydride are what I prefer to use with the strong preference on nickel metal hydride. Nickel cadmium is cheaper but nickel metal hydride has better performance. More amp hours per battery, less memory effect caused by continued charging, recharging. And also they are dropping in price because many countries are enforcing green laws. So nickel cadmium batteries are no longer available for sale because they have toxic heavy metals in them. Nickel metal hydride are of course much more environmentally friendly. So this will force many companies to produce more nickel metal hydride batteries. As a result, the price of those batteries will drop down. And they already are dropping down right now. As to using lithium ion, in order to charge those batteries, you can't just run a voltage through it.  With lithium ion, you do that and the battery will probably explode. How those work is they have a special chip located in the battery itself inside your battery pack that will control it and regulate it and keep you from shorting the contacts together or doing other bad things to the battery. And also make sure it's charged properly. The laptop itself will have a special charging circuit designed to send various modulated pulses into the battery to charge it up. It charges up just as fast as a lithium ion. I mean, as much as a nickel cadmium or nickel metal hydride battery. Yes, I know I'm starting a little bit. Oh well. Can you repeat that? Can you please repeat that? Marine batteries. Marine deep cycle batteries. I believe those are gel cell batteries which is a type of lead acid, they aren't. I have not experimented with marine batteries but that is another possibility. The lead acid, gel cells and marine batteries are big, heavy batteries that will give you a lot of amp hours, a lot of time on your laptop but they're big, heavy, bulky things. They might be exactly what you need, they might not. Can you please repeat that? Lithium polymer. Lithium polymer, I have not experimented with or researched that. So I don't know exactly how to use that or how to charge it or how all that works but that is something to research. This speech is to get you started with ideas not necessarily to tell you exactly what to do but it's just to fill your head with ideas for maybe a device you were thinking I'm building. Another thing you can do is use an existing power supply such as an AT compatible power supply, ATX or another type of power supply out of some other device. And an example is the small Macintosh twos, the really thin ones. Those ones have really small power supplies inside of them. Those would be great to pull out and use for small devices. If you wanna have a small power supply that's ready built you can just simply get some power out of. Have I seen plans to combine several existing PC power supplies to get more amperage out of them? Yes, it is possible to tie several existing power supplies like let's say AT or ATX power supplies together but I've never had a need to do that. I have measured my motherboard's voltage in my MP3 player and actually we're going through an inverter from a current inverter over to an AT power supply and then back to the motherboard counting the current draw from the inverter converting up to 110 and then the power supply converting back down to the necessary voltages for the power supply. I only got 3.2 amps total off of the MP3 player. So I don't know why someone would wanna need that much amperage but it is possible to tie several power supplies together for more power. As to how to do that, I've never had a need to research it so I don't know. You can also make your own power supply from scratch build one up. I'm currently working with an engineer in the Seattle area who is building a kit version of a power supply to run a computer off of 12 volts in a car. This will supply a full 300 watts power necessary to power your motherboard and it will be available in a full ATX version complete with advanced power management support. I was hoping to have an alpha version to bring here to the speech but Maxim and Nationals screwed up the orders of the samples and as a result I didn't have one to bring in time. When one is made available these kits are expected to cost about $50 and will be supplied. I will give you a URL on the speech site when they are available. Hopefully they'll be available within the next two months. So keep, if you're seriously interested in when these power supplies keep checking the URL that I give you and eventually it will appear or if it's not going to appear, ever appear or become available that news will be made available as well. You can buy 12 volt power supplies existing but those cost a lot of money one to $200 for the full ATX metal box style and of course they don't provide much power just five amps off the five volt line for example, five amps off the 3.3 volt. You have to power a small basic system but sometimes you need more power than that. This one we have fully well designed fully regulated, fully filtered kit you can put together. Another option for homemade power supplies is many people who have made their own MP3 players have built their own power supplies from scratch. You can look at schematics on the internet and download circuit board blueprints for how to print your own circuit boards with all the traces. I wish I had some URLs for that but there's so many out there that it's easy to just go to Yahoo or Google and look for like MP3 power supplies. You can look up the schematics for that real easy. Another thing you can use for powering it is what I call power leaching. Finding an existing power supply that's already in use on something totally different and using some of its unused power on a totally separate device. Another thing you could do for existing power supplies is laptop power supplies are also great little devices to use that I forgot to mention earlier. They have full regulation built into it. One problem with using an existing power supply such as an unregulated wall wart style one for like your modem, those are really bad to use straight into a motherboard. One of the big problems that they have is it breaks down to Ohm's law. Let's say your power supply outputs five volts at one amp. Your motherboard using a biscuit motherboard uses five volts at only half an amp. Due to Ohm's law, what will happen is that extra amperage has to go somewhere. As a result, your voltage will now be doubled. You'll be now pumping 10 volts into your five volt motherboard at 500 milliamps. As a result, you could blow your motherboard out or it could get very hot and you could burn out components on it. I strongly advise using an unregulated wall wart unless you know what you're doing. The best ones to use are laptop power supplies. You can find those at computer surplus stores, eBay. Many times the output, the exact voltage you need and they contain built-in regulators to dynamically adjust how much amperage they are outputting based on what your device actually needs and your current draw that your device will actually have. If you're going to build your own and design it from scratch, you need to of course regulate the power voltage because many times the input voltage will not be very clean, especially with a car, for example. When you're starting your car, the voltage on the electrical system can drop down as low as eight volts. When the engine running it can spike as high as 16, even 18 volts and that is not very good for your computer. So it's best to have regulators or switchers built into it that will control the voltage and condition it and make sure that the voltage itself is stable. Also, cars are extraordinarily noisy electrical systems. Not just the spark plugs in the engine, but everything from the lights, the stereo system, it's a very noisy environment, electrically. So you'll want to have a lot of filtering built into it. Also, you want to have circuit protection built into your power supply as well. In the event your power supply, your device draws too much current that the power supply cannot handle, you don't want to burn out your power supply.  It's best to have your computer go dead than to have it totally fried. This is an example of power leaching that I have for my router. My hub that I have at home did not come with a power supply. However, it ran off of five volts at 202 amps.  The power supply inside the computer is capable of dealing with this as the 12 volts is barely unused in it. I had plenty of amperage to spare and the computer power supply is fully regulated and conditioned so it will not over voltage or over amperage the hub. As a result, I have a nice stable power supply to use and all it cost me was taking an old fan, clipping the connector off of it and getting a small five millimeter outer diameter, 2.3 millimeter inner diameter connector from Radio Shack. A cheap alternative without having to go out and buy a full power supply for it. Another thing you will want to do with your device is you want to put into consideration your housing. Many times you may think that just taking an existing metal case would be a good idea, not always. The reason why those are big, those are not very good for absorbing shock and damage and vibrations and will transfer a lot of it because of the hard metal case right into your devices like your hard drives, your CD-ROMs, even your fan on your CPU.  So you'd want to design your own case from scratch and you could even design a case that is considerably smaller than what a desktop case would have. Wood is a good material to use. It may not, it doesn't conduct electricity so you don't need to worry about shorting wires connecting to it. Or you should watch out for ESD buildup. It's also easy to work with and cheap and I got quite a bit of it from a neighboring construction site. Plexiglass is... They have a lot of little small wooden dowels as to exactly what they were doing. I have no idea. I just know there was a pile of it one night. I jumped the fence, picked up a whole fist full of them. Great stuff. Plexiglass is good to use as well. Many times you see people epoxying it or gluing it together. The thing to watch out with that is the glue can crack and break. My design has a wooden frame built on the inside with the Plexiglass screwed to the wooden frame. So in the event it's dropped or is exposed to an excessive amount of Gs, the entire case will bend and flex as opposed to the Plexiglass breaking or cracking. Another thing you can use is foam core. This is what they use for display signs for some of the presentations and other signs you may have seen around here. It is basically a white foam type material with paper on the outside of it. It is available in extremely thin quantities, extremely thin layering. However, I found it up to a full inch thick. Before September 11th, I used to go to Boeing and jump in their dumpsters and they would throw away whole six foot wide by three foot tall sheets. All they would do is kind of a small corner of it and say, oh, this is not a big sheet anymore. This is not a full sheet. We have to scrap it, throw it away and get more. And I found like three or four like that that were totally thrown away that were perfectly good, like 99% complete. Also other small sections or even large sections that were perfect for my needs and my construction that were totally useless for the Boeing people for their presentations, for the board execs and whatnot. I have quite a supply built up of that. It's soft material. It is easy to punch through with your fist, but if you get it thick enough, it is great for construction work for your MP3 player because it is very easy to work with, can take a lot of Gs because of the soft foam and also many times if you find a good source for it, it is very available in bulk quantities. Same thing with plexiglass. Many times, sign manufacturers will throw away large sections of plexiglass in their dumpsters. Just jump in the dumpsters overnight, go thrashing. You can find sections you need quite easily. This is how I started building up sections of my plexiglass, which I'm going to be replacing all the foam core on my MP3 player with plexiglass as I find more of it. When you put your hard drive on the inside of it, you also see a cross section here of the foam core and the wood I've used. All it cost me was about 20 bucks for a box of screws, some washers and various other materials. The rest of it was all equipment I had lying around including the motherboard. I was lifting up some components the other day and found this motherboard sitting there on the floor. I have no idea where it came from. I have no idea how long it's been sitting there. I just said, wow, for motherboard I didn't even know I had Cyrix 233 megahertz processor, perfect. And decided to use it for the device as I wasn't doing anything else with it. It also had built-in video and built-in sound. Yes, sir. When I'm working with plexiglass or foam, how do I work with, how do I deal with ESD buildup? I have currently not experienced a problem with that. However, what I have is the motherboard grounded to the power supply and the power supply grounded. So theoretically, that should take care of any ESD problems. If you are working in an environment you know that where you have a lot of ESD, let's say your car, for example, builds up a lot of it.  I would recommend putting in like some aluminum foil and having that grounded to the computer as well. That way, if there is any actual ESD discharge within your player itself, it will theoretically go through the aluminum foil on the outside and then through your ground as opposed to going through the motherboard and blowing some of your chips. That is going to be something I'm going to do on a future unit.  You can find these like real cheap nowadays for five bucks, peel off the fabric on the outside of it and cut the silicone memory gel out. This stuff is very soft, very flexible, and I have my hard drive mashed in there so that it will absorb an excessive amount of Gs. Hard drives will take, if you're going to be using a hard drive in your device, I would strongly recommend you use a laptop, 2.5 inch hard drive as opposed to a desktop style hard drive. The reason being is that these drives are designed to take more shocks, more blows than other desktop style hard drives. That doesn't mean they're indestructible, they can just take a higher shock impact from being dropped than a desktop drive will. So this way, if you're going over bumps in your car with your MP3 player in the trunk and it's being bounced around, your drive is more likely to survive. However, you should also put silicone memory gel all around your drives, whether you have a CD-ROM disc changer on the inside of it or whatnot, because many of these components were not designed to be put inside a car.  So you want to absorb as much shock as you can through memory gel or other device or any other means. Another thing I would also recommend as well is if you can find one, use solid state hard drives. These are really cheap ones I found on eBay for just a few bucks. The Sandisk, the small 1.8 inch hard drive used in various tablet-based computers. I picked up on eBay extremely cheap back before hard drives, before people were really looking for solid state hard drives. And also the guy misspelled Sandisk, S-E-N-D-I-S-K. As a result, no one even saw it. Another thing I found was a guy in Texas, he no longer has any, by the way, who had a whole box of 40 megabyte solid state hard drives. He got it at a dot-com auction that they were gonna use for TV-top web TV-type devices. The company never went into business and the whole box of drives were auctioned off. I got several 40 megabyte drives. I got for 10 bucks a place and he threw in a 64 megabyte drive for free. Thank you, if you're watching this. You can find these all over eBay. They go up to, currently the biggest I've seen is 1.5 gigabytes for solid state storage, but I believe there's even more out there. And not all of them follow a 2.5 inch, 1.8, or even a 3.5 inch form factor. Some of them are really wood-shaped devices that they're still usable and even if they're wood-shaped, they might even be better for your device. For CD-ROM drives, I would recommend using a laptop hard drive. Not all of them use proprietary connectors on the back of them. Toshiba ones, many of them have a regular IDE-style 2.5 inch laptop hard drive connector, 44 pins. Over here on this side is of course the master slope settings. Here is where pin one is and as you move across, it's just like a regular hard drive connector. You can hook up your cable to it and use it just like you would any other hard drive. It's basically an IDE device. The extra pins on this side are for audio. These devices you can find very cheap. For a laptop CD-ROM drive, I would recommend going for as slow of a speed as possible. The slower the speed when it's bumped or shocked around, the less chance there is of damage because the faster it goes, as it's struck against something, all that centrifugal energy is going to be bouncing around the inside of the drive. You could actually strike a drive while it's spinning against something and by pure coincidence, have nothing happened to it. It would virtually absorb all the G-forces. Or when you hit it against something or it experiences a rather large jolt, all those G-forces could be like as if you dropped it from 200 feet up straight onto the concrete. So you're basically playing Russian roulette while you're dropping it as it gets dropped around. So slower your speed, the better the chance of it surviving because there's less energy being used inside the drive. And also, slower speed drives are cheaper as well. There's not a lot of people want 2x drives. And if all you're playing is MP3s, a 1x drive is overkill, speed-wise. This is my completed unit. God, I love that sticker. You can get it over in the dealer's area. As you can see, I have the Plexiglass on the top of it. And what I have on the inside here is this is an AT power supply that's used temporarily because of the fact that the prototype 12 volt power supplies are not available yet. That's just simply strapped to the side with some double-sided foam tape. I recommend against using any kind of double-sided foam tape or Velcro as that stuff has a tendency to come loose. I've stuck routers on the wall as a result of that. Small routers are relatively light. And many times the routers have fallen right off the wall, leaving the Velcro and the tape intact, not even taking the tape apart. And then, of course, when I peeled the tape off the wall, it took some of the paint with it. So it's really weird stuff. I recommend you bolt it or screw it down or use cable ties to hold it together that you'll get a lot more lifespan out of it. The video card I have inside of it is an ATI Rage Pro. What this is is a large video card that has a composite output for the LCD monitor I was using. The motherboard itself, I could not find the drivers for it because it's a UMC-based video graphics chip that no one has the drivers for. As a result of not being able to get the drivers, I can't run it in 320 by 240 mode. And as a result of that, it's pretty much useless for my needs. Plus, on top of it, I'd have to use a VGA to composite converter to use my LCD display. This video card I already had lying around, so I decided to go ahead and put it to good use. It was mounted on the side with a PCI razor card here to put it sideways as if I mounted it vertically like it would be in a desktop case, it would have virtually doubled the height of the motherboard space required. I have some small scrap sections of foam core used around here to keep it stable, to keep it from bouncing down against the motherboard or bouncing up against the lid. Here is the hard drive connectors, CPU. The RAM, even though the motherboard has both DIM and SIM slots, I have 16 megs of SIMs in there as those were scrap SIMs I already had lying around. I don't need much more for playing MP3s. Windows may boot somewhat slowly, but after it's booted, it works just fine. And on the side right here, I have the onboard motherboard video connector sticking out for the one in the event in the future that I get the necessary drivers I need to operate it. What I have here is this connector sticking off the side of it is for the keyboard connector. On the back of the keyboard itself, yes, I have a full AT-style keyboard and the trunk that will be strapped to the top of this with some Velcro. What that is, that's the output that takes the buttons being shorted, runs it through a nimbellicle cable out to a remote unit up front which will have the LCD display with the buttons at the bottom of it. This is a side view of the completed unit. It is disgustingly thick and this was an alpha version. I put together in a pinch. I was originally planning on having a full backpack-based wearable computer here but I blew the motherboard when I was trying to build my own power supply from scratch. As a result of losing a small biscuit motherboard, I was no longer able to use that wearable system and as a result, I threw this together in a day just to see what concepts would work and what concepts would not work. When I get home, I plan to cut this thing apart and make it only one-third as thick. The CD-ROM drive I'm going to eliminate that was a fun little experiment where I don't need it with a 1.4-gigabyte hard drive on the inside of it. That is more than enough to store all my MP3s. This is a picture of the remote unit I have. I have a small Logitech mouse strapped to the side of it to make it so I can use the cursors on it. Winamp, as you can see, runs in the middle and then along the bottom, these buttons relate to the various play, next track, pause, stop buttons on Winamp for the five main buttons and then these two buttons are for volume up and down. The device currently does not have an amplifier built into it and outputs through a 3.5... The small headphone style jack that's designed to go to an audio cassette adapter for a CD player straight into this car stereo system. I hope to have that upgraded later on. You'll find my speech online at this URL. This URL is also on the Defcon CD, which you were given when you registered. So you can go here, look at the speech, look at these pictures that I have online along with when I have the power supply kits available. News of that will be posted there as well. Does anyone have any questions? Yes, sir. Yeah. There would be a trucking now. There's like a big truck with a whole thing. I wish that was my truck. Any other questions? You first. Do I need to use a regular keyboard? I was originally going to have on the bottom of the remote unit an infrared port. Do you have a small wireless keyboard available for the times I would need it? However, due to some electronics constraints, I never got around to actually making a special splitter that would let me use both the system in the trunk and the infrared keyboard at the same time. And even then hooking up two keyboards at the same time can over amperage and overdraw the current on your keyboard connector, which is very bad for your motherboard if it goes wrong. I have had to use the keyboard for initial system configuration and to set the unit up. And after that, I pretty much do not need it. Oh yeah, I mentioned that earlier. Let's get up to it. Yeah.  Like many of people are pricing a small little keyboard about the size of a credit card, which is the Microsoft natural keyboard, nothing but control key, the alt key and the delete key. I'm going to build one of those. UNEXER. Ah yes. If you're going to be using solid state media like those solid state drives or compact flash, a big problem that they have is many of the early drives have insanely slow read-write cycles. They'll be even slower than a floppy drive. However, the read cycles may be even faster than an IDE drive. Another problem that they have is they have a finite number of read-write cycles. Eventually the unit will burn out, for example, if you're running Windows on it and it's swapping to the virtual memory. You can only write to it like 10,000, 100,000 times if for that small sector of the memory core, burns out and you can no longer write information to it. So you want to minimize the number of read and write cycles as much as you can. Linux and DSD and UNIX based systems are very good at doing that, which is why I want to eventually have a UNIX based system or a Linux based system running on the system in the future so I can use a small solid state drive. Yes sir. How about build custom antennas for 802.11 for some of the wireless access? Yeah. Yeah. I have not built anything as of yet for custom antennas to extend the range, but that is on my plans to make a Pringles can antenna. However, after watching the Seattle wireless speech and he recommends against making your own antenna because that is in violation of FCC regs by making your own Pringles can antenna, for example, or other forms of homebrew antenna for 802.11, I'm probably going to just go out and buy a more professional one. Yeah. For amateur radio it is possible to go ahead and build your own antenna from scratch because that is part of amateur radio laws. So you can make your own homebrew antenna for ham radio equipment, but many times for like the 802.11 card, for example, it's illegal for you to make your own custom antenna for it because it's not FCC approved for your actual device. Yes sir. Have I thought of using an accessory, the accessory connector on the car for powering up the computer when the engine is started and turning it off when the car is turned off? I have thought about that, but I would like to make my own manual controls for turning it on or off at will so that way I can have the system continue to play music for me, even with the engine off because sometimes I want to do that. But it is possible to have it automatically turn itself on or off with the car engine. And you could even, I've seen people do it just to have windows simply shut it down cold without actually going through the proper shutdown process. And although you're sometimes playing Russian roulette one in 10,000 chance of windows totally being foobard beyond repair, usually you're pretty safe doing that.  And if you're going to be doing that, shutting it down cold, I recommend you have two partitions. After you get your system configured and stable, move everything with like let's say X copy 32, C colon space D colon space four slash H, four slash I, four slash C, four slash K, four slash E, four slash Y. Basically four slash is before the word hickory, every single letter in it. That will mirror drive C over to drive D and copy every single file, hidden system files, everything including long file names. We have to do it under a DOS box and windows. This way you can back up your entire hard drive from one partition to another. So as you're actually shutting down the system totally cold, if you screw up your main partition, you can just simply take it and restore it from your backup partition, copy everything back over to drive C and have everything just as it was months ago when you initially made your setup and not have to totally reinstall and reconfigure everything from scratch. Then that several times my MP3 player is designed like that as well. Any other, yes? I'm just doing your driving, using interface. Am I using the mouse for the play and stop buttons? No, I'm using the buttons that I built at the bottom of the control unit. You have to forgive my crappy digital camera here. The unit, what it uses is I have the buttons arranged in the same order as the buttons in WinApps. That way I can use play, stop, rewind by just simply feeling it, as opposed to actually looking at it. Sometimes I would need to look at the unit itself. For example, one of the reasons why I want to use an X86 based system is so I could also surf the web, for example. Let's say I'm stuck in traffic. Some companies are thinking of starting up ricochet again and also there are other wireless internet options that you can use on the road. This way I can actually look at DOT cameras if I'm stuck in traffic and say, oh, eight miles down the way, it's still shoulder to shoulder, it's still bumper to bumper. I'm gonna get off the freeway now before I have to go through much of this. Then you further, I can also look up whether another information that I may want to learn about and actually see on the road. Of course I would not use that while driving. It's even more dangerous to be playing with this while driving than using a cell phone. But I have the visual options there with the LCD screen in case I'd ever want to actually see anything. Usually I'd just be going by touch and by feeling where the buttons are so that when I actually have to look at it, I can just feel it. Any other questions? Well, that concludes my speech. I hope that helped you all out in getting some ideas for if you have a plan on making your own portable computer system, whether it's wearable, whether it's in a small network intrusion black box device or anything else. Again, you can go to this URL to find my speech and other information. I have not uploaded it yet, but I will upload it when I get home in a couple of days, probably Tuesday or Wednesday. And also you can find the same URL on the DEFCON CD on my speech text file. So you don't necessarily have to copy it all down. Thank you and I hope to see everyone next year.


Oh, no, right? Who's the imposters? I am Ethan and who else? Ethan who else? Loops, okay. Okay. Hiding hiding and trying to get your toss do your tasks as quickly as you can. We do our tasks now right now or no? I don't know if Jason is back Jason's probably not back. I don't think Loops is back I don't know if DK is here. Good luck killer. Yes. Yes, Sam. Okay. Okay. Did you hear everything? Jason is the only one AFK Yes, okay, so yeah, so the killers have really bad sight, but they could like oh Shit everybody skip. Okay. Don't don't report bodies left I'm so sorry. No, no, no, that's my bad. Okay guys right now, so we're playing among us, but we're playing murder in the dark Are you kidding me?  I'm like the wind. Bye. Bye. What's your good event?  Yeah, it's me and looks What do we do when we're done tasks just run away hide.    No So glad we kind of started over fresh here.  How'd you kill me from that far are you lucky I am uncooled out Wait, who is it it's Amber Amber and Chris I'm almost done my task I'm killing it Right How many games how many games of this is everybody want to do I Got through my son move Okay back to oh, I'm white now back to Normal gameplay I don't know where my that's quick Went from cafeteria straight into Weapons, and that's where Jason's little booty meat was just there chilling with the bone hanging out of it a Little booty meat. Did you poke it a little buddy made I put some barbecue sauce on it Took her away in a tupperware. I'm gonna eat it tomorrow The ranch sauce. Yeah, I Don't know anything I was literally in cafeteria finishing a task. I didn't see a single soul Why are you running wait From the reactor Yes, I there's one thing that you guys should know about me. I always run from reactor I don't care about it, and I don't care about lights either So both both imposter them fourth imposter absolutely We just get rid of Cyrus now because he's gonna throw That's not any imposter would say but I'm down to vote you who don't why would you not? Why would you not run the I? Would but if I if I know that six people are running there. I'm gonna get test done, baby, okay? Let's figure out I heard a carol basket Audio was trash. It sounds better now, but it was really weird before Carol That's the way he vouches for Lopes and loops should be able to vouch for DK. Yes, I do. Okay, DK. Can you see anyone? Thanks for setting that up Julian. I Really see anyone I went left and I didn't see one either guys. I'll run to react Yeah, I have zero information I went straight down and did one electrical task in the Right south of the cafeteria and then I went to reactor Should we change the discord Location maybe to east and see if it switches it or makes it better I'm fine.  Well, who cares about that guy? All right. Let's just know I'm just just switch it to east possibly the best voice here Pringles It's like spaced out for a second.  Who is walking away from the body. It's fair. Why? Electrical in like Yeah, I didn't see who walked away from it I love to hear I love to hear ally Venting before is that why you're doing this? Wait, wait, wait, you say wait I'm joking. I'm joking. I'm making an old game. Oh, okay to Chris. It's fine Wait, was anybody with Chris? I honestly if Chris didn't see who it was we would have never known I feel like Chris might be self-reported. I don't know how that's possible Okay, I mean I don't know what else I can possibly say like Is anybody in a medbay right now?  Oh Dude, I knew it did guys. I figured it out a hundred percent. I swear to God on everything. I am right about this Well, it's a lot into it. Yeah Jericho and do coders go into electrical.  Okay, so Doing the scan no you never During the entire scan, so I don't really understand. Here's the deal. Here's the deal. I Stake my life on this we vote Jericho.  No Together the only the only way Jericho is if it's Jeff Invented to medbay I don't think we have a vote.  This is a dub. And if it's not then Jeff's fingers and they're they're aimed There we go there we go I only fly away Okay, that was quick. I just found a hunk of meat Who was that was that was me right next to the meat? I I came around the other side of the corner right as you did. I know that sounds sus, but that is what happened Amber and Tucker and me were in weapons Who was in electrical? No, that's me. I don't know why my name isn't there anymore So that's purple for everybody, right? Okay, should we go easy now because I don't like that and I'm very Where is low spotty found it was right outside electrical and even see was around there. Yes Yeah, I came I came around I came around the other side Storage it's in storage. Yeah, it's in the hallway from storage to the actual yeah, and where's Dakota's that? I'm in reactor. I'm near Julian.  I don't think it's him I Somebody's not muted. All right, you're leaning I'm going to pretend to do a thing I need to figure out how to be a butter Well, that was a surprise.  I'm still in there. I'm so I was like it hiding in a corner Where'd you come from? I came through I came through down through admin through storage, but there was no dead body when I walked through So on in the first in the first the first task you did right we did it together the asteroids How many asteroids did you miss? None. I hit all 20. It's Amber She got on before me. I hit all 20 asteroids, and then she was off for a good she was on for another like three four seconds before You can't be They're at the same speed Because the how much she defended Jericho and it was a killer, but maybe she took her time. I Do take my time. Thank you very much I'm also jaded because Amber lied to me I'm not I'm not insinuating we need That pain listen Australian pain Could it be Ethan? Australian pain is a good point That is actually Jericho was talking. I was talking do they say the same because everyone keeps saying they sound the same they sound similar Do we some talk at the same time? Oh Are we are sorry are we voting Amber what are we doing? I'm purple.   I do. I hate that.  I was right next to you.  What Ethan Julian? What did you see? I saw exactly what you saw. I was in my task. I Tabbed out. I looked down. There was meat.  I'm not voting anyone right now Okay, I'm okay to skip was only one dead. Yeah, but let's keep it on Ethan.   Oh my god, how did they not see that?  Oh My god. Oh my god That was That was insane That was actually crazy gentlemen of the near I found the body of young Dakota and Wires That's all I got. I didn't see anybody there. I didn't see anybody trailing or To cameras and I can confirm I actually saw you walk up to the body and report it. So nice All of us were in a cluster down there by electrical. Just got a lot of actual clutch securities All I am confused right now because when I was running to electrical Dakota was ahead of me Was he an electrical with us or am I going? No, he passed me so I was down in comms I watched him run past and I was hella sus on him at first because he kind of came in and then Don't So I'm worried about Lopez maybe potentially doing it so purple. I don't know Lopez what do you think? Jennifer, what do you think? Jayla, what do you think? Chris had a question.  Thank you. Thank you. Okay, dude.  Yes, sir I saw you below like at the south right below cafeteria like a minute like maybe 15 seconds before you call the body, right? That's why I think you made me a win Okay, I'm so nervous about that But yes Julian I was doing weapons and then I went down and that's where I found him Was it a gun? The stomach one or a knife? What was the kill I made? I didn't hear Chris, who are you asking that Ethan? I was asking Ethan Oh, yeah, dude No one right? Julian Jericho's even even Jericho finkel his iron horn Okay, I need to Okay, now I'm going to electrical To do my tasks that that I didn't get to do before Because I have three wires that I'm doing I need to I need to drop it Need to be a little lower Rot it's Ethan. I'm 90% sure he came from a van dude. Where? Vented into electrical when I went to turn the light Dude, I Literally I Okay Yes, what was the kill animation for Dakotas?  Hold on.    Ethan. I do tasks in the complete dark I don't know I walked in there turn off turn the lights back on and I leave and then slowly Leaving the room after me is Ethan. I don't understand why you wouldn't turn on the lights because I was already doing electrical I was already finishing it The thing is did you see did you see that I went when when you were in electrical? I came down to the same electric box that you were at and then you left and then the lights came back on Because I was going to go and do lights I thought you thought I caught you venting and so I thought you're chasing me if you're not the killer Well, the killer is laughing and we look stupid second time. We've had suss on Ethan. I Think you vented I think you vented, okay We got 28 seconds, okay, just imagine it's completely dark, right?  What were you doing? I was in the top of electrical dude. Did anyone see him go in there? Did anyone see him go in there? He's a good friend, but I'm voting for him. I'm doing it too. Shit y'all. This better be right Okay, that's really funny because they got me for sure Thanks, baby That's very funny That's very funny that they I need to be helping Jason out right now That's that's super funny though that Julian thought I vented when I legitimately didn't I didn't even notice that the electricity was off Do you not see it if you're an imposter?  Nobody suspects Jason right now, so that's good. There he is Kind of following lips around Dude Jason Jason, what do you do? Oh, okay Sure. Yeah, dude It's always so risky venting into into cafeteria Okay, so so hold on wait wait wait wait wait so Julie so yes I was an imposter, but I actually didn't vent into electrical I don't I just went up. I went up there I went up there to fake doing wiring, but I didn't vent into there. I was just up at the top You were not Also, oh my god guys the very first round.  I was like how how are they not