لارس نادسن یک متخصص توسعه دهنده گوگل است، ما با او در مورد اینکه چگونه یک دستگاه 10 دلاری می تواند رایانه ها را برای افراد دارای معلولیت در دسترس تر کند صحبت کردیم.
مونیکا: چه چیزی الهام بخش شما برای تبدیل شدن به یک توسعه دهنده شد؟ تمرکز حرفه ای شما در حال حاضر چیست؟
لارس: من مدرک کارشناسی ارشد خود را در رشته مهندسی گرفتم، اما در واقع علاقه من به فناوری خیلی زودتر شروع شد. وقتی در دهه 80 بچه بودم، پدرم صاحب یک شرکت محاسباتی بود که با طراحی گرافیک کار می کرد. گاهی به خصوص در تعطیلات تابستان مرا با خود به محل کار می برد. گاهی برخی از کارمندان او مرا زیر نظر داشتند. این مرد واقعاً باهوش بود که یک بار به من گفت: "لارس، من باید کارها را انجام دهم، اما این یک کتابچه راهنمای C است، و یک کامپیوتر آنجاست. در اینجا نحوه راه اندازی یک کامپایلر C آمده است. اگر سوالی دارید بیا و از من بپرس.» شروع کردم به نوشتن متون کوتاهی که به چیزی ترجمه شده بود که کامپیوتر بتواند آن را بفهمد. به نظرم جادویی بود. وقتی شروع کردم 11 ساله بودم و حدود کلاس هفتم توانستم برنامه های کوچکی برای همکلاسی هایم ایجاد کنم یا در مدرسه از آنها استفاده کنم. اینطوری شروع شد.
در طول سال ها، من برای بسیاری از شرکت ها از جمله نوکیا، مرسک و اوپن ویو کار کرده ام. در ابتدا، مانند بسیاری از حرفه های دیگر، چون کمی بلد هستید، احساس می کنید که می توانید همه کارها را انجام دهید، اما با گذشت زمان یاد می گیرید که هر شرکتی روش خاصی برای انجام کارها دارد.
پس از چند سال کار در یک شرکت پزشکی، در سال 1999 کسب و کار خود را شروع کردم. به عنوان یک پیمانکار آزاد کار کردم و به لطف آن، این شانس را داشتم که به سرعت با چندین سازمان آشنا شوم. پس از تکمیل پنج قرارداد اول، متوجه شدم که هر شرکتی فکر میکند راهاندازی عالی را پیدا کرده است، اما همه آنها کاملاً متفاوت هستند. در آن زمان، من همچنین در معرض بسیاری از فن آوری های مختلف، سیستم عامل ها و غیره بودم. در اوایل دهه بیستم، طرز فکر من تغییر کرد. در ابتدا، من به شدت بر روی یک فناوری متمرکز بودم و می خواستم همه چیز را در مورد آن یاد بگیرم. با گذشت زمان، شروع کردم به ترکیب فن آوری ها به عنوان راهی برای بهبود زندگی مان فکر کنم. من علاقه خاصی به کاهش فاصله بین آنچه ما در جهان تیم A و B می نامیم، دارم. من سعی می کنم تا آنجا که ممکن است دانش را به مناطقی منتقل کنم که مردم از داشتن کامپیوتر یا تحصیل رایگان در دانشگاه برخوردار نیستند.
من همچنان به عنوان پیمانکار برای شرکای خارجی کار می کنم، اما در صورت امکان، سعی می کنم پروژه هایی را انتخاب کنم که به نوعی تأثیر مثبت بر محیط زیست یا جامعه داشته باشد. من در حال حاضر روی نرم افزار تعبیه شده برای یک شرکت سمعک به نام Oticon کار می کنم. از نظر نرم افزاری، من روی همه چیز از کوچکترین میکروکنترلرها گرفته تا فضای ابری کار کرده ام. بسیاری از کارهایی که من انجام می دهم حول محور وب می چرخد. من سعی می کنم هر زمان که منطقی باشد، فناوری ها را ترکیب کنم.
Monika : آیا قبل از پیوستن به برنامه Google Developer Experts در جوامع توسعه دهندگان شرکت داشتید؟
لارس: بله، من درگیر جلسات و کنفرانس ها بودم. من اولین بار در حین کار برای نوکیا با جامعه ارتباط برقرار کردم. در حدود سال 2010، کنت روهد کریستینسن را ملاقات کردم که قبل از من یک GDE شد. او به من الهام داد تا ببینم چگونه فناوری های وب می توانند برای متخصصان مشتاق فناوری در کشورهای در حال توسعه مفید باشند. توسعه و استقرار راهحلها با استفاده از C++، C# یا جاوا نیازمند چند سال تجربه است، اما هرکسی که به رایانه، مرورگر و دفترچه یادداشت دسترسی دارد، میتواند شروع به توسعه برنامههای مبتنی بر وب کند و خیلی سریع یاد بگیرد. ساخت یک برنامه کاربردی کاملاً کاربردی با منابع محدود امکان پذیر است و از هیچ چیز افزایش می یابد. به همین دلیل است که من وب را یک پشته فناوری بسیار دموکراتیک می نامم.
اما به جامعه برگردیم - پس از مدتی به استانداردسازی وب و مشکلاتی که فناوریهای لبهای وب میتوانند حل کنند علاقه مند شدم. من قبل از انتشار، قابلیت های جدیدی را در یک مرورگر آزمایش کردم. من در آن زمان برای نوکیا کار می کردم و برای یک دستگاه پرچمدار مبتنی بر لینوکس، N9، توسعه می دادم. مرورگری که ما ساختیم مبتنی بر WebKit بود و من تجربه خوبی در توسعه ویژگیهای یک پروژه بزرگ منبع باز داشتم. در سالهای پس از ترک نوکیا، من در کنفرانسهای وب و جلسات شرکت کردم، بنابراین منطقی بود که در سال 2017 به انجمن GDE بپیوندم.
من واقعاً از کار اجتماعی و همه کارهایی که با هم انجام میدهیم، لذت میبرم، بهویژه از اجلاس برنامهنویسان کروم قبل از همهگیری، که در آن به همراه تعدادی مهندس عالی Google و سایر GDE در انجام وظیفه غرفه کمک کردم.
مونیکا: چه توصیه ای به توسعه دهنده جوانی دارید که تازه کار حرفه ای خود را شروع کرده است و مطمئن نیست کدام مسیر را انتخاب کند؟
لارس : من از تجربه خودم می گویم - اگر توانایی مالی دارید - برای چند شرکت مختلف شغل آزاد را در نظر بگیرید. به این ترتیب، در اشکال مختلف و مراحل توسعه در معرض کد قرار خواهید گرفت. شما با بسیاری از سیستم عامل ها و زبان ها آشنا خواهید شد و یاد خواهید گرفت که چگونه مشکلات را از طرق مختلف حل کنید. این به من کمک زیادی کرد و در دهه بیستم به عنوان توسعه دهنده ارشد تجربه کسب کردم. این رویکرد به شما کمک می کند تا سریعتر به اهداف حرفه ای خود برسید.
علاوه بر این، از آن لذت ببرید، کاوش کنید، با سخت افزار و نرم افزار بازی کنید. ساخت چیزی را در نظر بگیرید که یک مشکل واقعی را حل کند - شاید برای دوستان، خانواده یا یک تجارت محلی. از پریدن به سمت کاری که قبلا انجام نداده اید نترسید.
مونیکا: آینده فناوری های وب چیست؟
لارس: فکر میکنم چند سالی است که وب کاملاً قادر است بستری برای برنامههای کاربردی بزرگ، هم برای مصرفکننده و هم برای تجارت فراهم کند. در سمت سرور، فنآوریهای وب تجربهای بینظیر را ارائه میکنند، بهویژه برای توسعهدهندگان ظاهری که میخواهند یک کامپوننت باطن بسازند. اکنون شروع کار برای آنها آسان تر است. من افرادی را می شناسم که از Firebase و Heroku برای انجام کار استفاده می کردند. و این روند رشد خواهد کرد - فناوری های وب برای ساخت راه حل های پیچیده از هر نوعی کافی خواهند بود. من معتقدم که قابلیت های وب - Project Fugu 🐡 واقعاً این پتانسیل را باز می کند.
با نگاهی متفاوت به آن، من همچنین فکر میکنم که اگر مستندات کامل و مقالات عمیق را نه تنها به زبان انگلیسی، بلکه به زبانهای دیگر (مثلاً اسپانیایی و پرتغالی) ارائه دهیم، پتانسیلهای زیادی را باز میکنیم. در آمریکای لاتین - و البته سایر مناطق. توسعه دهندگان در آنجا اغلب به اندازه کافی انگلیسی نمی دانند که تمام مقالات مرتبط را به طور کامل درک کنند. ما همچنین باید به آنها این فرصت را بدهیم که در اولین فرصت ممکن، حتی قبل از شروع دانشگاه، در حالی که هنوز در شهر خود هستند، یاد بگیرند. آنها ممکن است از این مهارت ها برای کمک به جوامع محلی و مشاغل قبل از ترک خانه استفاده کنند و شاید دیگر هرگز برنگردند.
توماس: شما از توسعه C در یک کامپیوتر تصادفی تا هک سخت افزار فاصله زیادی داشتید. چطور این کار را کردی؟
لارس: شروع کردم به جدا کردن سخت افزارهای زیادی که در خانه داشتم. وقتی من نمی توانستم آن را دوباره جمع کنم، پدرم همیشه خوشحال نبود. با گذشت زمان، یاد گرفتم که چگونه چند دستگاه کوچک بسازم، اما واقعاً خیلی دیرتر، تقریباً در زمانی که به نوکیا ملحق شدم، جایی که تجربه تعبیه شده خود را کسب کردم، شروع به کار کرد. من این شانس را داشتم که محافظ های صفحه نمایش کوچک، اجزایی برای گوشی های سری 30 بسازم. من واقعاً به آن علاقه داشتم و واقعاً می توانستم خارج از چارچوب فکر کنم. آنها به من وظیفه ساختند که یک بازی Snake برای آن دستگاه ها بسازم. تجربه بسیار جالبی بود. تفاوت اصلی بین ساختن سیستمهای تعبیهشده با بسیاری از چیزهای دیگر (از جمله وب) این است که شما ردپای کوچکی از خود به جای میگذارید – فضای یا حافظه زیادی برای استفاده ندارید. هنگام ساخت Snake، رمی که در دسترس داشتم کمتر از یک سوم بافر فریم بود (حدود 120×120 پیکسل). من مجبور شدم راههایی بیابم که به صورت الگوریتمی مولفهها را روی صفحه به هم بپیوندم تا ثابت به نظر برسند، گویی کاشی هستند. من چیزهای زیادی یاد گرفتم - این حرکت از سیستم های بزرگتر به راه حل های کوچک و تعبیه شده بود.
توماس: مجموعه مهارت های یک توسعه دهنده معمولی frontend بسیار متفاوت از مجموعه مهارت های شخصی است که سخت افزار تعبیه شده می سازد. چگونه میتوانید یک توسعهدهنده فرانتاند را تشویق کنید تا به سختافزار نگاه کند و شروع به فکر کردن به صورت باینری کند؟
لارس: فکر میکنم اولین قدم این است که به برخی از APIهای Fugu که در کروم و اج کار میکنند و در تمام سیستمهای اصلی امروزی تعبیه شدهاند، نگاه کنیم. این تمام چیزی است که در ابتدا نیاز دارید.
چیز دیگر این است که زنجیرههای ابزار برای ساخت راهحلهای تعبیهشده، منحنی یادگیری تند دارند. اگر می خواهید سخت افزار سفارشی خود را بسازید، با Arduino یا ESP32 شروع کنید – چیزی که خرید آن آسان و نسبتاً ارزان است. با یک محیط توسعه مناسب، می توانید پروژه خود را در کمترین زمان راه اندازی و اجرا کنید.
همچنین میتوانید یک مانیتور ضربان قلب یا یک واحد چندحسگر بخرید که در حال حاضر از خدمات بلوتوث گات استفاده میکنند، بنابراین نیازی نیست سختافزار یا سیستمافزار خود را بسازید—شما میتوانید از آنچه در حال حاضر وجود دارد استفاده کنید و شروع به آزمایش با Web Bluetooth API کنید. شروع به برقراری ارتباط با آن کنید.
همچنین دستگاههایی وجود دارند که از پروتکل سریال استفاده میکنند—برای آنها میتوانید از Web Serial API ( همچنین Fugu ) استفاده کنید. اخیراً من به دنبال استفاده از WebHID API بودهام که به شما امکان میدهد با تمام دستگاههای رابط انسانی که همه به آنها دسترسی دارند صحبت کنید. من تعدادی قدیمی را در زیرزمینم پیدا کردم که سال ها توسط هیچ سیستم عاملی پشتیبانی نمی شد، اما به لطف مهندسی معکوس، چند ساعت طول کشید تا دوباره آنها را فعال کنم.
بسته به چیزی که می خواهید بسازید، رویکردهای متفاوتی وجود دارد، اما به یک توسعه دهنده وب می گویم، یک واحد حسگر جامد، شاید Thingy 52 از Nordic Semiconductor تهیه کنید. این دارای حسگرهای زیادی است و شما می توانید با تلاش بسیار کمی به برنامه وب خود متصل شوید.
توماس: اتصال به دستگاه اولین گام است، اما بعد از آن صحبت کردن به طور موثر با آن - این یک چیز دیگر است. چطور بعد از رویارویی با موانع تسلیم نشدید؟ چه چیزی انگیزه شما را برای ادامه کار حفظ کرد؟
لارس: برای من شخصاً جنبه اجتماعی حل یک مشکل مهم ترین بود. وقتی شروع به کار بر روی پروژه های تعبیه شده خودم کردم، چشم انداز و تمایل داشتم که یک آزمایشگاه علمی در جعبه ای برای مناطق در حال توسعه بسازم. همسرم اهل مکزیک است و من تعدادی از مدارس را در آنجا دیدم. برخی که در خارج از شهرهای بزرگ واقع شدهاند، بسیار فرسوده هستند، بدون دسترسی به مواد و تجهیزاتی که ما در بخش خود از جهان داریم.
اشتیاق به ساختن چیزی که به طور بالقوه می تواند برای کمک به دیگران مورد استفاده قرار گیرد - این چیزی بود که من را نگه داشت. من همچنین از حمایت جامعه بسیار لذت بردم. من با برخی از افراد در Google تماس گرفتم و همه بسیار مفید بودند و با حوصله به همه سؤالات من پاسخ دادند.
توماس: بسیاری از مردم نوعی سخت افزار در خانه دارند، اما نمی دانند با آن چه کنند. چگونه میتوانید برای همه پروژههای شگفتانگیزتان، بهویژه پروژههایی که تحت نام کاری SimpleMouse هستند، الهام بگیرید؟
لارس: خوب، اخیراً در واقع سختافزارهای قدیمی زیادی را احیا کردهام، اما برای این پروژه خاص - هنوز نامش تعیین نشده است، اما بگذارید آن را SimpleMouse بنامیم - از تجربیاتم استفاده کردم. من قبلاً با برخی از راه حل های دسترسی کار کردم و دیدم که چگونه برخی از آنها دیگر کار نمی کنند. برای اجرای آنها باید یک ویندوز XP قدیمی با نرم افزار خاصی نصب شده باشد. واقعاً نمیتوانید آنها را بهروزرسانی کنید، فقط میتوانید از آنها در خانه استفاده کنید زیرا نمیتوانید تنظیمات خود را جابهجا کنید.
به همین دلیل، من متعجب بودم که چگونه مهارت های خود را از دنیای جاسازی شده با پروژه Fugu و آنچه که اکنون در وب امکان پذیر است ترکیب کنم تا سخت افزار ارزان و مقرون به صرفه را همراه با نرم افزارهای قابل فهم در هر دو طرف ایجاد کنم، تا مردم بتوانند بر روی آن کار کنند. .
برای آن پروژه خاص، من یک دانگل USB کوچک با یک تراشه بازتابی، nRF52840 گرفتم. از یک طرف با بلوتوث و از طرف دیگر با USB ارتباط برقرار می کند. شما اساسا می توانید آن را طوری برنامه ریزی کنید که هر دو طرف باشد. و سپس به دستگاههایی فکر کردم که کامپیوتر را کنترل میکنند - ماوس و کیبورد. ممکن است برای برخی از افراد دارای معلولیت کار با این دستگاه ها مشکل باشد و من می خواستم به آنها کمک کنم.
اولین کاری که انجام دادم این بود که مطمئن شدم هر سیستم عاملی دانگل USB را به عنوان یک ماوس می بیند. می توانید آن را از یک برنامه بومی یا یک برنامه وب - مستقیماً در بلوتوث کنترل کنید. پس از آن، من یک برنامه وب ساختم - یک الگوی ساده که افراد می توانند با استفاده از اجزای وب آن را به روشی که می خواهند گسترش دهند. به لطف آن، همه می توانند رایانه خود را با یک برنامه وب که من فقط در چند ساعت در یک تلفن اندرویدی ساخته ام، کنترل کنند.
داشتن این راهاندازی به هر کسی در جهان با تجربه وب این امکان را میدهد تا در عرض چند روز، یک راهحل بسیار سفارشی برای هر فرد معلولی که میخواهد رایانه خود را کنترل کند، بسازد. نکته جالب این است که می توانید آن را هر کجا که هستید همراه خود ببرید و با دستگاه های دیگر نیز از آن استفاده کنید. دقیقاً همان تجربه خواهد بود. برای من، قابل حمل بودن و مقرون به صرفه بودن دستگاه بسیار مهم است زیرا مردم دیگر محدود به استفاده از دستگاه های خود نیستند و دیگر محدود به یک مکان نیستند.
توماس: آیا فرصتی برای آزمایش دستگاه در زندگی واقعی داشتید؟
لارس: در واقع در آخرین سفرم به مکزیک در مورد آن با یک متخصص وب که در آنجا زندگی می کرد صحبت کردم. او اکنون در حال بررسی احتمالات استفاده از دستگاه به صورت محلی است. در آنجا تجهیزات واقعاً گران هستند، اما یک دانگل USB معمولاً حدود ده دلار آمریکا قیمت دارد. او اکنون در حال بررسی است که آیا میتوانیم تنظیمات محلی را در آنجا بسازیم تا آن را امتحان کنیم. اما من هنوز آزمایشات رسمی را اینجا در دانمارک انجام نداده ام.
توماس: بسیاری از دستگاه هایی که برای کمک به افراد دارای معلولیت طراحی شده اند واقعا گران هستند. آیا قصد دارید با شرکت خاصی همکاری کنید و آن را با کسری از قیمت آن تجهیزات گران قیمت تولید کنید؟
لارس: بله حتما! من قبلاً با یک سازنده سخت افزار محلی در مورد آن صحبت کرده ام. البته، این دستگاه جایگزین همه آن راهحلهای بسیار تخصصی نخواهد شد، اما میتواند اولین گام برای ساختن چیزی بزرگتر باشد - برای مثال، استفاده از تشخیص صدا، که از قبل برای فناوریهای وب در دسترس است. این یک راه آسان برای کنترل دستگاه ها با استفاده از تلفن Android شما خواهد بود. می تواند با هر نوع دستگاهی کار کند.
فقط اینکه بتوانید هر آنچه را که می خواهید در وب بسازید و از آن برای کنترل هر کامپیوتر میزبان استفاده کنید، امکانات زیادی را در اختیار شما قرار می دهد.
توماس: آیا پروژه Zephyr خود را به صورت متن باز منتشر می کنید؟ از چه نوع مجوزی استفاده می کنید؟ آیا برنامه ای برای کسب درآمد از پروژه وجود دارد؟
لارس: بله، راه حل منبع باز است. من مجوز خاصی روی آن قرار ندادم، اما فکر می کنم آپاچی 2.0 راه حلی باشد. بسیاری از شرکت های بزرگ از جمله گوگل از این مجوز استفاده می کنند. وقتی روی SimpleMouse کار میکردم، به کسب درآمد از پروژه فکر نمیکردم – این هدف من نبود. اما من همچنین فکر می کنم منطقی است که سعی کنیم آن را به نحوی به تولید برسانیم و این هزینه نیز به همراه دارد. هدف نهایی در دسترس قرار دادن آن است. من دوست دارم با هزینه کم و در مقیاس بزرگ اجرا شود.